ディスカバリー要求を受け入れるための OpenID Connect プロバイダーの構成
ディスカバリー構成エンドポイントは、OpenID Connect プロバイダー (OP) サーバーによってサポートされる機能に関する情報を使用可能にします。
このタスクについて
このサービスによって返されるメタデータは、 OIDC Discovery 1.0 仕様 - プロバイダー・メタデータをベースにし、これを拡張したものです。 このサービスは、何も指定されていない場合は、一連のデフォルト構成を返します。指定する場合は、 プロパティー・リストを参照して、プロパティーの目的および構成可能なオプションを把握してください。
手順
ディスカバリー構成サービスで、選択したプロパティーのデフォルト値をオーバーライドすることができます。このアクションは、
server.xml ファイルに値を指定することによって実行されます。
構成可能プロパティーおよび指定可能な構成オプションについては、以下のプロパティー表を参照してください。
属性名 | データ・タイプ | 必須/オプション | 説明 |
---|---|---|---|
responseTypesSupported | 入力 | オプション | OpenID Connect プロバイダー (OP) サーバーによってサポートされる応答タイプ。指定されない場合、
デフォルト値は、code、token、および id_token
token です。複数の値を指定できます。値はストリングです。例えば、次の値を指定できます。
|
subjectTypesSupported | 出力のみ | N/A | OP サーバーによってサポートされるサブジェクト・タイプ。この値は public に設定されます。この値はストリングです。 |
idTokenSigningAlgValuesSupported | 出力のみ | オプション | OP サーバーによってサポートされる ID トークン署名アルゴリズム。この値は、
openidConnectProvider サーバー構成にサーバー属性 signatureAlgorithm として指定されます。指定されない場合、
デフォルト値は HS256 です。1 つのみの値を指定できます。これはストリングです。例えば、
openidConnectProvider 構成内の属性 signatureAlgorithm には、次の値を指定できます。
|
scopesSupported | 入力 | オプション | OP サーバーによってサポートされるスコープ値。
指定されない場合、デフォルト値は、openid、general、profile、email、address、
および phone です。複数の値を指定できます。値はストリングです。例えば、次の値を指定できます。
|
claimsSupported | 入力 | オプション | OP サーバーによってサポートされるクレーム値。指定されない場合、デフォルト値は、sub、groupIds、name、preferred_username、picture、locale、email、
および profile です。複数の値を指定できます。値はストリングです。例えば、次の値を指定できます。
|
responseModesSupported | 入力 | オプション | OP サーバーによってサポートされる応答モード。指定されない場合、デフォルト値は、query、および fragment です。
複数の値を指定できます。値はストリングです。
|
grantTypesSupported | 入力 | オプション | OP サーバーによってサポートされるグラント・タイプ。指定されない場合、デフォルト値は、authorization_code、implicit、refresh_token、client_credentials、password、
および urn:ietf:params:oauth:grant-type:jwtbearer です。複数の値を指定できます。値はストリングです。例えば、次の値を指定できます。
|
tokenEndpointAuthMethodsSupported | 入力 | オプション | OP サーバーによってサポートされるトークン・エンドポイント認可メソッド。指定されない場合、デフォルト値は、
client_secret_post、および client_secret_basic です。
複数の値を指定できます。値はストリングです。例えば、次の値を指定できます。
|
displayValuesSupported | 出力のみ | N/A | OP サーバーによってサポートされる表示値。 この値は page に設定されます。この値はストリングです。 |
claimTypesSupported | 出力のみ | N/A | OP サーバーによってサポートされるクレーム・タイプ値。この値は normal に設定されます。この値はストリングです。 |
claimsParameterSupported | 入力 | オプション | OP サーバーによってクレーム・パラメーターがサポートされるかどうかを示します。指定されない場合、デフォルト値は false です。
1 つのみの値を指定できます。これはブール値です。例えば、次の値を指定できます。
|
requestParameterSupported | 入力 | オプション | OP サーバーによって要求パラメーターがサポートされるかどうかを示します。指定されない場合、デフォルト値は false です。
1 つのみの値を指定できます。これはブール値です。例えば、次の値を指定できます。
|
requestUriParameterSupported | 入力 | オプション | OP サーバーによって要求 URI パラメーターがサポートされるかどうかを示します。指定されない場合、デフォルト値は false です。
1 つのみの値を指定できます。これはブール値です。例えば、次の値を指定できます。
|
requireRequestUriRegistration | 入力 | オプション | 要求 URI 登録の必要が OP サーバーによってサポートされるかどうかを示します。指定されない場合、デフォルト値は false です。
1 つのみの値を指定できます。これはブール値です。例えば、次の値を指定できます。
|
ディスカバリー構成の例
次の例は、Liberty OP がポート 443 で SSL を使用して構成されていることを想定しています。
https://server.example.com:443/oidc/endpoint/<provider_name>/
ディスカバリー構成エンドポイントは、 以下の場所でアクセス可能です。
https://server.example.com:443/oidc/endpoint/<provider_name>/.well-known/openid-configuration
例えば、 server.xml ファイル内で、ユーザーは OpenID Connect ディスカバリー構成プロパティーを次のようにカスタマイズできます。
<openidConnectProvider id="OidcConfigSample" oauthProviderRef="OAuthConfigSample">
<discovery
responseTypesSupported="token, id_token token"
subjectTypesSupported="public"
scopesSupported="openid, general, profile"
claimsSupported="sub, groupIds, name"
responseModesSupported="query"
grantTypesSupported="implicit"
tokenEndpointAuthMethodsSupported="client_secret_basic"
displayValuesSupported="page"
claimTypesSupported="normal"
claimsParameterSupported="true"
requestParameterSupported="true"
requestUriParameterSupported="true"
requireRequestUriRegistration="true"
/>
</openidConnectProvider>
<oauthProvider id="OAuthConfigSample">
</oauthProvider>
Request Headers: GET https://server.example.com:443/oidc/endpoint/<provider_name>/.well-known/openid-configuration Response Headers: Status: 200 Content-Type: application/json Cache-Control:public, max-age=3600 Response Body: { "introspection_endpoint":"https://server.example.com:443/oidc/endpoint/<provider_name>/introspect", "coverage_map_endpoint":"https://server.example.com:443/oidc/endpoint/<provider_name>/coverage_map", "issuer":"https://server.example.com:443/oidc/endpoint/<provider_name>", "authorization_endpoint":"https://server.example.com:443/oidc/endpoint/<provider_name>/authorize", "token_endpoint":"https://server.example.com:443/oidc/endpoint/<provider_name>/token", "response_types_supported":[ "token", "id_token token" ], "subject_types_supported":[ "public" ], "userinfo_endpoint":"https://server.example.com:443/oidc/endpoint/<provider_name>/userinfo", "registration_endpoint":"https://server.example.com:443/oidc/endpoint/<provider_name>/registration", "scopes_supported":[ "openid", "general", "profile" ], "claims_supported":[ "sub", "groupIds", "name" ], "response_modes_supported":[ "query" ], "grant_types_supported":[ "implicit" ], "token_endpoint_auth_methods_supported":[ "client_secret_basic" ], "display_values_supported":[ "page" ], "claim_types_supported":[ "normal" ], "claims_parameter_supported":true, "request_parameter_supported":true, "request_uri_parameter_supported":true, "require_request_uri_registration":true, "check_session_iframe":"https://server.example.com:443/oidc/endpoint/<provider_name>/check_session_iframe", "end_session_endpoint":"https://server.example.com:443/oidc/endpoint/<provider_name>/end_session" }
Request Headers: GET https://server.example.com:443/oidc/endpoint/<provider_name>/.well-known/openid-configuration Response Headers: Status: 200 Content-Type: application/json Cache-Control:public, max-age=3600 Response Body: { "introspection_endpoint":"https://server.example.com:443/oidc/endpoint/<provider_name>/introspect", "coverage_map_endpoint":"https://server.example.com:443/oidc/endpoint/<provider_name>/coverage_map", "issuer":"https://server.example.com:443/oidc/endpoint/<provider_name>", "authorization_endpoint":"https://server.example.com:443/oidc/endpoint/<provider_name>/authorize", "token_endpoint":"https://server.example.com:443/oidc/endpoint/<provider_name>/token", "response_types_supported":[ "code", "token", "id_token token" ], "subject_types_supported":[ "public" ], "userinfo_endpoint":"https://server.example.com:443/oidc/endpoint/<provider_name>/userinfo", "registration_endpoint":"https://server.example.com:443/oidc/endpoint/<provider_name>/registration", "scopes_supported":[ "openid", "general", "profile", "email", "address", "phone" ], "claims_supported":[ "sub", "groupIds", "name", "preferred_username", "picture", "locale", "email", "profile" ], "response_modes_supported":[ "query", "fragment" ], "grant_types_supported":[ "authorization_code", "implicit", "refresh_token", "client_credentials", "password", "urn:ietf:params:oauth:grant-type:jwt-bearer" ], "token_endpoint_auth_methods_supported":[ "client_secret_post", "client_secret_basic" ], "display_values_supported":[ "page" ], "claim_types_supported":[ "normal" ], "claims_parameter_supported":false, "request_parameter_supported":false, "request_uri_parameter_supported":false, "require_request_uri_registration":false, "check_session_iframe":"https://server.example.com:443/oidc/endpoint/<provider_name>/check_session_iframe", "end_session_endpoint":"https://server.example.com:443/oidc/endpoint/<provider_name>/end_session" }