Freigeben über


TOTP-Anzeigesteuerelement

Verwenden Sie Anzeigesteuerelemente für zeitbasierte Einmalkennwörter (Time-based One-Time Password, TOTP), um die Multi-Faktor-Authentifizierung mithilfe der TOTP-Methode zu aktivieren. Endbenutzer müssen eine Authentifikator-App verwenden, die TOTP-Codes generiert, z. B. die Microsoft Authenticator-App oder eine andere Authentifikator-App, die die TOTP-Überprüfung unterstützt.

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

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

Im folgenden Screenshot ist die TOTP-Registrierungsseite mit den drei Anzeigesteuerelementen dargestellt.

Screenshot showing TOTP display controls enrollment flow

Im folgenden XML-Codeausschnitt sehen Sie 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>

In einem selbstbestätigten technischen Profil wird auf die Anzeigesteuerelemente verwiesen. Das selbstbestätigte technische Profil verwendet die Eingabeanspruchstransformation, um die erforderlichen Eingabeansprüche qrCodeContent und secretKey vorzubereiten.

Die Eingabeanspruchstransformationen müssen in der folgenden Reihenfolge aufgerufen werden:

  1. Der CreateSecret-Anspruchstransformationstyp CreateOtpSecret. Die Anspruchstransformation erstellt einen geheimen TOTP-Schlüssel. Dieser Schlüssel wird später im Profil des Benutzers in Azure AD B2C gespeichert und für die Authentifikator-App freigegeben. Die Authentifikator-App verwendet den Schlüssel, um einen TOTP-Code zu generieren, den der Benutzer zum Ausführen der mehrstufigen Authentifizierung (Multi-Factor Authentication, MFA) benötigt. Ihre benutzerdefinierte Richtlinie verwendet den Schlüssel, um den vom Benutzer bereitgestellten TOTP-Code zu überprüfen.
  2. Der CreateIssuer-Anspruchstransformationstyp CreateStringClaim. Die Anspruchstransformation erstellt den Namen des TOTP-Ausstellers. Der Ausstellername ist Ihr Mandantenname, z. B. „Contoso-Demo“.
  3. Der CreateUriLabel-Anspruchstransformationstyp FormatStringMultipleClaims. Die Anspruchstransformation erstellt die TOTP-URI-Bezeichnung. Die Bezeichnung ist eine Kombination aus dem eindeutigen Bezeichner des Benutzers (z. B. der E-Mail-Adresse) und dem Ausstellernamen, z. B. Contoso demo:emily@fabrikam.com.
  4. Der CreateUriString-Anspruchstransformationstyp BuildUri. Die Anspruchstransformation erstellt die TOTP-URI-Zeichenfolge. Die Zeichenfolge ist eine Kombination aus der URI-Bezeichnung und dem geheimen Schlüssel, z. B. otpauth://totp/Contoso%20demo:emily@fabrikam.com?secret=fay2lj7ynpntjgqa&issuer=Contoso+demo. Diese URI-Bezeichnung wird vom Anzeigesteuerelement in einem QR-Codeformat und einem Deep-Link gerendert.

Der folgende XML-Code enthält das selbstbestätigte technische Profil EnableOTPAuthentication mit den zugehörigen Eingabeanspruchstransformationen, Eingabeansprüchen und 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 Überprüfung

Die Überprüfung des TOTP-Codes wird von einem anderen selbstbestätigten technischen Profil durchgeführt, das Anzeigeansprüche und ein technisches Validierungsprofil verwendet. Weitere Informationen finden Sie unter Definieren eines technischen Profils für Microsoft Entra ID-Multi-Faktor-Authentifizierung in einer benutzerdefinierten Azure AD B2C-Richtlinie.

Im folgenden Screenshot ist eine Seite für die TOTP-Überprüfung dargestellt.

Screenshot showing TOTP display controls verification flow

Nächste Schritte