[1.7.0] Falta del atributo "NameQualifier" del elemento <NameID> en la petición de logout desde IdP hacia SP

Descripción

El contexto del bug es el sigiuente.

En los mensajes de respuesta de autenticación SAML se envía el elemento <NameID> con los atributos NameQualifier, SPNameQualifier y Format.

Cuando se realiza una petición de logout desde adAS SSO hacia un SP, realizada desde la página de "Status", el elemento <NameID> se envía sin el atributo NameQualifier.

Este hecho se ha demostrado que el algunos SPs no permite identificar al sujeto al cual se le debe cerrar la sesión.

El bug se propone como tal por falta de coherencia en cuanto al contenido del elemento NameID entre diferentes mensajes enviados por adAS. Y motivado por las siguientes definiciones del estándar SAML.

Punto "3.7.3.1 Session Participant Rules" del documento Assertions and Protocols for the OASIS Security Assertion Markup Language (SAML) V2.0

When a session participant receives a <LogoutRequest> message, [...]If the sender is the authority that provided an assertion containing an authentication statement linked to the principal's current session, the session participant MUST invalidate the principal's session(s) referred to by the <saml:BaseID>, <saml:NameID>, or <saml:EncryptedID> element, and any <SessionIndex> elements supplied in the message.[...]
[...] The session participant MUST apply the logout request message to any assertion that meets the following conditions, even if the assertion arrives after the logout request:

  • The subject of the assertion strongly matches the <saml:BaseID>, <saml:NameID>, or <saml:EncryptedID> element in the <LogoutRequest>, as defined in Section 3.3.4.
    [...]

Punto "3.3.4 Processing Rules" del documento Assertions and Protocols for the OASIS Security Assertion Markup Language (SAML) V2.0

In response to a SAML-defined query message, every assertion returned by a SAML authority MUST contain a <saml:Subject> element that strongly matches the <saml:Subject> element found in the query.

A <saml:Subject> element S1 strongly matches S2 if and only if the following two conditions both apply:

  • If S2 includes an identifier element (<BaseID>, <NameID>, or <EncryptedID>), then S1 MUST include an identical identifier element[...]

Entorno

None

Cómo reproducirlo

  1. Acceder a un SP SAML, para provocar una petición de autenticación hacia adAS SSO

  2. Comprobar en el mensaje de respuesta de autenticación SAML que el elemento NameID contiene el atributo NameQualifier

  3. Realizar una petición de logout desde el IdP hacia los SPs, para ello acceder a la página de status de adAS SSO y presionar el botón "CERRAR SESIÓN"

  4. Comprobar en el mensaje de petición de logout hacia los SPs SAML que el elemento NameID no contiene el atributo NameQualifier

Componentes

Responsable

Daniel García

Informador

Daniel García

Versiones corregidas

None

Versiones afectadas

Prioridad

Minor
Configure