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.
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 OneWaySMS lauten. |
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 Verify lauten. |
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.
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 GetAvailableDevices lauten. |
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 BeginVerifyOTP lauten. |
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 VerifyOTP lauten. |
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>