跳到內容

Ory Hydra

Ory Hydra 是一個以 Go 撰寫的開源 OAuth 2.0 / OpenID Connect server,採用 Apache 2.0 授權。它的設計理念是 headless——只負責授權協定層,不包含使用者管理、登入頁面或帳號系統,而是透過 login/consent app 整合既有的身份提供者。

規範說明狀態
RFC 6749The OAuth 2.0 Authorization Framework
RFC 6819OAuth 2.0 Threat Model and Security Considerations
RFC 7009OAuth 2.0 Token Revocation
RFC 7523JWT Profile for OAuth 2.0 Client Authentication
RFC 7591OAuth 2.0 Dynamic Client Registration Protocol
RFC 7592OAuth 2.0 Dynamic Client Registration Management Protocol
RFC 7636Proof Key for Code Exchange (PKCE)
RFC 7662OAuth 2.0 Token Introspection
RFC 8628OAuth 2.0 Device Authorization Grant
RFC 9126OAuth 2.0 Pushed Authorization Requests (PAR)
規範狀態
OpenID Connect Core 1.0
OpenID Connect Discovery 1.0
OpenID Connect Dynamic Client Registration 1.0
OpenID Connect Front-Channel Logout 1.0
OpenID Connect Back-Channel Logout 1.0

Hydra 通過 OpenID Foundation 認證,涵蓋以下 profile:

  • Basic OP(response_type=code
  • Implicit OP(response_type=id_tokenid_token token
  • Hybrid OP(response_type=code id_tokencode id_token tokencode token
  • Config OP(發布 Discovery 設定資訊)
  • Dynamic OP(支援動態註冊)
Grant Type狀態
Authorization Code
Client Credentials
Refresh Token
Implicit✅(不建議使用)
Resource Owner Password Credentials (ROPC)⚠️ deprecated
JWT Assertion(RFC 7523)
Device Code(RFC 8628)

Hydra 正朝 OAuth 2.1 的方向演進,但尚未完全達標:

OAuth 2.1 要求Hydra 狀態
強制 PKCE可設定(enforcedenforced_for_public_clients
移除 Implicit Flow仍支援,但不建議使用
移除 ROPC標記為 deprecated,source code 中仍存在
強制 HTTPS
精確 redirect_uri 比對

Hydra 支援兩種 Access Token 策略,可透過設定切換:

策略說明
opaque(預設)不透明字串,需透過 Introspection 端點驗證
jwtJWT 格式,Resource Server 可本地驗證