ディスカバリー要求を受け入れるための OpenID Connect プロバイダーの構成

ディスカバリー構成エンドポイントは、OpenID Connect プロバイダー (OP) サーバーによってサポートされる機能に関する情報を使用可能にします。

このタスクについて

このサービスによって返されるメタデータは、 OIDC Discovery 1.0 仕様 - プロバイダー・メタデータをベースにし、これを拡張したものです。 このサービスは、何も指定されていない場合は、一連のデフォルト構成を返します。指定する場合は、 プロパティー・リストを参照して、プロパティーの目的および構成可能なオプションを把握してください。

手順

ディスカバリー構成サービスで、選択したプロパティーのデフォルト値をオーバーライドすることができます。このアクションは、 server.xml ファイルに値を指定することによって実行されます。 構成可能プロパティーおよび指定可能な構成オプションについては、以下のプロパティー表を参照してください。
表 1. ディスカバリー要求パラメーター
属性名 データ・タイプ 必須/オプション 説明
responseTypesSupported 入力 オプション OpenID Connect プロバイダー (OP) サーバーによってサポートされる応答タイプ。指定されない場合、 デフォルト値は、codetoken、および id_token token です。複数の値を指定できます。値はストリングです。例えば、次の値を指定できます。
  • code
  • token
  • id_token token
subjectTypesSupported 出力のみ N/A OP サーバーによってサポートされるサブジェクト・タイプ。この値は public に設定されます。この値はストリングです。
idTokenSigningAlgValuesSupported 出力のみ オプション OP サーバーによってサポートされる ID トークン署名アルゴリズム。この値は、 openidConnectProvider サーバー構成にサーバー属性 signatureAlgorithm として指定されます。指定されない場合、 デフォルト値は HS256 です。1 つのみの値を指定できます。これはストリングです。例えば、 openidConnectProvider 構成内の属性 signatureAlgorithm には、次の値を指定できます。
  • none
  • RS256
  • HS256
scopesSupported 入力 オプション OP サーバーによってサポートされるスコープ値。 指定されない場合、デフォルト値は、openidgeneralprofileemailaddress、 および phone です。複数の値を指定できます。値はストリングです。例えば、次の値を指定できます。
  • openid
  • general
  • profile
  • email
  • address
  • phone
claimsSupported 入力 オプション OP サーバーによってサポートされるクレーム値。指定されない場合、デフォルト値は、subgroupIdsnamepreferred_usernamepicturelocaleemail、 および profile です。複数の値を指定できます。値はストリングです。例えば、次の値を指定できます。
  • sub
  • groupIds
  • name
  • preferred_username
  • picture
  • locale
  • email
  • profile
responseModesSupported 入力 オプション OP サーバーによってサポートされる応答モード。指定されない場合、デフォルト値は、query、および fragment です。 複数の値を指定できます。値はストリングです。
  • query
  • fragment
grantTypesSupported 入力 オプション OP サーバーによってサポートされるグラント・タイプ。指定されない場合、デフォルト値は、authorization_codeimplicitrefresh_tokenclient_credentialspassword、 および urn:ietf:params:oauth:grant-type:jwtbearer です。複数の値を指定できます。値はストリングです。例えば、次の値を指定できます。
  • authorization_code
  • implicit
  • refresh_token
  • client_credentials
  • password
  • urn:ietf:params:oauth:grant-type:jwtbearer
tokenEndpointAuthMethodsSupported 入力 オプション OP サーバーによってサポートされるトークン・エンドポイント認可メソッド。指定されない場合、デフォルト値は、 client_secret_post、および client_secret_basic です。 複数の値を指定できます。値はストリングです。例えば、次の値を指定できます。
  • none
  • client_secret_post
  • client_secret_basic
displayValuesSupported 出力のみ N/A OP サーバーによってサポートされる表示値。 この値は page に設定されます。この値はストリングです。
claimTypesSupported 出力のみ N/A OP サーバーによってサポートされるクレーム・タイプ値。この値は normal に設定されます。この値はストリングです。
claimsParameterSupported 入力 オプション OP サーバーによってクレーム・パラメーターがサポートされるかどうかを示します。指定されない場合、デフォルト値は false です。 1 つのみの値を指定できます。これはブール値です。例えば、次の値を指定できます。
  • true
  • false
requestParameterSupported 入力 オプション OP サーバーによって要求パラメーターがサポートされるかどうかを示します。指定されない場合、デフォルト値は false です。 1 つのみの値を指定できます。これはブール値です。例えば、次の値を指定できます。
  • true
  • false
requestUriParameterSupported 入力 オプション OP サーバーによって要求 URI パラメーターがサポートされるかどうかを示します。指定されない場合、デフォルト値は false です。 1 つのみの値を指定できます。これはブール値です。例えば、次の値を指定できます。
  • true
  • false
requireRequestUriRegistration 入力 オプション 要求 URI 登録の必要が OP サーバーによってサポートされるかどうかを示します。指定されない場合、デフォルト値は false です。 1 つのみの値を指定できます。これはブール値です。例えば、次の値を指定できます。
  • true
  • false

ディスカバリー構成の例

次の例は、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"
}

トピックのタイプを示すアイコン タスク・トピック



タイム・スタンプ・アイコン 最終更新: Monday, 5 December 2016
http://www14.software.ibm.com/webapp/wsbroker/redirect?version=cord&product=was-libcore-mp&topic=twlp_oidc_discovery_config
ファイル名: twlp_oidc_discovery_config.html