OpenID Connect Library for Rust
Don't set empty JWK signing algorithms in Client::new()
(#104). This fixes a bug introduced in 2.5.0 (#87) that caused clients constructed via Client::new()
not to allow any signature algorithms for ID tokens and user info JWTs unless they manually set the allowed algorithms on the IdTokenVerifier
. This patch restores the original behavior of defaulting to accepting only RS256
for clients constructed via Client::new()
, as indicated in the spec.
Clients constructed via Client::from_provider_metadata()
will continue to receive the signing algorithms specified in the provider metadata during OpenID Connect Discovery (as introduced in 2.5.0 via #87).
Replace ring
with RustCrypto crates (#96). This change increases the minimum supported Rust version (MSRV) to 1.57 and adds support for WASM targets.
Special thanks to @sbihel for contributing this change!
Establish new MSRV policy: this crate will maintain a policy of supporting Rust releases going back at least 6 months. Changes that break compatibility with Rust releases older than 6 months will no longer be considered SemVer breaking changes and will not result in a new major version number for this crate (f3dedb3c3e74802cdf0c20d7d87ce35ffa846eb1).
CoreRsaPrivateSigningKey
Send
and Sync
(bc09d22afc140e1d2d6caf8756dda4a17cc991fa).Ignore unrecognized signature algorithms, encryption algorithms, and public keys when parsing provider metadata and JWK sets (#99).
Previously, this crate would return a deserialization error if it encountered any unrecognized signature/encryption algorithms or public keys in the ProviderMetadata
and JsonWebKeySet
. This release changes the behavior to instead ignore these unexpected values, with the aim of improving compatibility with OIDC providers that support other algorithms but don't necessarily use them to sign JWTs. The OIDC spec allows for new algorithms and key types to be used, so these OIDC providers are fully compliant with the spec.
Propagate signature algorithms from OIDC discovery to token verifier (#87). Previously, these had to be configured manually when instantiating the token verifier.
serde_plain
instead of the oauth2
crate's variant_name
helper to convert algorithm names and other values to strings. This should ensure compatibility with arbitrary Serialize
implementations for these types.ring
with subtle
in preparation for removing ring
entirely in 3.0 (#89).CoreJsonWebKeyUse::Other
variant to avoid JWK deserialization errors when unsupported keys are present in a provider's JWK set (c25eb06ba7e64e14cb94d34a564d77a4ff4e9d1b)accept-string-booleans
Cargo feature flag to interoperate with non-RFC-compliant Apple OAuth (#84)CoreRsaPrivateSigningKey
implement Send
(#93)chrono
's oldtime
feature flag