Definieren eines technischen Profils für die Microsoft Entra ID-Multi-Faktor-Authentifizierung in einer benutzerdefinierten Azure AD B2C-Richtlinie

Azure Active Directory B2C (Azure AD B2C) bietet Unterstützung bei der Überprüfung einer Telefonnummer mithilfe eines Überprüfungscodes oder der Überprüfung eines zeitbasierten Einmalkennwortcodes (Time-Based One-Time Password, TOTP).

Protocol

Das Name-Attribut des Protocol-Elements muss auf Proprietary festgelegt werden. Das handler-Attribut muss den vollqualifizierten Namen der Protokollhandlerassembly, die von Azure AD B2C verwendet wird, enthalten:

Web.TPEngine.Providers.AzureMfaProtocolProvider, Web.TPEngine, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null

Das folgende Beispiel zeigt ein technisches Profil für die Microsoft Entra ID-Multi-Faktor-Authentifizierung:

<TechnicalProfile Id="AzureMfa-SendSms">
    <DisplayName>Send Sms</DisplayName>
    <Protocol Name="Proprietary" Handler="Web.TPEngine.Providers.AzureMfaProtocolProvider, Web.TPEngine, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null" />
    ...

Überprüfen des Telefonmodus

Beim Überprüfen des Telefonmodus generiert und sendet das technische Profil einen Code an eine Telefonnummer und überprüft dann den Code. Das technische Profil für die Microsoft Entra ID-Multi-Faktor-Authentifizierung gibt möglicherweise auch eine Fehlermeldung zurück. Mit dem technischen Validierungsprofil werden die vom Benutzer bereitgestellten Daten überprüft, bevor die User Journey fortgesetzt wird. Mit dem technischen Überprüfungsprofil wird eine Fehlermeldung auf einer Seite mit Selbstbestätigung angezeigt. Das technische Profil:

  • Es bietet keine Benutzeroberfläche für die Interaktion mit dem Benutzer. Stattdessen wird die Benutzeroberfläche von einem selbstbestätigten technischen Profil oder einem Anzeigesteuerelement als technisches Überprüfungsprofil aufgerufen.
  • Verwendet die Microsoft Entra-Multi-Faktor-Authentifizierung, um einen Code zu generieren und an eine Telefonnummer zu senden, und überprüft dann den Code.
  • Überprüft eine Telefonnummer per SMS-Nachrichten

Das technische Profil bietet Methoden zum Senden des Überprüfungscodes per SMS-Textnachricht und zum Überprüfen des Codes. Der folgende Screenshot zeigt den Ablauf der Telefonüberprüfung.

Screenshot showing TOTP flow

Senden einer SMS

Zur Überprüfung eines Telefons wird im ersten Schritt ein Code generiert und an die Telefonnummer gesendet. Für diesen Schritt können die folgenden Optionen konfiguriert werden.

Eingabeansprüche

Das Element InputClaims enthält eine Liste mit Ansprüchen, die an Microsoft Entra-Multi-Faktor-Authentifizierung gesendet werden sollen. Sie können auch den Namen Ihres Anspruchs dem im technischen MFA-Profil definierten Namen zuordnen.

ClaimReferenceId Erforderlich Beschreibung des Dataflows
userPrincipalName Ja Der Bezeichner für den Benutzer, dem die Telefonnummer gehört.
phoneNumber Ja Die Telefonnummer, an die ein SMS-Code gesendet werden soll.
companyName Nein Der Unternehmensname in der SMS. Wenn nichts angegeben ist, wird der Name der Anwendung verwendet.
locale Nein Das Gebietsschema der SMS. Wenn nichts angegeben ist, wird das Browsergebietsschema des Benutzers verwendet.

Ausgabeansprüche

Weil der Microsoft Entra-MFA-Protokollanbieter keine Ausgabeansprüche zurückgibt, müssen auch keine angegeben werden.

Metadaten

Das Element „Metadata“ enthält das folgende Attribut:

Attribut Erforderlich Beschreibung des Dataflows
Operation Ja Muss OneWaySMSlauten.
Benutzeroberflächenelemente

Die folgenden Metadaten können verwendet werden, um die Fehlermeldungen zu konfigurieren, die bei einem SMS-Sendefehler angezeigt wird. Die Metadaten sollten im selbstbestätigten technischen Profil konfiguriert werden. Die Fehlermeldungen können lokalisiert werden.

attribute Erforderlich Beschreibung
UserMessageIfCouldntSendSms Nein Fehlermeldung für den Benutzer, wenn die angegebene Telefonnummer keine SMS-Nachrichten akzeptiert.
UserMessageIfInvalidFormat Nein Fehlermeldung für den Benutzer, wenn die angegebene Telefonnummer keine gültige Telefonnummer ist.
UserMessageIfServerError Nein Fehlermeldung für den Benutzer, wenn der Server einen internen Fehler festgestellt hat.
UserMessageIfThrottled Nein Fehlermeldung für den Benutzer, wenn eine Anforderung gedrosselt wurde.

Beispiel: Senden einer SMS

Das folgende Beispiel zeigt ein technisches Profil für die Microsoft Entra ID-Multi-Faktor-Authentifizierung, das zum Senden eines Codes per SMS verwendet wird.

<TechnicalProfile Id="AzureMfa-SendSms">
  <DisplayName>Send Sms</DisplayName>
  <Protocol Name="Proprietary" Handler="Web.TPEngine.Providers.AzureMfaProtocolProvider, Web.TPEngine, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null" />
  <Metadata>
    <Item Key="Operation">OneWaySMS</Item>
  </Metadata>
  <InputClaimsTransformations>
    <InputClaimsTransformation ReferenceId="CombinePhoneAndCountryCode" />
    <InputClaimsTransformation ReferenceId="ConvertStringToPhoneNumber" />
  </InputClaimsTransformations>
  <InputClaims>
    <InputClaim ClaimTypeReferenceId="userPrincipalName" />
    <InputClaim ClaimTypeReferenceId="fullPhoneNumber" PartnerClaimType="phoneNumber" />
  </InputClaims>
</TechnicalProfile>

Code überprüfen

Mit dem Schritt „Code überprüfen“ wird ein an den Benutzer gesendeter Code überprüft. Für diesen Schritt können die folgenden Optionen konfiguriert werden.

Eingabeansprüche

Das Element InputClaims enthält eine Liste mit Ansprüchen, die an Microsoft Entra-Multi-Faktor-Authentifizierung gesendet werden sollen. Sie können auch den Namen Ihres Anspruchs dem im technischen MFA-Profil definierten Namen zuordnen.

ClaimReferenceId Erforderlich Beschreibung des Dataflows
phoneNumber Ja Dieselbe Telefonnummer, die zuvor zum Senden eines Codes verwendet wurde. Außerdem wird sie verwendet, um eine Telefonüberprüfungssitzung zu suchen.
verificationCode Ja Der Prüfcode, der vom zu überprüfenden Benutzer bereitgestellt wird.

Ausgabeansprüche

Weil der Microsoft Entra-MFA-Protokollanbieter keine Ausgabeansprüche zurückgibt, müssen auch keine angegeben werden.

Metadaten

Das Element „Metadata“ enthält das folgende Attribut:

Attribut Erforderlich Beschreibung des Dataflows
Operation Ja Muss Verifylauten.
Benutzeroberflächenelemente

Die folgenden Metadaten können verwendet werden, um die Fehlermeldungen zu konfigurieren, die bei einem Codeüberprüfungsfehler angezeigt wird. Die Metadaten sollten im selbstbestätigten technischen Profil konfiguriert werden. Die Fehlermeldungen können lokalisiert werden.

attribute Erforderlich Beschreibung
UserMessageIfMaxAllowedCodeRetryReached Nein Fehlermeldung für den Benutzer, wenn der Benutzer zu oft versucht hat, einen Prüfcode einzugeben.
UserMessageIfServerError Nein Fehlermeldung für den Benutzer, wenn der Server einen internen Fehler festgestellt hat.
UserMessageIfThrottled Nein Fehlermeldung für den Benutzer, wenn die Anforderung gedrosselt wird.
UserMessageIfWrongCodeEntered Nein Fehlermeldung für den Benutzer, wenn der zur Überprüfung eingegebene Code falsch ist.

Beispiel: Überprüfen eines Codes

Das folgende Beispiel zeigt ein technisches Profil für die Microsoft Entra ID-Multi-Faktor-Authentifizierung, das zum Überprüfen des Codes verwendet wird.

<TechnicalProfile Id="AzureMfa-VerifySms">
    <DisplayName>Verify Sms</DisplayName>
    <Protocol Name="Proprietary" Handler="Web.TPEngine.Providers.AzureMfaProtocolProvider, Web.TPEngine, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null" />
    <Metadata>
        <Item Key="Operation">Verify</Item>
    </Metadata>
    <InputClaims>
        <InputClaim ClaimTypeReferenceId="phoneNumber" PartnerClaimType="phoneNumber" />
        <InputClaim ClaimTypeReferenceId="verificationCode" />
    </InputClaims>
</TechnicalProfile>

TOTP-Modus

In diesem Modus muss der Benutzer auf einem seiner Geräte eine Authentifikator-App installieren, die die Überprüfung des zeitbasierten Einmalkennworts (Time-based One-Time Password, TOTP) unterstützt, wie z. B. die Microsoft Authenticator-App.

Während der ersten Registrierung oder Anmeldung scannt der Benutzer einen QR-Code, öffnet einen Deep-Link oder gibt den Code mithilfe der Authentifikator-App manuell ein. Verwenden Sie zur Überprüfung des TOTP-Codes die technischen Validierungsprofile Begin verify OTP (OTP-Überprüfung starten) und Verify TOTP (TOTP überprüfen).

Verwenden Sie für nachfolgende Anmeldungen die Methode Verfügbare Geräte abrufen, um zu überprüfen, ob der Benutzer sein Gerät bereits registriert hat. Wenn die Anzahl der verfügbaren Geräte größer als „0“ (null) ist, gibt dies an, dass sich der Benutzer zuvor registriert hat. In diesem Fall muss der Benutzer den TOTP-Code eingeben, der in der Authentifikator-App angezeigt wird.

Das technische Profil:

  • Es bietet keine Benutzeroberfläche für die Interaktion mit dem Benutzer. Stattdessen wird die Benutzeroberfläche über ein selbstbestätigtes technisches Profil mit den TOTP-Anzeigesteuerelementen aufgerufen.
  • Verwendet die Microsoft Entra-Multi-Faktor-Authentifizierung, um den TOTP-Code zu überprüfen.
  • Überprüft, ob ein Benutzer sein Gerät bereits registriert hat.

Der folgende Screenshot zeigt den Ablauf einer TOTP-Registrierung und -Überprüfung. Zunächst wird die Anzahl der verfügbaren Geräte überprüft. Wenn die Anzahl der verfügbaren Geräte „0“ (null) beträgt, durchläuft der Benutzer den Schritt der Registrierungsorchestrierung. Andernfalls durchläuft der Benutzer den Schritt der Überprüfungsorchestrierung.

Screenshot showing TOTP flow.

Verfügbare Geräte abrufen

Im Modus „Verfügbare Geräte abrufen“ wird die Anzahl der für den Benutzer verfügbaren Geräte überprüft. Wenn die Anzahl der verfügbaren Geräte „0“ (null) beträgt, gibt dies an, dass der Benutzer noch nicht registriert wurde.

Eingabeansprüche

Das Element InputClaims enthält eine Liste mit Ansprüchen, die an Microsoft Entra-Multi-Faktor-Authentifizierung gesendet werden sollen. Sie können auch den Namen Ihres Anspruchs dem im technischen MFA-Profil definierten Namen zuordnen.

ClaimReferenceId Erforderlich Beschreibung des Dataflows
userPrincipalName Ja Der Benutzerprinzipalname.

Ausgabeansprüche

Das Element „outputClaims“ enthält eine Liste mit Ansprüchen, die an Microsoft Entra-Multi-Faktor-Authentifizierung zurückgegeben werden sollen. Sie können auch den Namen Ihres Anspruchs dem im technischen MFA-Profil definierten Namen zuordnen.

ClaimReferenceId Erforderlich Beschreibung des Dataflows
numberOfAvailableDevices Ja Die Anzahl der verfügbaren Geräte für den Benutzer.

Metadaten

Das Element „Metadata“ enthält das folgende Attribut:

Attribut Erforderlich Beschreibung des Dataflows
Operation Ja Muss GetAvailableDeviceslauten.

Beispiel: Abrufen verfügbarer Geräte

Das folgende Beispiel zeigt ein technisches Profil für die Microsoft Entra ID-Multi-Faktor-Authentifizierung, das für den Erhalt der Nummer von verfügbaren Geräten verwendet wird.

<TechnicalProfile Id="AzureMfa-GetAvailableDevices">
  <DisplayName>Get Available Devices</DisplayName>
  <Protocol Name="Proprietary" Handler="Web.TPEngine.Providers.AzureMfaProtocolProvider, Web.TPEngine, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null" />
  <Metadata>
    <Item Key="Operation">GetAvailableDevices</Item>
  </Metadata>
  <InputClaims>
    <InputClaim ClaimTypeReferenceId="userPrincipalName" />
  </InputClaims>
  <OutputClaims>
    <OutputClaim ClaimTypeReferenceId="numberOfAvailableDevices" />
  </OutputClaims>
</TechnicalProfile>

TOTP-Überprüfung starten

Mit dem Schritt „TOTP-Überprüfung starten“ wird der Überprüfungsprozess gestartet. Dieses technische Validierungsprofil wird aus dem selbstbestätigten technischen Profil aufgerufen, das TOTP-Codes darstellt und überprüft. Auf dieses technische Validierungsprofil muss ein Aufruf von technischen Validierungsprofilen des Typs Verify TOTP (TOTP überprüfen) folgen.

Eingabeansprüche

Das Element InputClaims enthält eine Liste mit Ansprüchen, die an Microsoft Entra-Multi-Faktor-Authentifizierung gesendet werden sollen. Sie können auch den Namen Ihres Anspruchs dem im technischen MFA-Profil definierten Namen zuordnen.

ClaimReferenceId Erforderlich Beschreibung des Dataflows
userPrincipalName Ja Der Benutzerprinzipalname.
objectId Ja Die Benutzerobjekt-ID.
secretKey Ja Der geheime Schlüssel des Benutzers. Dieser Schlüssel wird im Profil des Benutzers im Verzeichnis „Azure AD B2C“ gespeichert und für die Authentifikator-App freigegeben. Die Authentifikator-App verwendet das Geheimnis zum Generieren des TOTP-Codes. Dieses technische Profil verwendet das Geheimnis zum Überprüfen des TOTP-Codes.

Ausgabeansprüche

Weil der Microsoft Entra-MFA-Protokollanbieter keine Ausgabeansprüche zurückgibt, müssen auch keine angegeben werden.

Metadaten

Das Element „Metadata“ enthält das folgende Attribut:

Attribut Erforderlich Beschreibung des Dataflows
Operation Ja Muss BeginVerifyOTPlauten.

Beispiel: Starten der TOTP-Überprüfung

Das folgende Beispiel zeigt ein technisches Profil für die Microsoft Entra ID-Multi-Faktor-Authentifizierung, das verwendet wird, um den TOTP-Überprüfungsprozess zu beginnen.

<TechnicalProfile Id="AzureMfa-BeginVerifyOTP">
  <DisplayName>Begin verify TOTP"</DisplayName>
  <Protocol Name="Proprietary" Handler="Web.TPEngine.Providers.AzureMfaProtocolProvider, Web.TPEngine, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null" />
  <Metadata>
    <Item Key="Operation">BeginVerifyOTP</Item>
  </Metadata>
  <InputClaims>
    <InputClaim ClaimTypeReferenceId="secretKey" />
    <InputClaim ClaimTypeReferenceId="objectId" />
    <InputClaim ClaimTypeReferenceId="userPrincipalName" />
  </InputClaims>
</TechnicalProfile>

TOTP überprüfen

Die Methode „TOTP überprüfen“ überprüft einen TOTP-Code. Dieses technische Validierungsprofil wird aus dem selbstbestätigten technischen Profil aufgerufen, das TOTP-Codes darstellt und überprüft. Vor diesem technischen Validierungsprofil muss ein Aufruf von technischen Validierungsprofilen des Typs Begin verify TOTP (TOTP-Überprüfung starten) erfolgen.

Eingabeansprüche

Das Element InputClaims enthält eine Liste mit Ansprüchen, die an Microsoft Entra-Multi-Faktor-Authentifizierung gesendet werden sollen. Sie können auch den Namen Ihres Anspruchs dem im technischen MFA-Profil definierten Namen zuordnen.

ClaimReferenceId Erforderlich Beschreibung des Dataflows
otpCode Ja Der vom Benutzer angegebene TOTP-Code.

Ausgabeansprüche

Weil der Microsoft Entra-MFA-Protokollanbieter keine Ausgabeansprüche zurückgibt, müssen auch keine angegeben werden.

Metadaten

Das Element „Metadata“ enthält das folgende Attribut:

Attribut Erforderlich Beschreibung des Dataflows
Operation Ja Muss VerifyOTPlauten.

Beispiel: Überprüfen von TOTP

Das folgende Beispiel zeigt ein technisches Profil für die Microsoft Entra ID-Multi-Faktor-Authentifizierung, das zum Überprüfen des TOTP-Codes verwendet wird.

<TechnicalProfile Id="AzureMfa-VerifyOTP">
  <DisplayName>Verify OTP</DisplayName>
  <Protocol Name="Proprietary" Handler="Web.TPEngine.Providers.AzureMfaProtocolProvider, Web.TPEngine, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null" />
  <Metadata>
    <Item Key="Operation">VerifyOTP</Item>
  </Metadata>
  <InputClaims>
    <InputClaim ClaimTypeReferenceId="otpCode" />
  </InputClaims>
</TechnicalProfile>

Nächste Schritte