Compartir vía


OpenID Connect en la plataforma de identidad de Microsoft

OpenID Connect (OIDC) amplía el protocolo de autorización OAuth 2.0 para utilizarlo como otro protocolo de autenticación. Puede usar OIDC para habilitar el inicio de sesión único (SSO) entre las aplicaciones habilitadas para OAuth mediante un token de seguridad denominado token de identificador.

La especificación completa de OIDC está disponible en el sitio web de OpenID Foundation en la especificación de OpenID Connect Core 1.0.

Flujo de protocolo: inicio de sesión

El siguiente diagrama se muestra el flujo de inicio de sesión básico de OpenID Connect. Los pasos del flujo se describen con más detalle en las secciones posteriores del artículo.

Diagrama de flujo que muestra el flujo de inicio de sesión del protocolo OpenID Connect.

Habilitación de tokens de identificador

El token de identificación introducido por OpenID Connect es emitido por el servidor de autorización, la plataforma de identidad de Microsoft, cuando la aplicación cliente lo solicita durante la autenticación del usuario. El token de identificador permite a una aplicación cliente comprobar la identidad del usuario y obtener otra información (notificaciones) sobre ellas.

Los tokens de identificador no se emiten de forma predeterminada para una aplicación registrada con la Plataforma de identidad de Microsoft. Los tokens de identificador de una aplicación están habilitados mediante uno de los métodos siguientes:

  1. Inicie sesión en el centro de administración de Microsoft Entra.
  2. Vaya a Identidad>Aplicaciones>Registros de aplicaciones><tu aplicación>>Autenticación.
  3. En Configuraciones de plataforma, seleccione Agregar una plataforma.
  4. En el panel que se abre, seleccione la plataforma adecuada para la aplicación. Por ejemplo, seleccione Web para una aplicación web.
  5. En URI de redirección, agregue el URI de redirección de la aplicación. Por ejemplo, https://localhost:8080/.
  6. En Flujos de concesión implícita e híbridos, seleccione la casilla de verificación Tokens de id. (usados para flujos híbridos e implícitos).

O:

  1. Seleccione Identidad>Aplicaciones>Registros de aplicaciones><su aplicación>>Manifiesto.
  2. Establezca oauth2AllowIdTokenImplicitFlow en true en el manifiesto de aplicación del registro de la aplicación.

Si los tokens de id. no están habilitados para tu aplicación y se solicita uno, la plataforma de identidad de Microsoft devuelve un error de unsupported_response similar a:

El valor proporcionado para el parámetro de entrada “response_type” no se admite para este cliente. El valor esperado es "code".

La solicitud de un token de identificador mediante la especificación response_type de id_token se explica en Envío de la solicitud de inicio de sesión más adelante en el artículo.

Obtenga el documento de configuración de OpenID

Los proveedores de OpenID como el Plataforma de identidad de Microsoft proporcionan un documento de configuración del proveedor de OpenID en un punto de conexión accesible públicamente que contiene los puntos de conexión OIDC del proveedor, las notificaciones admitidas y otros metadatos. Las aplicaciones cliente pueden usar los metadatos para detectar las direcciones URL que se usarán para la autenticación y las claves de firma pública del servicio de autenticación.

Las bibliotecas de autenticación son los consumidores más comunes del documento de configuración de OpenID, que usan para la detección de direcciones URL de autenticación, las claves de firma pública del proveedor y otros metadatos de servicio. Si se usa una biblioteca de autenticación en la aplicación, es probable que no tenga que asignar código a las solicitudes y respuestas desde el punto de conexión del documento de configuración de OpenID.

Busque el URI del documento de configuración de OpenID de la aplicación

A cada registro de aplicación en Microsoft Entra ID se le proporciona un punto de conexión accesible públicamente que le sirve su documento de configuración OpenID. Para determinar el URI del punto de conexión del documento de configuración para su aplicación, agregue la conocida ruta de configuración de OpenID a la URL de autoridad del registro de su aplicación.

  • Ruta de acceso del documento de configuración conocida: /.well-known/openid-configuration
  • URL de autoridad: https://login.microsoftonline.com/{tenant}/v2.0

El valor de {tenant} varía en función de la audiencia de inicio de sesión de la aplicación, como se muestra en la tabla siguiente. La dirección URL de autoridad también varía según la instancia de nube.

Value Descripción
common Los usuarios con una cuenta personal de Microsoft y una cuenta profesional o educativa de Microsoft Entra ID pueden iniciar sesión en la aplicación.
organizations Solo los usuarios con cuentas profesionales o educativas de Microsoft Entra ID pueden iniciar sesión en la aplicación.
consumers Solo los usuarios con una cuenta de Microsoft personal pueden iniciar sesión en la aplicación.
Directory (tenant) ID o contoso.onmicrosoft.com Solo los usuarios de un inquilino específico de Microsoft Entra (miembros del directorio con una cuenta profesional o educativa o invitados del directorio con una cuenta personal de Microsoft) pueden iniciar sesión en la aplicación.

El valor puede ser el nombre de dominio del inquilino de Microsoft Entra o el id. de inquilino en formato GUID.

Sugerencia

Tenga en cuenta que cuando se usa la autoridad common o consumers para las cuentas personales de Microsoft, la aplicación de recursos de consumo debe configurarse para admitir este tipo de cuentas de acuerdo con signInAudience.

Para buscar el documento de configuración de OIDC en el Centro de administración de Microsoft Entra, inicie sesión en el Centro de administración de Microsoft Entra y, a continuación, haga lo siguiente:

  1. Vaya a Identidad>Aplicaciones>Registros de aplicaciones><tu aplicación>>Puntos de conexión.
  2. Busque el URI en el documento de metadatos de OpenID Connect.

Solicitud de ejemplo

La siguiente solicitud obtiene los metadatos de configuración de OpenID del punto de conexión del documento de configuración de OpenID de la autoridad common en la nube pública de Azure:

GET /common/v2.0/.well-known/openid-configuration
Host: login.microsoftonline.com

Sugerencia

¡Pruébelo! Para ver el documento de configuración de OpenID para la autoridad de common una aplicación, vaya a https://login.microsoftonline.com/common/v2.0/.well-known/openid-configuration.

Respuesta de muestra

Los metadatos de configuración se devuelven en formato JSON, como se muestra en el ejemplo siguiente (truncado para mayor brevedad). Los metadatos devueltos en la respuesta JSON se describen en detalle en la especificación de detección de OpenID Connect 1.0.

{
  "authorization_endpoint": "https://login.microsoftonline.com/{tenant}/oauth2/v2.0/authorize",
  "token_endpoint": "https://login.microsoftonline.com/{tenant}/oauth2/v2.0/token",
  "token_endpoint_auth_methods_supported": [
    "client_secret_post",
    "private_key_jwt"
  ],
  "jwks_uri": "https://login.microsoftonline.com/{tenant}/discovery/v2.0/keys",
  "userinfo_endpoint": "https://graph.microsoft.com/oidc/userinfo",
  "subject_types_supported": [
      "pairwise"
  ],
  ...
}

Envío de la solicitud de inicio de sesión

Para autenticar a un usuario y solicitar un token de identificador para su uso en la aplicación, dirija su agente de usuario al punto de conexión /authorize de la Plataforma de identidad de Microsoft. La solicitud es similar al primer segmento del flujo de código de autorización de OAuth 2.0, pero con estas distinciones:

  • Incluir el ámbito openid en el parámetro scope.
  • Especifique id_token en el parámetro response_type.
  • Incluya el parámetro nonce.

Solicitud de inicio de sesión de ejemplo (saltos de línea incluidos solo para legibilidad):

GET https://login.microsoftonline.com/{tenant}/oauth2/v2.0/authorize?
client_id=00001111-aaaa-2222-bbbb-3333cccc4444
&response_type=id_token
&redirect_uri=http%3A%2F%2Flocalhost%2Fmyapp%2F
&response_mode=form_post
&scope=openid
&state=12345
&nonce=678910
Parámetro Condition Descripción
tenant Obligatorio Puede usar el valor {tenant} en la ruta de acceso de la solicitud para controlar quién puede iniciar sesión en la aplicación. Los valores permitidos son common, organizations, consumers y los identificadores de inquilinos. Para más información, consulte los conceptos básicos sobre el protocolo. En el caso de los escenarios de invitado en los que se inicia la sesión de un usuario de un inquilino a otro inquilino, se debe proporcionar el identificador del inquilino para iniciar la sesión correctamente en el inquilino de recursos.
client_id Obligatorio El identificador de aplicación (cliente) que elcentro de administración de Microsoft Entra: experiencia de registro de aplicaciones asignó a la aplicación.
response_type Obligatorio Debe incluir id_token para el inicio de sesión en OpenID Connect.
redirect_uri Recomendado El URI de redireccionamiento de la aplicación, adonde la aplicación puede enviar y recibir las respuestas de autenticación. Debe coincidir exactamente con uno de los URI de redireccionamiento que ha registrado en el portal, con la excepción de que debe estar codificado como URL. Si no existe, el punto de conexión seleccionará al azar un redirect_uri registrado para volver a enviar al usuario.
scope Obligatorio Una lista de ámbitos separada por espacios. Asegúrese de incluir el ámbito openid para OpenID Connect, lo que se traduce en el permiso de inicio de sesión en la interfaz de usuario de consentimiento. También puede incluir otros ámbitos en esta solicitud para solicitar el consentimiento.
nonce Obligatorio Valor generado y enviado por la aplicación en su solicitud de un token de identificador. La Plataforma de identidad de Microsoft incluye el mismo valor nonce en el token de identificador devuelto a la aplicación. Para mitigar los ataques de reproducción de tokens, la aplicación debe comprobar que el valor nonce del token de identificador es el mismo valor que envió al solicitar el token. El valor suele ser una cadena aleatoria única.
response_mode Recomendado Especifica el método que se debe usar para enviar el código de autorización resultante de nuevo a la aplicación. Puede ser form_post o fragment. En el caso de las aplicaciones web, se recomienda usar response_mode=form_post para asegurar la transferencia más segura de tokens a la aplicación.
state Recomendado Un valor incluido en la solicitud que también se devolverá en la respuesta del token. Puede ser una cadena de cualquier contenido que desee. Se usa normalmente un valor único generado de forma aleatoria para evitar los ataques de falsificación de solicitudes entre sitios. El estado también se usa para codificar información sobre el estado del usuario en la aplicación antes de que se haya producido la solicitud de autenticación, como la página o la vista en la que estaba el usuario.
prompt Opcional Indica el tipo de interacción necesaria con el usuario. Los únicos valores válidos en este momento son login, none, consent y select_account. La notificación prompt=login obliga al usuario a escribir sus credenciales en esa solicitud, lo que niega el inicio de sesión único. El parámetro prompt=none es lo contrario y se debe emparejar con login_hint para indicar qué usuario debe haber iniciado sesión. Estos parámetros garantizan que al usuario no se le presente ninguna solicitud interactiva. Si la solicitud no se puede completar sin notificaciones mediante el inicio de sesión único, la plataforma de identidad de Microsoft devolverá un error. Las causas incluyen ningún usuario que haya iniciado sesión, el usuario indicado no ha iniciado sesión o varios usuarios han iniciado sesión, pero no se proporcionó ninguna sugerencia. La notificación prompt=consent desencadena el cuadro de diálogo de consentimiento de OAuth después de que el usuario inicia sesión. El cuadro de diálogo le pide al usuario que conceda permisos a la aplicación. Por último, select_account muestra al usuario un selector de cuenta, lo que niega el cierre de sesión único pero permite al usuario elegir con qué cuenta desea iniciar sesión, sin necesidad de introducir ninguna credencial. No se pueden usar ambos, login_hint o select_account.
login_hint Opcionales Puede usar este parámetro para rellenar previamente el campo de nombre de usuario y dirección de correo electrónico de la página de inicio de sesión del usuario, si sabe el nombre de usuario con anticipación. A menudo, las aplicaciones usan este parámetro durante la reautenticación, una vez que ya se extrajo la notificación opcional de login_hint de un inicio de sesión anterior.
domain_hint Opcional El dominio del usuario en un directorio federado. Se omite el proceso de detección basado en correo electrónico por el que pasa el usuario de la página de inicio de sesión, para obtener una experiencia de usuario ligeramente más sencilla. En el caso de los inquilinos que se federan mediante un directorio local como AD FS, con frecuencia se produce un inicio de sesión completo debido a la sesión de inicio de sesión existente.

En este punto, se le pide al usuario que escriba sus credenciales y que complete la autenticación. La plataforma de identidad de Microsoft comprueba que el usuario ha dado su consentimiento a los permisos indicados en el parámetro de consulta scope. Si el usuario no dio su consentimiento a ninguno de estos permisos, la plataforma de identidad de Microsoft solicitará al usuario que dé su consentimiento a los permisos requeridos. Puede leer más información sobre los permisos, el consentimiento y las aplicaciones multiinquilino.

Una vez que el usuario se autentica y da su consentimiento, la plataforma de identidad de Microsoft devuelve una respuesta a su aplicación en el URI de redireccionamiento indicado mediante el método especificado en el parámetro response_mode.

Respuesta correcta

Una respuesta correcta cuando se usa response_mode=form_post es similar a la siguiente:

POST /myapp/ HTTP/1.1
Host: localhost
Content-Type: application/x-www-form-urlencoded

id_token=eyJ0eXAiOiJKV1QiLCJhbGciOiJSUzI1NiIsIng1dCI6Ik1uQ19WWmNB...&state=12345
Parámetro Descripción
id_token El token de identificador que la aplicación solicitó. Puede usar el parámetro id_token para comprobar la identidad del usuario y comenzar una sesión con el usuario. Para más información sobre los tokens de identificador y su contenido, consulte la Referencia del token de identificación.
state Si un parámetro state está incluido en la solicitud, debería aparecer el mismo valor en la respuesta. La aplicación debería comprobar que los valores de estado de la solicitud y la respuesta son idénticos.

Respuesta de error

Las respuestas de error también se pueden enviar al URI de redireccionamiento para que la aplicación pueda controlarlas, por ejemplo:

POST /myapp/ HTTP/1.1
Host: localhost
Content-Type: application/x-www-form-urlencoded

error=access_denied&error_description=the+user+canceled+the+authentication
Parámetro Descripción
error Una cadena de código de error que puede usar para clasificar los tipos de errores que se producen y para reaccionar ante ellos.
error_description Un mensaje de error específico que puede ayudarlo a identificar la causa raíz de un error de autenticación.

Códigos de error correspondientes a errores de puntos de conexión de autorización

En la tabla siguiente se describen los códigos de error que puede devolver el parámetro error de la respuesta de error:

Código de error Descripción Acción del cliente
invalid_request Error de protocolo, como un parámetro obligatorio que falta. Corrija el error y vuelva a enviar la solicitud. Este error de desarrollo debe detectarse durante las pruebas de la aplicación.
unauthorized_client La aplicación cliente no puede solicitar un código de autorización. Este error puede producirse cuando la aplicación cliente no está registrada en Microsoft Entra ID o no está agregada al inquilino Microsoft Entra del usuario. La aplicación puede solicitar al usuario instrucciones para instalar la aplicación y agregarla a Microsoft Entra ID.
access_denied El propietario del recurso denegó el consentimiento. La aplicación cliente puede notificar al usuario que no puede continuar, salvo que este dé su consentimiento.
unsupported_response_type El servidor de autorización no admite el tipo de respuesta de la solicitud. Corrija el error y vuelva a enviar la solicitud. Este error de desarrollo debe detectarse durante las pruebas de la aplicación.
server_error El servidor ha detectado un error inesperado. Vuelva a intentarlo. Estos errores pueden deberse a condiciones temporales. La aplicación cliente podría explicar al usuario que su respuesta se retrasó debido a un error temporal.
temporarily_unavailable De manera temporal, el servidor está demasiado ocupado para atender la solicitud. Vuelva a intentarlo. La aplicación podría explicar al usuario que su respuesta se retrasó debido a una condición temporal.
invalid_resource El recurso de destino no es válido porque no existe, Microsoft Entra ID no lo encuentra o está configurado incorrectamente. Este error indica que el recurso, en caso de existir, no se ha configurado en el inquilino. La aplicación puede solicitar al usuario instrucciones para instalar la aplicación y agregarla a Microsoft Entra ID.

Validar el token de identificador

Es posible que la recepción de un token de identificador en la aplicación no siempre sea suficiente para autenticar completamente al usuario. Es posible que también tenga que validar la firma del token de identificación y verificar sus afirmaciones según los requisitos de su aplicación. Al igual que todos los proveedores de OpenID, los tokens de identificador de Plataforma de identidad de Microsoft son tokens web JSON (JWT) firmados mediante criptografía de clave pública.

Las aplicaciones web y las API web que usan tokens de identificación para la autorización deben validarlos, ya que dichas aplicaciones obtienen acceso a los datos. Sin embargo, es posible que otros tipos de aplicación no se beneficien de la validación de tokens de identificador. Las aplicaciones nativas y de página única (SPA), por ejemplo, rara vez se benefician de la validación de tokens de id., ya que cualquier entidad con acceso físico al dispositivo o explorador puede omitir la validación.

Dos ejemplos de omisión de validación de tokens son:

  • Proporcionar tokens o claves falsos mediante la modificación del tráfico de red al dispositivo
  • Depurar la aplicación y recorrer paso a paso la lógica de validación durante la ejecución del programa.

Si valida tokens de identificador en la aplicación, se recomienda no hacerlo manualmente. En su lugar, use una biblioteca de validación de tokens para analizar y validar tokens. Las bibliotecas de validación de tokens están disponibles para la mayoría de los lenguajes de desarrollo, marcos y plataformas.

Qué validar en un token de identificador

Además de validar la firma del token de identificador, debe validar varias de sus notificaciones, tal como se describe en Validación de un token de identificador. Consulte también Información importante sobre la sustitución de claves de firma.

Otras validaciones son comunes y varían según el escenario de aplicación, entre las que se incluyen:

  • Asegurarse de que la organización/el usuario se ha registrado en la aplicación.
  • Asegurarse de que el usuario tiene la autorización/los privilegios adecuados
  • Asegurarse de que se haya producido un determinado nivel de autenticación, como la autenticación multifactor.

Una vez que haya validado el token de identificador, puede iniciar una sesión con el usuario y usar la información de las notificaciones del token para la personalización, visualización o almacenamiento de sus datos.

Diagrama de protocolo: Obtención de tokens de acceso

Muchas aplicaciones no solo necesitan iniciar sesión en un usuario, sino también acceder a un recurso protegido como una API web en nombre del usuario. Este escenario combina OpenID Connect para obtener un token de identificador para autenticar al usuario y OAuth 2.0 para obtener un token de acceso para un recurso protegido.

El flujo completo de inicio de sesión y adquisición de tokens de OpenID Connect es similar a este diagrama:

Protocolo OpenID Connect: adquisición de tokens

Obtenga un token de acceso para el punto de conexión de UserInfo

Además del token de identificador, la información del usuario autenticado también está disponible en el punto de conexión de userInfo de OIDC.

Para obtener un token de acceso para el punto de conexión deUserInfo de OIDC, modifique la solicitud de inicio de sesión como se describe aquí:

// Line breaks are for legibility only.

GET https://login.microsoftonline.com/{tenant}/oauth2/v2.0/authorize?
client_id=00001111-aaaa-2222-bbbb-3333cccc4444        // Your app registration's Application (client) ID
&response_type=id_token%20token                       // Requests both an ID token and access token
&redirect_uri=http%3A%2F%2Flocalhost%2Fmyapp%2F       // Your application's redirect URI (URL-encoded)
&response_mode=form_post                              // 'form_post' or 'fragment'
&scope=openid+profile+email                           // 'openid' is required; 'profile' and 'email' provide information in the UserInfo endpoint as they do in an ID token. 
&state=12345                                          // Any value - provided by your app
&nonce=678910                                         // Any value - provided by your app

Puede usar el flujo de código de autorización, el flujo de código de dispositivo, o un token de actualización en lugar de response_type=token para obtener un token de acceso para su aplicación.

Respuesta correcta del token

Una respuesta satisfactoria del uso de response_mode=form_post:

POST /myapp/ HTTP/1.1
Host: localhost
Content-Type: application/x-www-form-urlencoded
 access_token=eyJ0eXAiOiJKV1QiLCJub25jZSI6I....
 &token_type=Bearer
 &expires_in=3598
 &scope=email+openid+profile
 &id_token=eyJ0eXAiOiJKV1QiLCJhbGciOiJSUzI....
 &state=12345

Los parámetros de respuesta significan lo mismo, independientemente del flujo usado para adquirirlos.

Parámetro Descripción
access_token El token que se usa para llamar al punto de conexión de UserInfo.
token_type Siempre "Portador"
expires_in Cuánto tiempo transcurre hasta que el token de acceso expira, en segundos.
scope Permisos concedidos en el token de acceso. Dado que el punto de conexión UserInfo se hospeda en Microsoft Graph, es posible que scope contenga otros concedidos previamente a la aplicación (por ejemplo, User.Read).
id_token El token de identificador que la aplicación solicitó. Puede usar el token de identificador para comprobar la identidad del usuario y comenzar una sesión con el usuario. Encontrará más detalles sobre los tokens de identificación y su contenido en la referencia de tokens de identificación.
state Si se incluye un parámetro de estado en la solicitud, debería aparecer el mismo valor en la respuesta. La aplicación debería comprobar que los valores de state de la solicitud y la respuesta sean idénticos.

Advertencia

No intente validar ni leer tokens para ninguna API de su propiedad, incluidos los tokens de este ejemplo, en el código. Los tokens de los servicios de Microsoft pueden usar un formato especial que no se validará como un JWT y también se pueden cifrar para los usuarios consumidores (cuenta Microsoft). Aunque la lectura de tokens es una herramienta útil de depuración y aprendizaje, no tome dependencias de esto en el código ni asuma detalles sobre los tokens que no son para una API que controle.

Respuesta de error

Las respuestas de error también se pueden enviar al URI de redireccionamiento para que la aplicación pueda controlarlas correctamente:

POST /myapp/ HTTP/1.1
Host: localhost
Content-Type: application/x-www-form-urlencoded

error=access_denied&error_description=the+user+canceled+the+authentication
Parámetro Descripción
error Una cadena de código de error que puede usar para clasificar los tipos de errores que se producen y para reaccionar ante ellos.
error_description Un mensaje de error específico que puede ayudarlo a identificar la causa raíz de un error de autenticación.

Para una descripción de los posibles códigos de error y las respuestas de cliente recomendadas, consulte Códigos de error correspondientes a errores de puntos de conexión de autorización.

Cuando tiene un código de autorización y un token de identificador, puede iniciar la sesión del usuario y obtener tokens de acceso en su nombre. Para iniciar la sesión del usuario, debe validar el token de identificador como se describe en los tokens de validación. Para obtener tokens de acceso, siga los pasos descritos en la documentación del flujo de código de OAuth.

Llamada al punto de conexión de UserInfo

Consulte la documentación de UserInfo para ver cómo llamar al punto de conexión de UserInfo con este token.

Envío de una solicitud de cierre de sesión

Para cerrar la sesión de un usuario, realice las operaciones siguientes:

  1. Redirigir el agente de usuario del usuario al identificador URI de cierre de sesión de la Plataforma de identidad de Microsoft.
  2. Borrar las cookies de la aplicación o finalizar la sesión del usuario en la aplicación.

Si no realiza ninguna de estas operaciones, el usuario puede permanecer autenticado y no se le pedirá que inicie sesión la próxima vez que la aplicación lo haga.

Redirija el agente de usuario a end_session_endpoint como se muestra en el documento de configuración de OpenID Connect. El end_session_endpoint admite solicitudes HTTP GET y POST.

GET https://login.microsoftonline.com/common/oauth2/v2.0/logout?
post_logout_redirect_uri=http%3A%2F%2Flocalhost%2Fmyapp%2F
Parámetro Condition Descripción
post_logout_redirect_uri Recomendado La dirección URL al que se redirige al usuario tras cerrar sesión correctamente. Si el parámetro no se incluye, se muestra al usuario un mensaje genérico que genera la plataforma de identidad de Microsoft. Esta dirección URL debe coincidir con uno de los URI de redirección registrados para su aplicación en el portal de registro de aplicaciones.
logout_hint Opcional Permite cerrar sesión sin solicitar al usuario que seleccione una cuenta. Para usar logout_hint, habilite la login_hintnotificación opcional de la aplicación cliente y use el valor de la notificación opcional login_hint como parámetro logout_hint. No use UPN ni números de teléfono como valor del parámetro logout_hint.

Nota

Después de cerrar sesión correctamente, las sesiones activas se establecerán en inactivas. Si existe un token de actualización principal (PRT) válido para el usuario que ha cerrado sesión y se ejecuta un nuevo inicio de sesión, se interrumpirá el cierre de sesión único y el usuario verá una pregunta con un selector de cuenta. Si la opción seleccionada es la cuenta conectada que hace referencia al PRT, el inicio de sesión continuará automáticamente sin necesidad de insertar credenciales nuevas.

Cierre de sesión único

Al redirigir al usuario a end_session_endpoint en una aplicación, la plataforma de identidad de Microsoft finaliza la sesión de usuario para esta aplicación. Sin embargo, el usuario puede permanecer con la sesión iniciada en otras aplicaciones que usan las mismas cuentas de Microsoft para la autenticación.

Cuando un usuario ha iniciado sesión en varias aplicaciones SPA o web registradas en este directorio (también denominado inquilino), el cierre de sesión único permite que el usuario cierre la sesión de todas las aplicaciones al instante al cerrar sesión en cualquiera de las aplicaciones.

Para habilitar el cierre de sesión único para la aplicación de Entra, debes usar la característica de cierre de sesión de canal frontal de OpenID Connect. Esta característica permite a una aplicación notificar a otras aplicaciones que el usuario ha cerrado la sesión. Cuando el usuario cierra sesión en una aplicación, la plataforma de identidad de Microsoft envía una solicitud HTTP GET a la dirección URL de cierre de sesión de canal frontal de cada aplicación en la que el usuario tiene la sesión iniciada actualmente.

Estas aplicaciones deben responder a esta solicitud realizando las dos acciones siguientes para que el cierre de sesión único sea correcto:

  1. Borrar cualquier sesión que identifique al usuario.
  2. Las aplicaciones deben responder a esta solicitud mediante la eliminación de la sesión que identifica al usuario y la devolución de una respuesta 200.

¿Qué es una dirección URL de cierre de sesión de canal frontal?

Una dirección URL de cierre de sesión de canal frontal es donde la aplicación SPA o web recibe la solicitud de cierre de sesión del servidor de autenticación de Entra y realiza la funcionalidad de cierre de sesión único. Cada aplicación tiene una dirección URL de cierre de sesión de canal frontal.

¿Cuándo debe establecer una dirección URL de cierre de sesión de canal frontal?

Si tú o tu desarrollador habéis determinado que el cierre de sesión único es necesario para una aplicación, debes establecer la dirección URL de cierre de sesión de canal frontal para el registro de aplicación de esta aplicación. Una vez establecida la dirección URL de cierre de sesión de canal frontal para el registro de aplicación de esta aplicación, la plataforma de identidad de Microsoft envía una solicitud HTTP GET a la dirección URL de cierre de sesión de canal frontal de esta aplicación cuando el usuario que ha iniciado sesión ha cerrado la sesión de otra aplicación.

Configuración del cierre de sesión único mediante la función de cierre de sesión de canal frontal

Para usar la característica de cierre de sesión de canal frontal para un conjunto de aplicaciones, debes completar las dos tareas siguientes:

  • Establece la dirección URL de cierre de sesión de canal frontal en el Centro de administración Microsoft Entra para todas las aplicaciones de las que se debe cerrar sesión simultáneamente. Cada aplicación suele tener su propia dirección URL de cierre de sesión de canal frontal dedicada.
  • Edita el código de las aplicaciones para que escuchen una solicitud HTTP GET enviada por la plataforma de identidad de Microsoft a la dirección URL de cierre de sesión de canal frontal y respondan a esta solicitud borrando cualquier sesión que identifique al usuario y devuelvan una respuesta 200.

Cómo elegir una dirección URL de cierre de sesión de canal frontal

La dirección URL de cierre de sesión de canal frontal debe ser una dirección URL capaz de recibir y responder a las solicitudes HTTP GET y debe poder borrar cualquier sesión que identifique al usuario. Ejemplos de una URL de cierre de sesión de canal frontal podrían ser, entre otros, los siguientes:

Pasos siguientes