Online SSH Certificate Authority
 
 
 
Go to file
Dustin 94ae6f727e server: user: Implement OIDC auth for users
The second major feature for SSHCA will be the ability to sign SSH
certificates for users.  Naturally, users will need to prove their
identity to the server in order for it to issue certificates for them.
To implement that, we will use OpenID Connect Identity Tokens.  Users
will obtain a token from an Identity Provider and include it in their
request to the SSHCA server.  If the token is valid and issued by a
trusted provider, the server will sign the user's keys.

The `openidconnect` crate provides everything we need to validate OIDC
ID tokens.  It supports fetching the OpenID Provider Configuration in
order to retrieve the signing keys.  These keys are then used to
verify the signature of a token; other token metadata are verified as
well, including issuer, audience, and expiration.

To avoid making an HTTP request to the OIDC IdP for every request, the
provider configuration is cached for an hour after each lookup.

Clients, such as the `sshca` CLI utility, can use the *GET
/user/oidc-config* HTTP path operation to fetch the SSHCA server's
OpenID Connect client configuration.  The can use the information
returned to initiate a login process with the IdP and obtain the
identity token to submit to the SSHCA server.
2023-11-21 22:03:02 -06:00
ci ci: Import ci pipeline from original repo 2023-11-13 20:11:49 -06:00
examples examples: Add took to generate a JWT for testing 2023-11-04 16:37:19 -05:00
src server: user: Implement OIDC auth for users 2023-11-21 22:03:02 -06:00
tests server: user: Implement OIDC auth for users 2023-11-21 22:03:02 -06:00
.containerignore server: Add Containerfile 2023-11-08 21:29:00 -06:00
.editorconfig Initial commit 2023-11-04 16:36:20 -05:00
.gitattributes Initial commit 2023-11-04 16:36:20 -05:00
.gitignore Initial commit 2023-11-04 16:36:20 -05:00
Cargo.lock server: user: Implement OIDC auth for users 2023-11-21 22:03:02 -06:00
Cargo.toml server: user: Implement OIDC auth for users 2023-11-21 22:03:02 -06:00
Containerfile server: Add Containerfile 2023-11-08 21:29:00 -06:00
rustfmt.toml Initial commit 2023-11-04 16:36:20 -05:00