Skip to content

sathyajithps/openid-client

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

231 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

OpenID Client

Async, runtime-agnostic OpenID Connect / OAuth 2.0 client helpers for Rust. Currently being refactored, so the public API is still evolving.

Usage

What Is Currently Implemented

The current tree includes helpers for:

  • discovery: OIDC discovery, OAuth authorization server discovery, WebFinger lookup, and JWKS fetch
  • authorization requests: authorization URLs, HTML form-post requests, PAR, request objects, and RP-initiated logout URLs
  • callback and token flows: authorization code, implicit, hybrid, JARM, refresh token, and client credentials
  • protected endpoints: UserInfo, generic resource requests, introspection, and revocation
  • extension flows: device authorization, CIBA, token exchange, DPoP, and mTLS endpoint aliases
  • dynamic client registration: registration plus registration_client_uri fetch

Supporting modules expose request builders, metadata types, JOSE helpers, JWK utilities, token helpers, and a custom async HTTP client trait.

Specs And Features

Crypto And HTTP Backend Notes

This crate is transport-agnostic. Implement the custom HTTP client trait if you want to bring your own async HTTP stack, or enable the bundled reqwest client with the http_client feature.

Two optional crypto backends exist:

  • jws_only_crypto: JWS signing and verification only, no JWE support
  • openssl_crypto: JWS and JWE support via Josekit

Important: the current default feature set enables both backends, and the crate selects jws_only_crypto whenever it is present. If you need encrypted ID tokens, encrypted UserInfo or JARM responses, or other JWE-dependent flows, use openssl_crypto without default features:

Current Limitations

  • Request object encryption is not implemented yet; Client::request_object only creates signed or unsigned request objects.
  • JWE-dependent flows require an OpenSSL/Josekit-backed build and configured decryption keys.

Support

Issues and pull requests are welcome: https://github.com/sathyajithps/openid-client

Alternatives

About

No description, website, or topics provided.

Resources

License

Stars

Watchers

Forks

Contributors

Languages