Internet-scale OpenID Certified™ OpenID Connect and OAuth2.1 provider that integrates with your user management through headless APIs. Solve OIDC/OAuth2 user cases over night. Consume as a service on Ory Network or self-host. Trusted by OpenAI and many others for scale and security. Written in Go.
Ory Hydra, the OAuth2 and OpenID Connect server designed for web-scale deployments introduces over 6x higher OAuth2 throughput on a single PostgreSQL instance!
This version significantly enhances performance, processing over 6x more authorization flows than version 2.1, thanks to architectural improvements that minimize database interactions for login and consent processes.
Key improvements include:
Enhanced integration with Ory Kratos, ensuring seamless synchronization of login and logout states across both services. Users logged out from Ory Hydra will automatically log out from Ory Kratos, enhancing security and user experience.
The ability to bypass the logout consent screen for specific clients, streamlining the logout process.
Simplified migration with the new feature to import OAuth2 Client IDs, making the transition to Ory Hydra smoother.
Support for the OIDC Verifiable Credentials specification, expanding the server's capabilities in identity verification.
Thank all contributors who have made this release available!
Bug Fixes
Return empty slice if requested_scope or audience is null (#3711) (65165e7)
Correct id token type in token exchange response (#3625) (d1f9ba8):
Closes https://github.com/ory/client-go/issues/2
Dropped persistence/sql test errors (#3670) (22f0119)
We now redirect to the original request URL if the subjects between
the remembered Hydra session and what was confirmed by the login
screen does not match.
Ory Hydra now supports a registration value for the prompt parameter of
the authorization request. When specifying prompt=registration, Ory Hydra
will redirect the user to the URL found under urls.registration
(instead of urls.login).
Add skip_logout_consent option to clients (#3705) (2a653e6):
Adds a special field which disables the logout consent screen when performing OIDC logout.
Allow injecting extra fosite strategies (#3646) (88b0b7c)
This patch changes the primary key of the hydra_client table. We do not expect issues, as that table is probably not overly huge in any deployment. We do however highly recommend to test the migration performance on a staging environment with a similar database setup.
This patch removes the flow cookie. All information is already tracked in the request query parameters as part of the {login|consent}_{challenge|verifier}.
Remove login session cookie during consent flow (#3667) (5f41949)
Allow to disable claim mirroring (#3563) (c72a316):
This PR introduces another config option called oauth2:mirror_top_level_claims which may be used to disable the mirroring of custom claims into the ext claim of the jwt.
This new config option is an opt-in. If unused the behavior remains as-is to ensure backwards compatibility.
Example:
oauth2:
allowed_top_level_claims:
- test_claim
mirror_top_level_claims: false # -> this will prevent test_claim to be mirrored within ext
cmd: Add route that redirects to the auth code url (4db6416)
Parallel generation of JSON web key set (#3561) (5bd9002)
Propagate logout to identity provider (#3596) (c004fee):
feat: propagate logout to identity provider
This commit improves the integration between Hydra and Kratos when logging
out the user.
This adds a new configuration key for configuring a Kratos admin URL.
Additionally, Kratos can send a session ID when accepting a login request.
If a session ID was specified and a Kratos admin URL was configured,
Hydra will disable the corresponding Kratos session through the admin API
if a frontchannel or backchannel logout was triggered.
fix: add special case for MySQL
chore: update sdk
chore: consistent naming
fix: cleanup persister
Support different jwt scope claim strategies (#3531) (45da11e)
9389773a autogen(openapi): regenerate swagger spec and internal client
af859fe4 autogen(openapi): regenerate swagger spec and internal client
f1708f2a autogen(openapi): regenerate swagger spec and internal client
3e8413e9 autogen(openapi): regenerate swagger spec and internal client
11c8c724 autogen(openapi): regenerate swagger spec and internal client
800ce0a1 autogen: add v2.2.0-rc.3 to version.schema.json
8168ee31 autogen: pin v2.2.0-pre.1 release commit
04872174 autogen: render config schema
a0c06ecb chore(deps): bump @cypress/request and cypress (#3641)
b177f81a chore(deps): bump axios and @openapitools/openapi-generator-cli (#3701)
23c81943 chore(deps): bump debug from 3.2.6 to 3.2.7 (#3640)
18d97936 chore(deps): bump follow-redirects in /test/e2e/oauth2-client (#3697)