Compartir a través de


Configuración de tokens en Azure Active Directory B2C

Importante

A partir del 1 de mayo de 2025, Azure AD B2C ya no estará disponible para ser adquirido por nuevos clientes. Obtenga más información en nuestras preguntas más frecuentes.

Antes de empezar, use el selector Elegir un tipo de directiva en la parte superior de esta página para elegir el tipo de directiva que está configurando. Azure Active Directory B2C ofrece dos métodos para definir cómo interactúan los usuarios con las aplicaciones: a través de flujos de usuario predefinidos o mediante directivas personalizadas totalmente configurables. Los pasos necesarios en este artículo son diferentes para cada método.

En este artículo, aprenderá a configurar la duración y compatibilidad de un token en Azure Active Directory B2C (Azure AD B2C).

Prerrequisitos

Comportamiento del tiempo de vida del token

Puede configurar la duración del token, entre las que se incluyen:

  • Duración del token de acceso e identificador (minutos): la duración del token de portador de OAuth 2.0 y los tokens de identificador. El valor predeterminado es 60 minutos (1 hora). El mínimo (inclusivo) es de 5 minutos. El máximo (inclusivo) es de 1440 minutos (24 horas).
  • Duración del token de actualización (días): período de tiempo máximo antes del cual se puede usar un token de actualización para adquirir un nuevo token de acceso, si se le ha concedido el ámbito a la offline_access aplicación. El valor predeterminado es 14 días. El mínimo (inclusivo) es un día. El máximo (inclusivo) 90 días.
  • Duración de vida de la ventana deslizante del token de actualización - El tipo de ventana deslizante del token de actualización. Bounded indica que el token de actualización se puede extender como se especifica en la longitud de vida (días). No expiry indica que la duración de la ventana deslizante del token de actualización nunca expira.
  • Duración (días): una vez transcurrido este período de tiempo, el usuario se ve obligado a volver a autenticarse, independientemente del período de validez del token de actualización más reciente adquirido por la aplicación. El valor debe ser mayor o igual que el valor de duración del token de actualización .

En el diagrama siguiente se muestra el comportamiento de duración de la ventana deslizante del token de actualización.

Duración del token de actualización

Nota:

Las aplicaciones de página única que usan el flujo de código de autorización con PKCE siempre tienen una duración de token de actualización de 24 horas, mientras que las aplicaciones móviles, las aplicaciones de escritorio y las aplicaciones web no experimentan esta limitación. Obtenga más información sobre las implicaciones de seguridad de los tokens de actualización en el explorador.

Configuración de la duración del token

Para configurar la duración del token de flujo de usuario:

  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 (políticas).
  5. Abra el flujo de usuario que creó anteriormente.
  6. Selecciona Propiedades.
  7. En Duración del token, ajuste las propiedades para que se ajusten a las necesidades de la aplicación.
  8. Haga clic en Guardar.

configure los tokens de flujos de usuario en Azure Portal.

Para cambiar la configuración de la compatibilidad de los tokens, establezca los metadatos del perfil técnico del Emisor del token en la extensión, o el archivo del usuario de confianza de la directiva a la que desea que afecte. El perfil técnico del emisor de tokens tiene el siguiente aspecto:

<ClaimsProviders>
  <ClaimsProvider>
    <DisplayName>Token Issuer</DisplayName>
    <TechnicalProfiles>
      <TechnicalProfile Id="JwtIssuer">
        <Metadata>
          <Item Key="token_lifetime_secs">3600</Item>
          <Item Key="id_token_lifetime_secs">3600</Item>
          <Item Key="refresh_token_lifetime_secs">1209600</Item>
          <Item Key="rolling_refresh_token_lifetime_secs">7776000</Item>
          <!--<Item Key="allow_infinite_rolling_refresh_token">true</Item>-->
          <Item Key="IssuanceClaimPattern">AuthorityAndTenantGuid</Item>
          <Item Key="AuthenticationContextReferenceClaimPattern">None</Item>
        </Metadata>
      </TechnicalProfile>
    </TechnicalProfiles>
  </ClaimsProvider>
</ClaimsProviders>

Los valores siguientes se establecen en el ejemplo anterior:

  • token_lifetime_secs : duración del token de acceso (segundos). El valor predeterminado es 3600 (1 hora). El mínimo es 300 (5 minutos). El máximo es 86.400 (24 horas).
  • id_token_lifetime_secs: duración del token de identificador (segundos). El valor predeterminado es 3600 (1 hora). El mínimo es 300 (5 minutos). El máximo es 86.400 (24 horas).
  • refresh_token_lifetime_secs: duración de los tokens de actualización (segundos). El valor predeterminado es 1.209.600 (14 días). El mínimo es 86.400 (24 horas). El máximo es 7.776.000 (90 días).
  • rolling_refresh_token_lifetime_secs: duración de la ventana deslizante de los tokens de actualización (segundos). El valor predeterminado es 776 000 (90 días). El mínimo es 86.400 (24 horas). El máximo es 31.536.000 (365 días). Si no desea aplicar una duración de ventana deslizante, establezca el valor de allow_infinite_rolling_refresh_token en true.
  • allow_infinite_rolling_refresh_token: la duración de la ventana deslizante de los token de actualización nunca expira.

Configuración de compatibilidad de tokens

Puede configurar la compatibilidad del token, entre las que se incluyen:

  • Notificación del emisor (ISS): formato del emisor del token de acceso y de identificador.
  • Notificación de firmante (sub): entidad de seguridad sobre la que el token declara información, por ejemplo, el usuario de una aplicación. Este valor es inmutable y no se puede reasignar ni volver a usar. Se puede usar para realizar comprobaciones de autorización de forma segura, como cuando se usa el token para acceder a un recurso. De manera predeterminada, la notificación del asunto se rellena con el identificador de objeto del usuario del directorio.
  • Notificación que representa el flujo de usuario : esta notificación identifica el flujo de usuario que se ejecutó. Valores posibles: tfp (opción predeterminada) o acr.

Para configurar los valores de compatibilidad del flujo de usuario:

  1. Seleccione Flujos de usuario (políticas).
  2. Abra el flujo de usuario que creó anteriormente.
  3. Selecciona Propiedades.
  4. En Configuración de compatibilidad de tokens, ajuste las propiedades para adaptarse a las necesidades de la aplicación.
  5. Haga clic en Guardar.

Para cambiar la configuración de la compatibilidad de los tokens, establezca los metadatos del perfil técnico del Emisor del token en la extensión, o el archivo del usuario de confianza de la directiva a la que quiere actualizar. El perfil técnico del emisor de tokens tiene el siguiente aspecto:

<ClaimsProviders>
  <ClaimsProvider>
    <DisplayName>Token Issuer</DisplayName>
    <TechnicalProfiles>
      <TechnicalProfile Id="JwtIssuer">
        <Metadata>
          ...
          <Item Key="IssuanceClaimPattern">AuthorityAndTenantGuid</Item>
          <Item Key="AuthenticationContextReferenceClaimPattern">None</Item>
        </Metadata>
      </TechnicalProfile>
    </TechnicalProfiles>
  </ClaimsProvider>
</ClaimsProviders>
  • Reclamación issuer (iss): La reclamación issuer (iss) se establece con el elemento de metadatos IssuanceClaimPattern. Los valores aplicables son AuthorityAndTenantGuid y AuthorityWithTfp.

  • Configuración de notificación que representa el identificador de directiva: las opciones para configurar este valor son TFP (directiva de plataforma de confianza) y ACR (referencia de contexto de autenticación). TFP es el valor recomendado. Establezca AuthenticationContextReferenceClaimPattern con el valor de None.

    En el elemento ClaimsSchema , agregue este elemento:

    <ClaimType Id="trustFrameworkPolicy">
      <DisplayName>Trust framework policy name</DisplayName>
      <DataType>string</DataType>
    </ClaimType>
    

    En la directiva de usuario de confianza, en el elemento OutputClaims, agregue la siguiente notificación de salida:

    <OutputClaim ClaimTypeReferenceId="trustFrameworkPolicy" Required="true" DefaultValue="{policy}" PartnerClaimType="tfp" />
    

    Para ACR, elimine el elemento AuthenticationContextReferenceClaimPattern.

  • Reclamación de asunto (sub) - esta opción tiene como valor predeterminado ObjectID; si desea cambiar esta configuración a Not Supported, reemplace esta línea:

    <OutputClaim ClaimTypeReferenceId="objectId" PartnerClaimType="sub" />
    

    con esta línea:

    <OutputClaim ClaimTypeReferenceId="sub" />
    

Proporcionar declaraciones opcionales a la aplicación

Las reclamaciones de la aplicación son valores que se devuelven a la aplicación. Actualice el flujo de usuario para que contenga las reclamaciones deseadas.

  1. Seleccione Flujos de usuario (políticas).
  2. Abra el flujo de usuario que creó anteriormente.
  3. Seleccione Notificaciones de aplicación.
  4. Elija los reclamos y atributos que desea enviar de vuelta a su aplicación.
  5. Haga clic en Guardar.

Las notificaciones de salida del perfil técnico de la directiva del usuario de confianza son valores que se devuelven a una aplicación. La adición de notificaciones de salida enviará la notificación al token después de un recorrido del usuario correcto y se enviará a la aplicación. Modifique el elemento de perfil técnico dentro de la sección de parte dependiente para agregar las reclamaciones deseadas como una reclamación de salida.

  1. Abra el archivo de directiva personalizado. Por ejemplo, SignUpOrSignin.xml.
  2. Busque el elemento OutputClaims. Agregue el OutputClaim que desea incluir en el token.
  3. Establezca los atributos de la notificaciones de salida.

En el ejemplo siguiente se agrega la accountBalance reclamación. La reclamación accountBalance se envía a la aplicación como saldo.

<RelyingParty>
  <DefaultUserJourney ReferenceId="SignUpOrSignIn" />
  <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}" />
      <!--Add the optional claims here-->
      <OutputClaim ClaimTypeReferenceId="accountBalance" DefaultValue="" PartnerClaimType="balance" />
    </OutputClaims>
    <SubjectNamingInfo ClaimType="sub" />
  </TechnicalProfile>
</RelyingParty>

El elemento OutputClaim contiene los atributos siguientes:

  • ClaimTypeReferenceId : identificador de un tipo de notificación ya definido en la sección ClaimsSchema del archivo de directiva o del archivo de directiva primario.
  • PartnerClaimType: permite cambiar el nombre de la reclamación en el token.
  • DefaultValue : valor predeterminado. También puede establecer el valor predeterminado para un resolutor de reclamaciones, como el identificador de arrendatario.
  • AlwaysUseDefaultValue : fuerza el uso del valor predeterminado.

Duración del código de autorización

Al usar el flujo de código de autorización de OAuth 2.0, la aplicación puede usar el código de autorización para solicitar un token de acceso para un recurso de destino. Los códigos de autorización son de corta duración que expiran después de unos 10 minutos. No se puede configurar la duración del código de autorización. Asegúrese de que la aplicación canjee los códigos de autorización en un plazo de 10 minutos.