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.
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:
|
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:
|
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:
|
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:
|
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.
|
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:
|
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:
|
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:
|
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:
|
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:
|
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:
|
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>
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" }
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" }