Protocolo SAML de cierre de sesión único

Microsoft Entra ID es compatible con el perfil de cierre de sesión único de explorador web de SAML 2.0. Para un correcto funcionamiento del inicio de sesión único, debe registrarse explícitamente LogoutURL con Microsoft Entra ID durante el proceso de registro de aplicación.

Si la aplicación se agrega a la Galería de aplicaciones de Azure, este valor se puede establecer de manera predeterminada. De lo contrario, el valor debe determinarse y establecerse por la persona que agrega la aplicación a su inquilino de Microsoft Entra. Microsoft Entra ID usa el 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.

Screenshot of the Microsoft Entra Single Sign Out Workflow.

LogoutRequest

El servicio en la nube envía un mensaje LogoutRequest a Microsoft Entra ID para indicar que ha finalizado una sesión. El extracto siguiente muestra un ejemplo de elemento 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 elemento LogoutRequest enviado a Microsoft Entra ID requiere los atributos siguientes:

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

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 objeto LogoutRequest a la Plataforma de identidad de Microsoft (la autoridad de sesión), esta devolverá LogoutRequest a todos los participantes de la sesión, excepto al que envió el elemento inicial LogoutRequest. Si otro participante inició el cierre de la sesión al mismo tiempo, habría una carrera para ver qué LogoutRequest alcanza primero la Plataforma de identidad de Microsoft. Por tanto, una aplicación siempre debe estar preparada para controlar LogoutRequest.

Emisor

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

NameID

El valor del elemento NameID debe coincidir exactamente con el valor de NameID del usuario que cierra sesión.

Nota:

Durante la solicitud de cierre de sesión de SAML, Microsoft Entra ID no considera el valor de NameID.
Si una sola sesión de usuario 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, Microsoft Entra ID enumerará las sesiones activas para la selección de usuario. Después de la selección del usuario, el cierre de sesión de SAML continuará.

LogoutResponse

Microsoft Entra ID envía una LogoutResponse en respuesta a un elemento LogoutRequest. El extracto siguiente muestra un ejemplo de 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 ID, Version y IssueInstant en el elemento LogoutResponse. También establece el elemento InResponseTo en el valor del atributo ID del elemento LogoutRequest que obtiene 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 emisor, use el valor https://login.microsoftonline.com/<TenantIdGUID>/ como se muestra en el LogoutResponse de ejemplo. Este formato de dirección URL identifica al inquilino de Microsoft Entra como el emisor, que representa a la autoridad responsable de emitir la respuesta.

Estado

Microsoft Entra ID usa el elemento StatusCode en Status para indicar que el cierre de sesión ha sido satisfactorio o que se ha producido algún error. Cuando se produce un error en el intento de cierre de sesión, el elemento StatusCode también puede contener mensajes de error personalizados.