はじめに
本記事では、OpenID プロバイダー (OP) もしくは認可サーバー (AS) が、Authlete API を用いてサーバーメタデータを公開する方法を解説します。Authlete で認可サーバーのメタデータを生成する
OAuth や OpenID Connect ではクライアントやリライングパーティー (RP) などが、認可サーバーの情報を得るためのメタデータが定義されています。 具体的には OpenID Connect Discovery RFC 8414 OAuth 2.0 Authorization Server Metadata があります。 Authlete が提供する/api/service/configuration API を利用することで、上記 2 つの仕様に則したメタデータを生成できます。
OpenID Connect Discovery
OpenID Connect Discovery ドキュメントをサポートする認可サーバーは、https://as.example.com を issuer としたとき、https://as.example.com/.well-known/openid-configuration で GET リクエストを受け付けます。
認可サーバーの実装は、Authlete の /api/service/configuration API を呼び出し、応答を(必要に応じて取捨選択・加工したもの)を JSON として返却します。
/api/service/configuration の呼び出し例は以下の通りです。
OAuth 2.0 Authorization Server Metadata
OAuth 2.0 クライアント向けには、RFC 8414 に従い、https://as.example.com/.well-known/oauth-authorization-server の URL で OAuth Server Metadata を公開できます。
OIDC Discovery と同様に、このエンドポイントでも /api/service/configuration API の応答を利用可能です。
メタデータのキャッシュと公開運用
OIDC Discovery ドキュメントおよび OAuth Server Metadata については、認可サーバーやクライアントでキャッシュを実装しても構いません。 キーローテーションの期間などを検討の上、適切なキャッシュの実装を検討ください。管理コンソールで設定可能なメタデータ項目
Authlete 管理コンソールで設定した一部の項目は/api/service/configuration API の応答に反映されます。
例えば発行者識別子 (issuer) や認可エンドポイントなどの各エンドポイントの設定、サポートする認可タイプなどは、自動で /api/service/configuration API の応答に反映されます。
メタデータに含まれる具体的な設定項目については Service の設定 をご確認ください。
公開項目の取捨選択について
/api/service/configuration API で返却される情報は認可サーバー側にて取捨選択いただけます。例えば id_token_signing_alg_values_supported は Authlete がサポートする複数のアルゴリズムが応答されますが、認可サーバーが想定する値に上書きして公開するといった運用をいただけます。
JSON Patch による Authlete 応答のカスタマイズ
Authlete では、/api/service/configuration API の応答を RFC 6902 JSON Patch に基づいてカスタマイズできます。
- 例:
id_token_signing_alg_values_supportedを["RS256"]のみに制限する