Compartir a través de


Protocolo SAML de cierre de sesión único

Microsoft Entra ID admite el perfil de cierre de sesión único del explorador web SAML 2.0. Para que el cierre de sesión único funcione correctamente, logoutURL para la aplicación debe registrarse explícitamente con el identificador de Entra de Microsoft durante el registro de la aplicación.

Si la aplicación se agrega a la Galería de aplicaciones de Azure, este valor se puede establecer de forma predeterminada. De lo contrario, la persona que agrega la aplicación a su inquilino de Microsoft Entra debe determinar y establecer el valor. Microsoft Entra ID usa LogoutURL para redirigir a los usuarios después de cerrar la sesión. Microsoft Entra ID admite el enlace de redireccionamiento (HTTP GET) y no el enlace HTTP POST.

En el diagrama siguiente se muestra el flujo de trabajo del proceso de cierre de sesión único de Microsoft Entra.

Captura de pantalla del flujo de trabajo de cierre de sesión único de Microsoft Entra.

LogoutRequest

El servicio en la nube envía un LogoutRequest mensaje a Microsoft Entra ID para indicar que se ha terminado una sesión. En el fragmento siguiente se muestra un elemento de ejemplo LogoutRequest .

<samlp:LogoutRequest xmlns="urn:oasis:names:tc:SAML:2.0:metadata" ID="idaa6ebe6839094fe4abc4ebd5281ec780" Version="2.0" IssueInstant="2013-03-28T07:10:49.6004822Z" xmlns:samlp="urn:oasis:names:tc:SAML:2.0:protocol">
  <Issuer xmlns="urn:oasis:names:tc:SAML:2.0:assertion">https://www.workaad.com</Issuer>
  <NameID xmlns="urn:oasis:names:tc:SAML:2.0:assertion"> Uz2Pqz1X7pxe4XLWxV9KJQ+n59d573SepSAkuYKSde8=</NameID>
</samlp:LogoutRequest>

El LogoutRequest elemento enviado a Microsoft Entra ID requiere los siguientes atributos:

  • ID : identifica la solicitud de cierre de sesión. El valor de ID no debe comenzar con un número. La práctica habitual es anexar id a la representación de cadena de un GUID.
  • Version : establezca el valor de este elemento en 2.0. Este valor es obligatorio.
  • IssueInstant - Se trata de una DateTime cadena con un valor de hora universal de coordenadas (UTC) y formato de ida y vuelta ("o") . Microsoft Entra ID espera un valor de este tipo, pero no lo aplica.

Por sección 3.7 de la especificación básica de SAML 2.0, puede haber varios participantes (otras aplicaciones) en una sesión además de la aplicación. Si uno de los demás participantes envía un LogoutRequest elemento a la Plataforma de identidad de Microsoft (la autoridad de sesión), devolverá una LogoutRequest respuesta a todos los participantes de la sesión, excepto al participante que envió el inicial LogoutRequest. Si otro participante inició la sesión simultáneamente, habrá una carrera para ver qué LogoutRequest llega primero a la plataforma de identidad de Microsoft. Por lo tanto, una aplicación siempre debe estar preparada para controlar un LogoutRequest.

Emisor

El Issuer elemento de un LogoutRequest debe coincidir exactamente con uno de los ServicePrincipalNames en el servicio en la nube en microsoft Entra ID. Normalmente, se establece en el URI de id. de aplicación que se especifica durante el registro de la aplicación.

NameID

El valor del NameID elemento debe coincidir exactamente con el NameID del usuario que se va a cerrar la sesión.

Nota:

Durante la solicitud de cierre de sesión de SAML, microsoft Entra ID no considera el NameID valor.
Si una sesión de usuario único está activa, Microsoft Entra ID seleccionará automáticamente esa sesión y el cierre de sesión de SAML continuará.
Si hay varias sesiones de usuario activas, El identificador de Entra de Microsoft enumerará las sesiones activas para la selección de usuario. Después de seleccionar el usuario, el cierre de sesión de SAML continuará.

LogoutResponse

Microsoft Entra ID envía una LogoutResponse en respuesta a un LogoutRequest elemento . En el fragmento siguiente se muestra un ejemplo LogoutResponse.

<samlp:LogoutResponse ID="_f0961a83-d071-4be5-a18c-9ae7b22987a4" Version="2.0" IssueInstant="2013-03-18T08:49:24.405Z" InResponseTo="iddce91f96e56747b5ace6d2e2aa9d4f8c" xmlns:samlp="urn:oasis:names:tc:SAML:2.0:protocol">
  <Issuer xmlns="urn:oasis:names:tc:SAML:2.0:assertion">https://login.microsoftonline.com/aaaabbbb-0000-cccc-1111-dddd2222eeee/</Issuer>
  <samlp:Status>
    <samlp:StatusCode Value="urn:oasis:names:tc:SAML:2.0:status:Success" />
  </samlp:Status>
</samlp:LogoutResponse>

Microsoft Entra ID establece los valores de ID, Version y IssueInstant en el elemento LogoutResponse. También establece el InResponseTo elemento en el valor del ID atributo de que LogoutRequest ha elicitado la respuesta.

Emisor

Microsoft Entra ID establece este valor en https://login.microsoftonline.com/<TenantIdGUID>/ donde <TenantIdGUID> es el identificador de inquilino del inquilino de Microsoft Entra.

Para identificar correctamente el elemento issuer, use el valor https://login.microsoftonline.com/<TenantIdGUID>/ como se muestra en el ejemplo LogoutResponse. Este formato de dirección URL identifica el inquilino de Microsoft Entra como emisor, que representa la autoridad responsable de emitir la respuesta.

Estado

Microsoft Entra ID usa el StatusCode elemento del Status elemento para indicar el éxito o el error de cierre de sesión. Cuando se produce un error en el intento de cierre de sesión, el StatusCode elemento también puede contener mensajes de error personalizados.