Configuración de un proveedor de OpenID Connect para que acepte solicitudes de descubrimiento

El punto final de la configuración de descubrimiento proporciona información sobre las prestaciones soportadas por el servidor del proveedor de OpenID Connect (OP).

Acerca de esta tarea

Los metadatos que devuelve este servicio se basan en los metadatos del proveedor de la especificación OIDC Discovery 1.0 y los amplían. El servicio devuelve un conjunto de configuraciones predeterminadas si no se especifica nada. De lo contrario, consulte la lista de propiedades para entender su objetivo y las posibles opciones configurables.

Procedimiento

Puede alterar temporalmente los valores predeterminados de propiedades seleccionadas en el servicio de configuración de descubrimiento. Esta acción se realiza especificando los valores en el archivo server.xml. Consulte la siguiente tabla de propiedades para ver las propiedades configurables y las posibles opciones de configuración.
Tabla 1. Parámetros de solicitud de descubrimiento
Nombre de atributo Tipo de datos Necesario/Opcional Descripción
responseTypesSupported Entrada Opcional Los tipos de respuesta soportados por el servidor del proveedor de OpenID Connect (OP). Si no se especifican, los valores predeterminados son code, token e id_token token. Puede especificarse más de un valor. Estos valores son series. Por ejemplo, los valores posibles son:
  • code
  • token
  • id_token token
subjectTypesSupported Sólo salida N/D Los tipos de sujeto soportados por el servidor OP. Este valor se establece en public. Este valor es una serie.
idTokenSigningAlgValuesSupported Sólo salida Opcional Los algoritmos de firma de señal de ID soportados por el servidor OP. Este valor se especifica como el atributo de servidor signatureAlgorithm en la configuración de servidor de openidConnectProvider. Si no se especifica, el valor predeterminado es HS256. Sólo puede especificarse un valor. Es una serie. Por ejemplo, los valores posibles para el atributo signatureAlgorithm en la configuración de openidConnectProvider son:
  • none
  • RS256
  • HS256
scopesSupported Entrada Opcional Los valores de ámbito soportados por el servidor OP. Si no se especifican, los valores predeterminados son openid, general, profile, email, address y phone. Puede especificarse más de un valor. Estos valores son series. Por ejemplo, los valores posibles son:
  • openid
  • general
  • profile
  • email
  • address
  • phone
claimsSupported Entrada Opcional Los valores de reclamación soportados por el servidor OP. Si no se especifican, los valores predeterminados son sub, groupIds, name, preferred_username, picture, locale, email y profile. Puede especificarse más de un valor. Estos valores son series. Por ejemplo, los valores posibles son:
  • sub
  • groupIds
  • name
  • preferred_username
  • picture
  • locale
  • email
  • profile
responseModesSupported Entrada Opcional Las modalidades de respuesta soportadas por el servidor OP. Si no se especifican, los valores predeterminados son query y fragment. Puede especificarse más de un valor. Estos valores son series.
  • query
  • fragment
grantTypesSupported Entrada Opcional Los tipos de otorgamiento soportados por el servidor OP. Si no se especifican, los valores predeterminados son authorization_code, implicit, refresh_token, client_credentials, password y urn:ietf:params:oauth:grant-type:jwtbearer. Puede especificarse más de un valor. Estos valores son series. Por ejemplo, los valores posibles son:
  • authorization_code
  • implicit
  • refresh_token
  • client_credentials
  • password
  • urn:ietf:params:oauth:grant-type:jwtbearer
tokenEndpointAuthMethodsSupported Entrada Opcional Los métodos de autorización de punto final de señal soportados por el servidor OP. Si no se especifican, los valores predeterminados son client_secret_post y client_secret_basic. Puede especificarse más de un valor. Estos valores son series. Por ejemplo, los valores posibles son:
  • none
  • client_secret_post
  • client_secret_basic
displayValuesSupported Sólo salida N/D Los valores de visualización soportados por el servidor OP. Este valor se establece en page. Este valor es una serie.
claimTypesSupported Sólo salida N/D Los valores de tipo de reclamación soportados por el servidor OP. Este valor se establece en normal. Este valor es una serie.
claimsParameterSupported Entrada Opcional Indica si el parámetro claims está soportado por el servidor OP. Si no se especifica, el valor predeterminado es false. Sólo puede especificarse un valor. Es un valor booleano. Por ejemplo, los valores posibles son:
  • true
  • false
requestParameterSupported Entrada Opcional Indica si el parámetro de solicitud está soportado por el servidor OP. Si no se especifica, el valor predeterminado es false. Sólo puede especificarse un valor. Es un valor booleano. Por ejemplo, los valores posibles son:
  • true
  • false
requestUriParameterSupported Entrada Opcional Indica si el parámetro de URI de solicitud está soportado por el servidor OP. Si no se especifica, el valor predeterminado es false. Sólo puede especificarse un valor. Es un valor booleano. Por ejemplo, los valores posibles son:
  • true
  • false
requireRequestUriRegistration Entrada Opcional Indica si requerir registro de URI de solicitud está soportado por el servidor OP. Si no se especifica, el valor predeterminado es false. Sólo puede especificarse un valor. Es un valor booleano. Por ejemplo, los valores posibles son:
  • true
  • false

Ejemplos de configuración de descubrimiento

En el ejemplo siguiente se presupone que el OP Liberty está configurado con SSL en el puerto 443.
https://server.example.com:443/oidc/endpoint/<nombre_proveedor>/

El punto final de configuración de descubrimiento es accesible en:

https://server.example.com:443/oidc/endpoint/<nombre_proveedor>/.well-known/openid-configuration

Por ejemplo, en el archivo server.xml, un usuario puede personalizar sus propiedades de configuración de descubrimiento de OpenID Connect del modo siguiente:

<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>
Ejemplo de configuración de descubrimiento personalizada
Request Headers:
GET https://server.example.com:443/oidc/endpoint/<nombre_proveedor>/.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/<nombre_proveedor>/introspect",
   "coverage_map_endpoint":"https://server.example.com:443/oidc/endpoint/<nombre_proveedor>/coverage_map",
   "issuer":"https://server.example.com:443/oidc/endpoint/<nombre_proveedor>",
   "authorization_endpoint":"https://server.example.com:443/oidc/endpoint/<nombre_proveedor>/authorize",
   "token_endpoint":"https://server.example.com:443/oidc/endpoint/<nombre_proveedor>/token",
   "response_types_supported":[  
      "token",
      "id_token token"
   ],
   "subject_types_supported":[  
      "public"
   ],
   "userinfo_endpoint":"https://server.example.com:443/oidc/endpoint/<nombre_proveedor>/userinfo",
   "registration_endpoint":"https://server.example.com:443/oidc/endpoint/<nombre_proveedor>/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/<nombre_proveedor>/check_session_iframe",
   "end_session_endpoint":"https://server.example.com:443/oidc/endpoint/<nombre_proveedor>/end_session"
}
Ejemplo de configuración de descubrimiento predeterminada
Request Headers:
GET https://server.example.com:443/oidc/endpoint/<nombre_proveedor>/.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/<nombre_proveedor>/introspect",
   "coverage_map_endpoint":"https://server.example.com:443/oidc/endpoint/<nombre_proveedor>/coverage_map",
   "issuer":"https://server.example.com:443/oidc/endpoint/<nombre_proveedor>",
   "authorization_endpoint":"https://server.example.com:443/oidc/endpoint/<nombre_proveedor>/authorize",
   "token_endpoint":"https://server.example.com:443/oidc/endpoint/<nombre_proveedor>/token",
   "response_types_supported":[  
      "code",
      "token",
      "id_token token"
   ],
   "subject_types_supported":[  
      "public"
   ],
   "userinfo_endpoint":"https://server.example.com:443/oidc/endpoint/<nombre_proveedor>/userinfo",
   "registration_endpoint":"https://server.example.com:443/oidc/endpoint/<nombre_proveedor>/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/<nombre_proveedor>/check_session_iframe",
   "end_session_endpoint":"https://server.example.com:443/oidc/endpoint/<nombre_proveedor>/end_session"
}

Icono que indica el tipo de tema Tema de tarea

Nombre de archivo: twlp_oidc_discovery_config.html