Compartir a través de


Control de pantalla TOTP

Importante

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

Use controles de visualización de contraseña única (TOTP) basados en tiempo para habilitar la autenticación multifactor mediante el método TOTP. Los usuarios finales deben usar una aplicación autenticadora que genere códigos TOTP, como la aplicación Microsoft Authenticator o cualquier otra aplicación autenticadora que admita la comprobación de TOTP.

Para habilitar TOTP en la directiva personalizada, use los siguientes controles de visualización:

  • totpQrCodeControl : representa el código QR y un vínculo profundo. Cuando el usuario examina el código QR o abre el vínculo profundo, se abre la aplicación autenticadora para que el usuario pueda completar el proceso de inscripción.
  • AuthenticatorAppIconControl : representa el icono de la aplicación Microsoft Authenticator con un vínculo para descargar la aplicación en el dispositivo móvil del usuario.
  • AuthenticatorInfoControl : presentación de la introducción a TOTP.

En la captura de pantalla siguiente se muestra la página de inscripción TOTP que muestra los tres controles para mostrar.

Captura de pantalla que muestra el flujo de inscripción de controles para mostrar TOTP

En el siguiente fragmento XML se muestran los tres controles de visualización:

  <DisplayControls>
    <!-- Render the QR code by taking the URI (qrCodeContent) input claim and rendering it as a QR code-->
    <DisplayControl Id="totpQrCodeControl" UserInterfaceControlType="QrCodeControl">
      <InputClaims>
        <InputClaim ClaimTypeReferenceId="qrCodeContent" />
      </InputClaims>
      <DisplayClaims>
        <DisplayClaim ClaimTypeReferenceId="qrCodeContent" ControlClaimType="QrCodeContent" />
      </DisplayClaims>
    </DisplayControl>

    <!-- Render the TOTP information by taking the totpIdentifier and the secretKey input claims and rendering them in plain text-->
    <DisplayControl Id="authenticatorInfoControl" UserInterfaceControlType="AuthenticatorInfoControl">
      <InputClaims>
        <InputClaim ClaimTypeReferenceId="totpIdentifier" />
        <InputClaim ClaimTypeReferenceId="secretKey" />
      </InputClaims>
      <DisplayClaims>
        <DisplayClaim ClaimTypeReferenceId="totpIdentifier" />
        <DisplayClaim ClaimTypeReferenceId="secretKey" />
      </DisplayClaims>
    </DisplayControl>

    <!-- Render the authenticator apps icon. -->
    <DisplayControl Id="authenticatorAppIconControl" UserInterfaceControlType="AuthenticatorAppIconControl" />
  </DisplayControls>

Se hace referencia a los controles de visualización desde un perfil técnico autoafirmado. El perfil técnico autoafirmado usa la transformación de notificaciones de entrada para preparar las notificaciones de entrada y qrCodeContent necesariassecretKey.

Las transformaciones de notificaciones de entrada deben llamarse en el orden siguiente:

  1. El CreateSecret tipo de transformación de notificaciones CreateOtpSecret. La transformación de notificaciones crea una clave secreta TOTP. Esta clave se almacena más adelante en el perfil del usuario en Azure AD B2C y se comparte con la aplicación authenticator. La aplicación autenticadora usa la clave para generar un código TOTP que el usuario debe pasar por MFA. La directiva personalizada usa la clave para validar el código TOTP proporcionado por el usuario.
  2. Tipo CreateIssuer de transformación de notificaciones de CreateStringClaim. La transformación de notificaciones crea el nombre del emisor TOTP. El nombre del emisor es el nombre del inquilino, como "Demostración de Contoso".
  3. El CreateUriLabel tipo de transformación de notificaciones FormatStringMultipleClaims. La transformación de notificaciones crea la etiqueta URI TOTP. La etiqueta es una combinación del identificador único del usuario, como la dirección de correo electrónico y el nombre del emisor, por ejemplo, Contoso demo:emily@fabrikam.com.
  4. Tipo CreateUriString de transformación de notificaciones de BuildUri. La transformación de notificaciones crea la cadena de URI TOTP. La cadena es una combinación de la etiqueta URI y la clave secreta, por ejemplo, otpauth://totp/Contoso%20demo:emily@fabrikam.com?secret=fay2lj7ynpntjgqa&issuer=Contoso+demo. Este URI se representa mediante el control de visualización en un formato de código QR y un vínculo profundo.

El código XML siguiente muestra el EnableOTPAuthentication perfil técnico autoafirmado con su transformación de notificaciones de entrada, notificaciones de entrada y controles de visualización.

<TechnicalProfile Id="EnableOTPAuthentication">
  <DisplayName>Sign up with Authenticator app</DisplayName>
  <Protocol Name="Proprietary" Handler="Web.TPEngine.Providers.SelfAssertedAttributeProvider, Web.TPEngine, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null" />
  <Metadata>
    <Item Key="ContentDefinitionReferenceId">api.selfasserted.totp</Item>
    <Item Key="language.button_continue">Continue</Item>
  </Metadata>
  <CryptographicKeys>
    <Key Id="issuer_secret" StorageReferenceId="B2C_1A_TokenSigningKeyContainer" />
  </CryptographicKeys>
  <InputClaimsTransformations>
    <InputClaimsTransformation ReferenceId="CreateSecret" />
    <InputClaimsTransformation ReferenceId="CreateIssuer" />
    <InputClaimsTransformation ReferenceId="CreateUriLabel" />
    <InputClaimsTransformation ReferenceId="CreateUriString" />
  </InputClaimsTransformations>
  <InputClaims>
    <InputClaim ClaimTypeReferenceId="qrCodeContent" />
    <InputClaim ClaimTypeReferenceId="secretKey" />
  </InputClaims>
  <DisplayClaims>
    <DisplayClaim DisplayControlReferenceId="authenticatorAppIconControl" />
    <DisplayClaim ClaimTypeReferenceId="QrCodeScanInstruction" />
    <DisplayClaim DisplayControlReferenceId="totpQrCodeControl" />
    <DisplayClaim DisplayControlReferenceId="authenticatorInfoControl" />
  </DisplayClaims>
  <OutputClaims>
    <OutputClaim ClaimTypeReferenceId="objectId" />
    <OutputClaim ClaimTypeReferenceId="secretKey" />
  </OutputClaims>
  <UseTechnicalProfileForSessionManagement ReferenceId="SM-MFA-TOTP" />
</TechnicalProfile>

Flujo de comprobación

El código TOTP de verificación lo realiza otro perfil técnico autoafirmado que usa notificaciones para mostrar y un perfil técnico de validación. Para obtener más información, consulte Definición de un perfil técnico de autenticación multifactor de Id. de Microsoft Entra en una directiva personalizada de Azure AD B2C.

En la captura de pantalla siguiente se muestra una página de comprobación de TOTP.

Captura de pantalla que muestra el flujo de comprobación de controles para mostrar TOTP

Pasos siguientes