Configuración del comportamiento de la sesión en Azure Active Directory B2C

Antes de comenzar, use el selector Elección de un tipo de directiva para elegir el tipo de directiva que va a configurar. Azure Active Directory B2C ofrece dos métodos para definir el modo en que los usuarios interactúan con las aplicaciones: por medio de flujos de usuario predefinidos o de directivas personalizadas totalmente configurables. Los pasos necesarios en este artículo son diferentes para cada método.

El inicio de sesión único (SSO) agrega seguridad y comodidad cuando los usuarios inician sesión en las aplicaciones de Azure Active Directory B2C (Azure AD B2C). Este artículo describe los métodos de inicio de sesión único que se usan en Azure AD B2C y le ayuda a elegir el más apropiado al configurar la directiva.

Con el inicio de sesión único, los usuarios inician sesión una vez con una sola cuenta y obtienen acceso a varias aplicaciones. La aplicación puede ser una aplicación web, móvil o de una sola página, independientemente de la plataforma o del nombre de dominio.

Cuando el usuario inicia sesión por primera vez en una aplicación, Azure AD B2C conserva una sesión basada en cookies. En las solicitudes de autenticación posteriores, Azure AD B2C lee y valida la sesión basada en cookies y emite un token de acceso sin pedir al usuario que vuelva a iniciar sesión. Si la sesión basada en cookies expira o deja de ser válida, se solicita al usuario que vuelva a iniciar sesión.

Requisitos previos

Información general de la sesión de Azure AD B2C

La integración con Azure AD B2C implica tres tipos de sesiones de SSO:

  • Azure AD B2C: sesión que administra Azure AD B2C.
  • Proveedor de identidades federado: sesión que administra el proveedor de identidades; por ejemplo, una cuenta de Microsoft, Facebook o Salesforce.
  • Aplicación: sesión que administra la aplicación web, móvil o de una sola página.

SSO session

Sesión de Azure AD B2C

Cuando un usuario se autentica correctamente con una cuenta local o social, Azure AD B2C almacena una sesión basada en cookies en el explorador del usuario. La cookie se almacena en el nombre de dominio del inquilino de Azure AD B2C, como https://contoso.b2clogin.com.

Cuando un usuario inicia sesión con una cuenta federada, se inicia una ventana de tiempo de sesión, también conocida como período de vida (TTL). Si el usuario inicia sesión en la misma aplicación o en otra dentro de este TTL, Azure AD B2C intenta adquirir un nuevo token de acceso del proveedor de identidades federado. Si la sesión del proveedor de identidades federado expiró o no es válida, el proveedor de identidades federado solicita al usuario sus credenciales. Si la sesión del usuario está en curso o si el usuario ha iniciado sesión con una cuenta local en lugar de con una federada, Azure AD B2C autoriza al usuario e impide cualquier solicitud adicional.

Puede configurar el comportamiento de la sesión, incluido el TTL de la sesión y cómo Azure AD B2C comparte la sesión entre las directivas y las aplicaciones.

Sesión del proveedor de identidades federadas

Un proveedor de identidades social o empresarial administra su propia sesión. La cookie se almacena en el nombre de dominio del inquilino del proveedor de identidades, como https://login.salesforce.com. Azure AD B2C no controla la sesión del proveedor de identidades federado. En su lugar, el comportamiento de la sesión viene determinado por el proveedor de identidades federado.

Considere el caso siguiente:

  1. Un usuario inicia sesión en Facebook para comprobar su sección de noticias.
  2. Más adelante, abre su aplicación e inicia el proceso de inicio de sesión. La aplicación redirige al usuario a Azure AD B2C para completar el proceso de inicio de sesión.
  3. En la página de registro o inicio de sesión de Azure AD B2C, el usuario elige iniciar sesión con su cuenta de Facebook. Se redirige al usuario a Facebook. Si hay una sesión activa en Facebook, no se le pedirá al usuario que proporcione sus credenciales y se le redirigirá inmediatamente a Azure AD B2C con un token de Facebook.

Sesión de una aplicación

Un token de acceso de OAuth2, un token de identificador o un token SAML puede proteger una aplicación web, móvil o de página única. Cuando un usuario intenta acceder a un recurso protegido en la aplicación, esta comprueba si hay una sesión activa en el lado de la aplicación. Si una sesión de aplicación no existe o la sesión expira, la aplicación dirige al usuario a la página de inicio de sesión de Azure AD B2C.

La sesión de la aplicación puede ser una sesión basada en cookies almacenada en el nombre de dominio de la aplicación, como https://contoso.com. Las aplicaciones móviles pueden almacenar la sesión de forma distinta, aunque con una estrategia similar.

Configuración del comportamiento de la sesión de Azure AD B2C

Puede configurar el comportamiento de la sesión de Azure AD B2C, entre otras cosas:

  • Duración de la sesión de la aplicación web (minutos) : cantidad de tiempo durante la que la cookie de la sesión de Azure AD B2C está almacenada en el explorador del usuario después de una autenticación correcta. Puede establecer la duración de la sesión en 24 horas como máximo.

  • Tiempo de espera de la sesión de la aplicación web: indica cómo se amplía una sesión, ya sea mediante el valor de duración de la sesión o mediante la configuración de mantenimiento de la sesión iniciada.

    • Rolling (acumulado): indica que la sesión se extiende cada vez que el usuario realiza una autenticación basada en cookies (predeterminado).
    • Absoluto: indica que el usuario se ve obligado a volver a autenticarse después del período de tiempo especificado.
  • Configuración de inicio de sesión único:la sesión de Azure AD B2C se puede configurar con los siguientes ámbitos:

    • Inquilino: esta es la configuración predeterminada. Esta configuración permite que varias aplicaciones y flujos de usuario del inquilino B2C compartan la misma sesión de usuario. Por ejemplo, una vez que un usuario inicia sesión en una aplicación, puede también iniciar sesión perfectamente en otra simplemente al acceder a ella.
    • Aplicación: este valor permite mantener una sesión de usuario exclusivamente para una aplicación, independientemente de otras aplicaciones. Por ejemplo, puede usar esta opción si quiere que el usuario inicie sesión en Contoso Pharmacy, independientemente de si ya inició sesión en Contoso Groceries.
    • Directiva: este valor permite mantener una sesión de usuario exclusivamente para un flujo de usuario, independientemente de las aplicaciones que lo usen. Por ejemplo, Azure AD B2C concede al usuario acceso a partes de mayor seguridad de varias aplicaciones si el usuario ya ha iniciado sesión y ha completado un paso de autenticación multifactor (MFA). Este acceso continúa siempre que la sesión asociada al flujo de usuario permanezca activa.
    • Suprimido: este valor obliga al usuario a ejecutar todo el flujo de usuario cada vez que se ejecuta la directiva.

Configuración del flujo de usuario

Para configurar el comportamiento de la sesión en el flujo de usuario, siga estos pasos:

  1. Inicie sesión en Azure Portal.
  2. Si tiene acceso a varios inquilinos, seleccione el icono Configuración en el menú superior para cambiar a su inquilino de Azure AD B2C desde el menú Directorios y suscripciones.
  3. Elija Todos los servicios en la esquina superior izquierda de Azure Portal, y busque y seleccione Azure AD B2C.
  4. Seleccione Flujos de usuario.
  5. Abra el flujo de usuario que creó anteriormente.
  6. Seleccione Propiedades.
  7. Configure las opciones Duración de la sesión de la aplicación web (minutos) , Tiempo de espera de la sesión de la aplicación web, Configuración de inicio de sesión único y Requerir token de identificador en solicitudes de cierre de sesión según sea necesario.
  8. Haga clic en Save(Guardar).

Configuración de la directiva personalizada

Para configurar el comportamiento de la sesión en la directiva personalizada, siga estos pasos:

  1. Abra el archivo de usuario de confianza (RP), por ejemplo SignUpOrSignin.xml.

  2. Si aún no existe, agregue el siguiente elemento <UserJourneyBehaviors> al elemento <RelyingParty>. Tiene que estar situado inmediatamente después de <DefaultUserJourney ReferenceId="UserJourney Id"/>.

    <UserJourneyBehaviors>
      <SingleSignOn Scope="Application" />
      <SessionExpiryType>Absolute</SessionExpiryType>
      <SessionExpiryInSeconds>86400</SessionExpiryInSeconds>
    </UserJourneyBehaviors>
    

    Después de agregar los elementos de comportamiento del recorrido del usuario, el elemento RelyingParty debería tener un aspecto parecido al del ejemplo siguiente:

    <RelyingParty>
      <DefaultUserJourney ReferenceId="SignUpOrSignIn" />
      <UserJourneyBehaviors>
        <SingleSignOn Scope="Application" />
        <SessionExpiryType>Absolute</SessionExpiryType>
        <SessionExpiryInSeconds>86400</SessionExpiryInSeconds>
      </UserJourneyBehaviors>
      <TechnicalProfile Id="PolicyProfile">
        <DisplayName>PolicyProfile</DisplayName>
        <Protocol Name="OpenIdConnect" />
        <OutputClaims>
          <OutputClaim ClaimTypeReferenceId="displayName" />
          <OutputClaim ClaimTypeReferenceId="givenName" />
          ...
        </OutputClaims>
        <SubjectNamingInfo ClaimType="sub" />
      </TechnicalProfile>
    </RelyingParty>
    
  3. Cambie el valor del atributo Scope a uno de los valores posibles: Suppressed, Tenant, Application o Policy. Para obtener más información, consulte el artículo de referencia de RelyingParty.

  4. Establezca el elemento SessionExpiryType en Rolling o Absolute. Para obtener más información, consulte el artículo de referencia de RelyingParty.

  5. Establezca el elemento SessionExpiryInSeconds en un valor numérico entre 900 segundos (15 minutos) y 86 400 segundos (24 horas). Para obtener más información, consulte el artículo de referencia de RelyingParty.

Habilitación de Mantener la sesión iniciada (KMSI)

Puede habilitar la característica para mantener la sesión iniciada para los usuarios de las aplicaciones web y nativas que tienen cuentas locales en el directorio de Azure AD B2C. Cuando se habilita la característica, los usuarios pueden optar por mantener la sesión iniciada de forma que siga activa después de que cierren el explorador. La sesión se mantiene estableciendo una cookie persistente. Los usuarios que seleccionan KMSI pueden volver a abrir el explorador sin que se les pida que escriban de nuevo el nombre de usuario y la contraseña. Este acceso (cookie persistente) se revoca cuando un usuario cierra la sesión. Para más información, consulte la demo en directo.

Example sign-up sign-in page showing a Keep me signed in checkbox

Esta característica se puede configurar en el nivel de flujo cada usuario. Antes de habilitarla para los flujos de usuario, tenga en cuenta los siguientes aspectos:

  • Esta característica solo se admite en las versiones recomendadas de los flujos de usuario de registro e inicio de sesión, inicio de sesión y edición de perfiles. Si actualmente tiene las versiones Estándar (heredada) o Preliminar heredada - v2 de estos flujos de usuario y desea habilitar KMSI, debe crear versiones nuevas, recomendadas, de estos flujos de usuario.
  • KMSI no se admite con flujos de usuario de registro o restablecimiento de contraseña.
  • Si quiere habilitar esta característica para todas las aplicaciones de su inquilino, se recomienda que la habilite para todos los flujos de usuario del inquilino. Dado que se pueden presentar varias directivas a los usuarios durante una sesión, es posible que se encuentren con alguna que no tenga habilitada esta característica, lo que eliminaría su cookie de la sesión.
  • KMSI no debe estar habilitado en equipos públicos.

Configuración de la característica Mantener la sesión iniciada para un flujo de usuario

Para habilitar la característica Mantener la sesión iniciada para el flujo de usuario, siga estos pasos:

  1. Inicie sesión en Azure Portal.

  2. Si tiene acceso a varios inquilinos, seleccione el icono Configuración en el menú superior para cambiar a su inquilino de Azure AD B2C desde el menú Directorios y suscripciones.

  3. Elija Todos los servicios en la esquina superior izquierda de Azure Portal, y busque y seleccione Azure AD B2C.

  4. Seleccione Flujos de usuario (directivas) .

  5. Abra el flujo de usuario que creó anteriormente.

  6. Seleccione Propiedades.

  7. En Comportamiento de la sesión, seleccione Habilitar la opción de mantener la sesión iniciada. Junto a Mantener la sesión iniciada (días) , escriba un valor entre 1 y 90 para especificar el número de días que una sesión puede permanecer abierta.

    Enable keep me signed in session

Los usuarios no deben habilitar esta opción en equipos públicos.

Configuración del identificador de página

Para habilitar KMSI, establezca el elemento de DataUri de la definición de contenido en identificador de páginaunifiedssp y versión de la página 1.1.0 o superior.

  1. Abra el archivo de extensión de la directiva. Por ejemplo, SocialAndLocalAccounts/TrustFrameworkExtensions.xml. Este archivo de extensión es uno de los archivos de directiva incluidos en el paquete de inicio de directivas personalizado, que se obtiene en el requisito previo, Introducción a las directivas personalizadas.

  2. Busque el elemento BuildingBlocks. Si el elemento no existe, agréguelo.

  3. Agregue el elemento ContentDefinitions al elemento BuildingBlocks de la directiva.

    La directiva personalizada debería ser similar al fragmento de código siguiente:

    <BuildingBlocks>
      <ContentDefinitions>
        <ContentDefinition Id="api.signuporsignin">
          <DataUri>urn:com:microsoft:aad:b2c:elements:unifiedssp:1.1.0</DataUri>
        </ContentDefinition>
      </ContentDefinitions>
    </BuildingBlocks>
    

Incorporación de los metadatos al perfil técnico autoafirmado

Para agregar la casilla KMSI a la página de registro e inicio de sesión, establezca los metadatos de setting.enableRememberMe en true. Invalide los perfiles técnicos de SelfAsserted-LocalAccountSignin-Email en el archivo de extensión.

  1. Busque el elemento ClaimsProviders. Si el elemento no existe, agréguelo.

  2. Agregue el siguiente proveedor de notificaciones al elemento ClaimsProviders:

    <ClaimsProvider>
      <DisplayName>Local Account</DisplayName>
      <TechnicalProfiles>
        <TechnicalProfile Id="SelfAsserted-LocalAccountSignin-Email">
          <Metadata>
            <Item Key="setting.enableRememberMe">True</Item>
          </Metadata>
        </TechnicalProfile>
      </TechnicalProfiles>
    </ClaimsProvider>
    
  3. Guarde el archivo de extensiones.

Configuración de un archivo de usuario de confianza

Actualice el archivo de usuario de confianza (RP) que inicia el recorrido del usuario que ha creado. El parámetro keepAliveInDays permite configurar el tiempo que debe persistir la cookie de sesión de la opción para mantener la sesión iniciada. Por ejemplo, si establece el valor en 30, la cookie de sesión se conserva durante 30 días. El intervalo para el valor es de 1 a 90 días. Si se establece el valor en 0, se desactiva la funcionalidad KMSI.

  1. Abra el archivo de la directiva personalizada. Por ejemplo, SignUpOrSignin.xml.

  2. Si aún no existe, agregue un nodo secundario <UserJourneyBehaviors> al nodo <RelyingParty>. Tiene que estar situado inmediatamente después de <DefaultUserJourney ReferenceId="User journey Id" />, por ejemplo: <DefaultUserJourney ReferenceId="SignUpOrSignIn" />.

  3. Agregue el siguiente nodo como nodo secundario del elemento <UserJourneyBehaviors>.

    <UserJourneyBehaviors>
      <SingleSignOn Scope="Tenant" KeepAliveInDays="30" />
      <SessionExpiryType>Absolute</SessionExpiryType>
      <SessionExpiryInSeconds>1200</SessionExpiryInSeconds>
    </UserJourneyBehaviors>
    

Establezca KeepAliveInDays y SessionExpiryInSeconds para que, durante un inicio de sesión, si un usuario habilita KMSI, se utilice KeepAliveInDays para establecer las cookies; de lo contrario, se usará el valor especificado en el parámetro SessionExpiryInSeconds. Se recomienda que establezca el valor de SessionExpiryInSeconds para un período breve (1200 segundos), mientras que el valor de KeepAliveInDays se puede establecer en un período relativamente largo (30 días), como se muestra en el ejemplo siguiente:

<RelyingParty>
  <DefaultUserJourney ReferenceId="SignUpOrSignIn" />
  <UserJourneyBehaviors>
    <SingleSignOn Scope="Tenant" KeepAliveInDays="30" />
    <SessionExpiryType>Absolute</SessionExpiryType>
    <SessionExpiryInSeconds>1200</SessionExpiryInSeconds>
  </UserJourneyBehaviors>
  <TechnicalProfile Id="PolicyProfile">
    <DisplayName>PolicyProfile</DisplayName>
    <Protocol Name="OpenIdConnect" />
    <OutputClaims>
      <OutputClaim ClaimTypeReferenceId="displayName" />
      <OutputClaim ClaimTypeReferenceId="givenName" />
      <OutputClaim ClaimTypeReferenceId="surname" />
      <OutputClaim ClaimTypeReferenceId="email" />
      <OutputClaim ClaimTypeReferenceId="objectId" PartnerClaimType="sub"/>
      <OutputClaim ClaimTypeReferenceId="identityProvider" />
      <OutputClaim ClaimTypeReferenceId="tenantId" AlwaysUseDefaultValue="true" DefaultValue="{Policy:TenantObjectId}" />
    </OutputClaims>
    <SubjectNamingInfo ClaimType="sub" />
  </TechnicalProfile>
</RelyingParty>

Cerrar sesión

Si desea cerrar la sesión del usuario de la aplicación, no basta con borrar las cookies de la aplicación o finalizar la sesión con el usuario. Debe redireccionar al usuario a Azure AD B2C para cerrar la sesión. De lo contrario, el usuario podría autenticarse de nuevo en la aplicación sin volver a escribir sus credenciales.

Después de una solicitud de cierre de sesión, Azure AD B2C hará lo siguiente:

  1. Invalidar la sesión basada en cookies de Azure AD B2C.
  2. Tratar de cerrar la sesión de los proveedores de identidades federados.
  1. Invalidar la sesión basada en cookies de Azure AD B2C.
  2. Tratar de cerrar la sesión de los proveedores de identidades federados:
    • OpenID Connect: si el punto de conexión de configuración conocido del proveedor de identidades especifica una ubicación end_session_endpoint. La solicitud de cierre de sesión no pasa el parámetro id_token_hint. Si el proveedor de identidades federado requiere este parámetro, se produce un error en la solicitud de cierre de sesión.
    • OAuth2: si los metadatos del proveedor de identidades contienen la ubicación end_session_endpoint.
    • SAML: si los metadatos del proveedor de identidades contienen la ubicación SingleLogoutService.
  3. También puede cerrar la sesión de otras aplicaciones. Para obtener más información, consulte la sección Cierre de sesión único.

Nota:

Puede deshabilitar el cierre de sesión de los proveedores de identidades federados. Para ello, debe establecer los metadatos de perfil técnico del proveedor de identidades SingleLogoutEnabled en false.

El cierre de sesión borrará el estado de inicio de sesión único del usuario con Azure AD B2C, pero podría no cerrar la sesión del proveedor de identidades social del usuario. Si el usuario selecciona el mismo proveedor de identidades durante un inicio de sesión posterior, podría volver a autenticarse sin especificar sus credenciales. Si un usuario quiere cerrar sesión en su aplicación, eso no significa necesariamente que quiera cerrar sesión en su cuenta de Facebook. Sin embargo, si se usan cuentas locales, la sesión del usuario finalizará correctamente.

Cierre de sesión único

Cuando redirige al usuario al punto de conexión de cierre de sesión de Azure AD B2C (para OAuth2 y OpenID Connect) o envía una solicitud LogoutRequest (para SAML), Azure AD B2C borra la sesión del usuario del explorador. Sin embargo, el usuario podría permanecer conectado a otras aplicaciones que usan Azure AD B2C para la autenticación. Para cerrar la sesión del usuario de todas las aplicaciones que tienen una sesión activa, Azure AD B2C admite el cierre de sesión único, también conocido como SLO (single log-out).

Durante el cierre de sesión, Azure AD B2C envía simultáneamente una solicitud HTTP a la dirección URL de cierre de sesión registrada de todas las aplicaciones en las que el usuario ha iniciado sesión actualmente.

Configuración de la directiva personalizada

Para admitir el cierre de sesión único, los perfiles técnicos del emisor de tokens para JWT y SAML deben especificar lo siguiente:

  • El nombre del protocolo, como <Protocol Name="OpenIdConnect" />.
  • La referencia al perfil técnico de la sesión, como UseTechnicalProfileForSessionManagement ReferenceId="SM-jwt-issuer" />.

En el ejemplo siguiente se muestran emisores de tokens de JWT y SAML con el cierre de sesión único:

<ClaimsProvider>
  <DisplayName>Local Account SignIn</DisplayName>
  <TechnicalProfiles>
    <!-- JWT Token Issuer -->
    <TechnicalProfile Id="JwtIssuer">
      <DisplayName>JWT token Issuer</DisplayName>
      <Protocol Name="OpenIdConnect" />
      <OutputTokenFormat>JWT</OutputTokenFormat>
      ...    
      <UseTechnicalProfileForSessionManagement ReferenceId="SM-jwt-issuer" />
    </TechnicalProfile>

    <!-- Session management technical profile for OIDC based tokens -->
    <TechnicalProfile Id="SM-jwt-issuer">
      <DisplayName>Session Management Provider</DisplayName>
      <Protocol Name="Proprietary" Handler="Web.TPEngine.SSO.OAuthSSOSessionProvider, Web.TPEngine, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null" />
    </TechnicalProfile>

    <!--SAML token issuer-->
    <TechnicalProfile Id="Saml2AssertionIssuer">
      <DisplayName>SAML token issuer</DisplayName>
      <Protocol Name="SAML2" />
      <OutputTokenFormat>SAML2</OutputTokenFormat>
      ...
      <UseTechnicalProfileForSessionManagement ReferenceId="SM-Saml-issuer" />
    </TechnicalProfile>

    <!-- Session management technical profile for SAML based tokens -->
    <TechnicalProfile Id="SM-Saml-issuer">
      <DisplayName>Session Management Provider</DisplayName>
      <Protocol Name="Proprietary" Handler="Web.TPEngine.SSO.SamlSSOSessionProvider, Web.TPEngine, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null" />
    </TechnicalProfile>
  </TechnicalProfiles>
</ClaimsProvider>

Configuración de la aplicación

Para que una aplicación pueda participar en el cierre de sesión único:

  • En el caso de los proveedores de servicios SAML, configure la aplicación con la ubicación SingleLogoutService en su documento de metadatos de SAML. También puede configurar la URL logoutUrl de registro de la aplicación. Para más información, consulte el tema de establecimiento de la dirección URL de cierre de sesión.
  • En el caso de las aplicaciones OpenID Connect u OAuth2, establezca el atributo logoutUrl del manifiesto de registro de la aplicación. Para configurar la dirección URL de cierre de sesión:
    1. En el menú de Azure AD B2C, seleccione Registros de aplicaciones.
    2. Seleccione su registro de aplicación.
    3. En Administrar, seleccione Autenticación.
    4. En Front-channel logout URL (Dirección URL de cierre de sesión del canal frontal), configure la dirección URL de cierre de sesión.

Control de solicitudes de cierre de sesión único

Cuando Azure AD B2C recibe la solicitud de cierre de sesión, usa un iframe HTML de canal frontal para enviar una solicitud HTTP a la dirección URL de cierre de sesión registrada de cada aplicación participante en la que el usuario tiene una sesión iniciada actualmente. Tenga en cuenta que la aplicación que desencadena la solicitud de cierre de sesión no recibe este mensaje de cierre de sesión. Las aplicaciones deben responder a la solicitud de cierre de sesión, para lo cual deben borrar la sesión de la aplicación que identifica al usuario.

  • En el caso de las aplicaciones OpenID Connect y OAuth2, Azure AD B2C envía una solicitud HTTP GET a la dirección URL de cierre de sesión registrada.
  • En el caso de las aplicaciones SAML, Azure AD B2C envía una solicitud de cierre de sesión de SAML a la dirección URL de cierre de sesión registrada.

Cuando Azure AD B2C notifica a todas las aplicaciones sobre el cierre de sesión, continúa con una de las siguientes acciones:

  • En el caso de las aplicaciones de OpenID Connect o OAuth2, redirige al usuario a la post_logout_redirect_uri solicitada, incluido el parámetro (opcional) state especificado en la solicitud inicial. Por ejemplo, https://contoso.com/logout?state=foo.
  • En el caso de las aplicaciones SAML, envía una respuesta de cierre de sesión de SAML a través de HTTP POST a la aplicación que envió inicialmente la solicitud de cierre de sesión.

Protección de la redirección de cierre de sesión

Después del cierre de sesión, el usuario se redirige al URI especificado en el parámetro post_logout_redirect_uri, independientemente de las direcciones URL de respuesta que especifique para la aplicación. Sin embargo, si se pasa un valor de id_token_hint válido y la opción Requerir token de identificador en solicitudes de cierre de sesión está activada, Azure AD B2C comprueba que el valor de post_logout_redirect_uri coincida con uno de los URI de redirección configurados de la aplicación antes de realizar la redirección. Si no se configuró ninguna dirección URL de respuesta coincidente para la aplicación, se muestra un mensaje de error y no se redirige al usuario.

Para requerir un token de identificador en las solicitudes de cierre de sesión:

  1. Inicie sesión en Azure Portal.
  2. Si tiene acceso a varios inquilinos, seleccione el icono Configuración en el menú superior para cambiar a su inquilino de Azure AD B2C desde el menú Directorios y suscripciones.
  3. Elija Todos los servicios en la esquina superior izquierda de Azure Portal, y busque y seleccione Azure AD B2C.
  4. Seleccione Flujos de usuario.
  5. Abra el flujo de usuario que creó anteriormente.
  6. Seleccione Propiedades.
  7. Habilite Requerir token de identificador en solicitudes de cierre de sesión.

Para requerir un token de identificador en las solicitudes de cierre de sesión, agregue un elemento UserJourneyBehaviors dentro del elemento RelyingParty. Luego, establezca EnforceIdTokenHintOnLogout del elemento SingleSignOn en true. Para más información, consulte la demo en directo. El elemento UserJourneyBehavors debe ser como este:

<UserJourneyBehaviors>
  <SingleSignOn Scope="Tenant" EnforceIdTokenHintOnLogout="true"/>
</UserJourneyBehaviors>

Para configurar la dirección URL de cierre de sesión de la aplicación:

  1. Seleccione Registros de aplicaciones y, luego, seleccione su aplicación.
  2. Seleccione Autenticación.
  3. En el cuadro de texto URL de cierre de sesión, escriba el URI de redirección posterior al cierre de sesión y, luego, seleccione Guardar.

Pasos siguientes