Freigeben über


Steuerung der TOTP-Anzeige

Von Bedeutung

Ab dem 1. Mai 2025 steht Azure AD B2C nicht mehr für neue Kunden zur Verfügung. Weitere Informationen finden Sie in unseren HÄUFIG gestellten Fragen.

Verwenden Sie TOTP-Anzeigesteuerelemente (Time-Based One-Time Password), um die mehrstufige Authentifizierung mithilfe der TOTP-Methode zu aktivieren. Endbenutzer müssen eine Authentifizierungs-App verwenden, die TOTP-Codes generiert, z. B. die Microsoft Authenticator-App oder eine andere Authentifizierungs-App, die die TOTP-Überprüfung unterstützt.

Verwenden Sie die folgenden Anzeigesteuerelemente, um TOTP in Ihrer benutzerdefinierten Richtlinie zu aktivieren:

  • totpQrCodeControl - Rendern Sie den QR-Code und einen Deep Link. Wenn der Benutzer den QR-Code scannt oder den Deep-Link öffnet, wird die Authentifizierungs-App geöffnet, damit der Benutzer den Registrierungsprozess abschließen kann.
  • AuthenticatorAppIconControl : Rendern Sie das Microsoft Authenticator-App-Symbol mit einem Link zum Herunterladen der App auf das mobile Gerät des Benutzers.
  • AuthenticatorInfoControl : Rendern der TOTP-Einführung.

Der folgende Screenshot veranschaulicht die TOTP-Registrierungsseite mit den drei Anzeigesteuerelementen.

Screenshot, der zeigt, dass die TOTP-Anzeige den Registrierungsablauf steuert

Der folgende XML-Codeausschnitt zeigt die drei Anzeigesteuerelemente:

  <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>

Die Anzeigesteuerelemente werden von einem selbst bestätigten technischen Profil referenziert. Das selbstbestätigte technische Profil verwendet die Transformation von Eingabeansprüchen, um die erforderlichen qrCodeContent Ansprüche und secretKey Eingabeansprüche vorzubereiten.

Die Transformationen der Eingabeansprüche müssen in der folgenden Reihenfolge aufgerufen werden:

  1. Der CreateSecret Anspruchstransformationstyp von CreateOtpSecret. Bei der Anspruchstransformation wird ein geheimer TOTP-Schlüssel erstellt. Dieser Schlüssel wird später im Profil des Benutzers in Azure AD B2C gespeichert und für die Authentifizierungs-App freigegeben. Die Authentifizierungs-App verwendet den Schlüssel, um einen TOTP-Code zu generieren, den der Benutzer zum Durchlaufen von MFA benötigt. Ihre benutzerdefinierte Richtlinie verwendet den Schlüssel, um den vom Benutzer bereitgestellten TOTP-Code zu überprüfen.
  2. Der CreateIssuer Anspruchstransformationstyp von CreateStringClaim. Bei der Anspruchstransformation wird der Name des TOTP-Ausstellers erstellt. Der Ausstellername ist der Name Ihres Mandanten, z. B. "Contoso demo".
  3. Der CreateUriLabelAnspruchstransformationstyp von FormatStringMultipleClaims. Bei der Anspruchstransformation wird die TOTP-URI-Bezeichnung erstellt. Die Bezeichnung ist eine Kombination aus der eindeutigen Kennung des Benutzers, z. B. der E-Mail-Adresse, und dem Namen des Ausstellers, z. B Contoso demo:emily@fabrikam.com. . .
  4. Der CreateUriString Anspruchstransformationstyp von BuildUri. Bei der Anspruchstransformation wird die TOTP-URI-Zeichenfolge erstellt. Die Zeichenfolge ist eine Kombination aus der URI-Bezeichnung und dem geheimen Schlüssel, otpauth://totp/Contoso%20demo:emily@fabrikam.com?secret=fay2lj7ynpntjgqa&issuer=Contoso+demoz. B. . . Diese URI-Beschriftung wird vom Anzeigesteuerelement in einem QR-Codeformat und einem Deep-Link gerendert.

Der folgende XML-Code zeigt das EnableOTPAuthentication selbstbestätigte technische Profil mit der Transformation der Eingabeansprüche, den Eingabeansprüchen und den Anzeigesteuerelementen.

<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>

Ablauf der Verifizierung

Der TOTP-Verifizierungscode wird von einem anderen selbst bestätigten technischen Profil ausgeführt, das Anzeigeansprüche und ein technisches Validierungsprofil verwendet. Weitere Informationen finden Sie unter Definieren eines technischen Microsoft Entra ID-Profils für die mehrstufige Authentifizierung in einer benutzerdefinierten Azure AD B2C-Richtlinie.

Der folgende Screenshot zeigt eine TOTP-Verifizierungsseite.

Screenshot, der zeigt, wie die TOTP-Anzeige den Verifizierungsablauf steuert

Nächste Schritte