Skip to content

Releases: ramosbugs/openidconnect-rs

3.0.0

15 Apr 21:35
Compare
Choose a tag to compare

🚀 WASM is now supported! 🚀

Changes since 3.0.0-alpha.1

Bug Fixes

  • Don't set empty JWK signing algorithms in Client::new() (#104). This fixes a bug introduced in 3.0.0-alpha.1/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 3.0.0-alpha.1/2.5.0 via #87).

New Features

  • Add AuthorizationRequest::add_scopes (#105)

Other Changes

  • Remove unnecessary 'static bound from ProviderMetadata::discover_async (#107)

Summary of changes since 2.5.1

Breaking Changes

  • 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 (f3dedb3).

Other Changes

  • Make CoreRsaPrivateSigningKey Send and Sync (bc09d22).

2.5.1

09 Mar 22:57
Compare
Choose a tag to compare

Bug Fixes

  • 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).

3.0.0-alpha.1

17 Jan 09:33
Compare
Choose a tag to compare
3.0.0-alpha.1 Pre-release
Pre-release

Breaking Changes

  • 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 (f3dedb3).

Other Changes

  • Make CoreRsaPrivateSigningKey Send and Sync (bc09d22).

2.5.0

11 Jan 22:49
Compare
Choose a tag to compare

New Features

  • 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.

Bug Fixes

  • Use 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.

Other Changes

  • Replace constant time from ring with subtle in preparation for removing ring entirely in 3.0 (#89).

2.4.0

27 Oct 00:36
Compare
Choose a tag to compare

New Features

  • Add CoreJsonWebKeyUse::Other variant to avoid JWK deserialization errors when unsupported keys are present in a provider's JWK set (c25eb06)
  • Optionally accept string boolean fields behind accept-string-booleans Cargo feature flag to interoperate with non-RFC-compliant Apple OAuth (#84)

Bug Fixes

  • Make CoreRsaPrivateSigningKey implement Send (#93)
  • Fix typos in documentation (#81)

2.3.2

04 Jul 23:54
Compare
Choose a tag to compare

Bug Fixes

  • Fix PKCE documentation link (#76)
  • Only use HTTP Basic auth with a client secret (see ramosbugs/oauth2-rs#176)
  • Improve issuer URL mismatch error message (see #77)

2.3.1

30 Apr 01:29
Compare
Choose a tag to compare

Patch Changes

  • Bump oauth2 dependency to 4.2
  • Bump itertools, serde-value, and various dev dependencies. Remove untrusted crate as a dependency. (#73)

2.3.0

21 Apr 22:28
Compare
Choose a tag to compare

New Features

  • Add new_insecure_without_verification() to IdTokenVerifier (#61)

Bug Fixes

  • Fix clippy lints and other code cleanup (#69)
  • Fix deserialization of optional ClientRegistrationResponse fields (#66)

2.2.0

08 Jan 22:27
Compare
Choose a tag to compare

New Features

  • Implement FromStr for IdToken (#59)
  • Expose ureq feature of oauth2 (#56)
  • Add optional feature to accept RFC 3339 timestamps, for compatibility with Auth0 (#55)

2.1.2

28 Nov 23:39
43dbbf1
Compare
Choose a tag to compare

Bug fixes

  • Support JWKs with leading zeroes in their RSA modulus (n) and public exponent (e) values (#53)