Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
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.
Hinweis
In Azure Active Directory B2C sind benutzerdefinierte Richtlinien in erster Linie für komplexe Szenarien konzipiert. Für die meisten Szenarien empfehlen wir die Verwendung von integrierten Benutzerflows. Informieren Sie sich, sofern noch nicht geschehen, unter Tutorial: Erstellen von Benutzerflows und benutzerdefinierten Richtlinien in Azure Active Directory B2C über das Starter Pack für benutzerdefinierte Richtlinien.
Azure Active Directory B2C (Azure AD B2C) bietet Unterstützung für die Verwaltung der Generierung und Überprüfung eines einmaligen Kennworts. Verwenden Sie ein technisches Profil, um einen Code zu generieren, und überprüfen Sie diesen Code später.
Das einmalige kennworttechnische Profil kann auch während der Codeüberprüfung eine Fehlermeldung zurückgeben. Entwerfen Sie die Integration mit dem einmaligen Kennwort mithilfe eines technischen Profils der Validierung. Ein technisches Überprüfungsprofil ruft das einmalige kennworttechnische Profil auf, um einen Code zu überprüfen. Das technische Überprüfungsprofil überprüft die vom Benutzer bereitgestellten Daten, bevor die Benutzerreise fortgesetzt wird. Mit dem technischen Profil der Validierung wird auf einer selbst bestätigten Seite eine Fehlermeldung angezeigt.
Protokoll
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.OneTimePasswordProtocolProvider, Web.TPEngine, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null
Das folgende Beispiel zeigt ein einmaliges kennworttechnisches Profil:
<TechnicalProfile Id="VerifyCode">
<DisplayName>Validate user input verification code</DisplayName>
<Protocol Name="Proprietary" Handler="Web.TPEngine.Providers.OneTimePasswordProtocolProvider, Web.TPEngine, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null" />
...
Generieren von Code
Der erste Modus dieses technischen Profils besteht darin, einen Code zu generieren. Nachfolgend finden Sie die Optionen, die für diesen Modus konfiguriert werden können. Generierte Codes und Versuche werden innerhalb der Sitzung nachverfolgt.
Eingabeansprüche
Das InputClaims-Element enthält eine Liste der Ansprüche, die zum Senden an den einmaligen Kennwortprotokollanbieter erforderlich sind. Sie können auch den Namen Ihres Anspruchs dem unten definierten Namen zuordnen.
ClaimReferenceId | Erforderlich | BESCHREIBUNG |
---|---|---|
Bezeichner | Ja | Der Bezeichner, um den Benutzer zu identifizieren, der den Code später überprüfen muss. Sie wird häufig als Bezeichner des Ziels verwendet, an das der Code übermittelt wird, z. B. E-Mail-Adresse oder Telefonnummer. |
Das InputClaimsTransformations-Element kann eine Sammlung von InputClaimsTransformation-Elementen enthalten, die zum Ändern der Eingabeansprüche oder zum Generieren neuer Elemente verwendet werden, bevor sie an den einmaligen Kennwortprotokollanbieter gesendet werden.
Ausgabeansprüche
Das OutputClaims-Element enthält eine Liste der Ansprüche, die vom einmaligen Kennwortprotokollanbieter generiert werden. Sie können auch den Namen Ihres Anspruchs dem unten definierten Namen zuordnen.
ClaimReferenceId | Erforderlich | BESCHREIBUNG |
---|---|---|
otpGeneriert | Ja | Der generierte Code, dessen Sitzung von Azure AD B2C verwaltet wird. |
Das OutputClaimsTransformations-Element kann eine Auflistung von OutputClaimsTransformation-Elementen enthalten, die verwendet werden, um die Ausgabeansprüche zu ändern oder neue zu generieren.
Metadaten
Die folgenden Einstellungen können zum Konfigurieren des Codegenerierungsmodus verwendet werden:
Merkmal | Erforderlich | BESCHREIBUNG |
---|---|---|
Vorgang | Ja | Der auszuführende Vorgang. Möglicher Wert: GenerateCode . |
CodeExpirationInSeconds | Nein | Zeit in Sekunden bis zum Codeablauf. Minimum: 60 ; Höchstwert: 1200 ; Standard: 600 . Jedes Mal, wenn ein Code bereitgestellt wird (mit demselben Code ReuseSameCode oder einem neuen Code), wird der Codeablauf erweitert. Diese Zeit wird auch zum Festlegen des Wiederholungstimeouts verwendet (sobald maximale Versuche erreicht wurden, wird der Benutzer daran gehindert, neue Codes abzurufen, bis diese Zeit abläuft) |
CodeLänge | Nein | Länge des Codes. Der Standardwert ist 6 . |
CharacterSet | Nein | Der Zeichensatz für den Code, der für die Verwendung in einem regulären Ausdruck formatiert ist. Beispiel: a-z0-9A-Z . Der Standardwert ist 0-9 . Der Zeichensatz muss mindestens 10 verschiedene Zeichen in der angegebenen Menge enthalten. |
NumRetryAttempts (AnzahlVersuche) | Nein | Die Anzahl der Überprüfungsversuche, bevor der Code als ungültig angesehen wird. Der Standardwert ist 5 . Wenn Sie beispielsweise "NumRetryAttempts" auf "2" festlegen, können Sie nur 2 Versuche insgesamt ausführen (erster + 1 Wiederholungsversuch). Für den 3. Versuch wird es maximale Versuche auslösen, die erreicht werden, unabhängig davon, ob der Code korrekt ist oder nicht. |
NumCodeGenerationAttempts | Nein | Die Anzahl der maximal zulässigen Codegenerierungsversuche pro Bezeichner. Der Standardwert ist 10 , wenn nicht angegeben. |
Denselben Code wiederverwenden | Nein | Gibt an, ob derselbe Code angegeben werden soll, anstatt einen neuen Code zu generieren, wenn der angegebene Code nicht abgelaufen ist und noch gültig ist. Der Standardwert ist false . |
Beispiel
Das folgende Beispiel TechnicalProfile
wird zum Generieren eines Codes verwendet:
<TechnicalProfile Id="GenerateCode">
<DisplayName>Generate Code</DisplayName>
<Protocol Name="Proprietary" Handler="Web.TPEngine.Providers.OneTimePasswordProtocolProvider, Web.TPEngine, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null" />
<Metadata>
<Item Key="Operation">GenerateCode</Item>
<Item Key="CodeExpirationInSeconds">600</Item>
<Item Key="CodeLength">6</Item>
<Item Key="CharacterSet">0-9</Item>
<Item Key="NumRetryAttempts">5</Item>
<Item Key="NumCodeGenerationAttempts">10</Item>
<Item Key="ReuseSameCode">false</Item>
</Metadata>
<InputClaims>
<InputClaim ClaimTypeReferenceId="identifier" PartnerClaimType="identifier" />
</InputClaims>
<OutputClaims>
<OutputClaim ClaimTypeReferenceId="otpGenerated" PartnerClaimType="otpGenerated" />
</OutputClaims>
</TechnicalProfile>
Code prüfen
Der zweite Modus dieses technischen Profils besteht darin, einen Code zu überprüfen. Nachfolgend finden Sie die Optionen, die für diesen Modus konfiguriert werden können.
Eingabeansprüche
Das InputClaims-Element enthält eine Liste der Ansprüche, die zum Senden an den einmaligen Kennwortprotokollanbieter erforderlich sind. Sie können auch den Namen Ihres Anspruchs dem unten definierten Namen zuordnen.
ClaimReferenceId | Erforderlich | BESCHREIBUNG |
---|---|---|
Bezeichner | Ja | Der Bezeichner, um den Benutzer zu identifizieren, der zuvor einen Code generiert hat. Sie wird häufig als Bezeichner des Ziels verwendet, an das der Code übermittelt wird, z. B. E-Mail-Adresse oder Telefonnummer. |
otpToVerifizieren | Ja | Der vom Benutzer bereitgestellte Überprüfungscode. |
Das InputClaimsTransformations-Element kann eine Sammlung von InputClaimsTransformation-Elementen enthalten, die zum Ändern der Eingabeansprüche oder zum Generieren neuer Elemente verwendet werden, bevor sie an den einmaligen Kennwortprotokollanbieter gesendet werden.
Ausgabeansprüche
Während der Codeüberprüfung dieses Protokollanbieters werden keine Ausgabeansprüche angegeben.
Das OutputClaimsTransformations-Element kann eine Auflistung von OutputClaimsTransformation-Elementen enthalten, die verwendet werden, um die Ausgabeansprüche zu ändern oder neue zu generieren.
Metadaten
Die folgenden Einstellungen können für den Codeüberprüfungsmodus verwendet werden:
Merkmal | Erforderlich | BESCHREIBUNG |
---|---|---|
Vorgang | Ja | Der auszuführende Vorgang. Möglicher Wert: VerifyCode . |
Benutzeroberflächenelemente
Die folgenden Metadaten können verwendet werden, um die Fehlermeldungen zu konfigurieren, die bei Codeüberprüfungsfehlern angezeigt werden. Die Metadaten sollten im selbst bestätigten technischen Profil konfiguriert werden. Die Fehlermeldungen können lokalisiert werden.
Merkmal | Erforderlich | BESCHREIBUNG |
---|---|---|
UserMessageIfSessionDoesNotExist | Nein | Die Meldung, die dem Benutzer angezeigt werden soll, wenn die Codeüberprüfungssitzung abgelaufen ist. Entweder ist der Code abgelaufen, oder der Code wurde nie für einen bestimmten Bezeichner generiert. |
UserMessageIfMaxRetryAttempted | Nein | Die Meldung, die dem Benutzer angezeigt werden soll, wenn er die maximal zulässigen Überprüfungsversuche überschritten hat. |
UserMessageIfMaxNumberOfCodeGenerated | Nein | Die Meldung, die dem Benutzer angezeigt werden soll, wenn die maximal zulässige Anzahl von Codegenerierungsversuchen überschritten wurde. |
UserMessageIfInvalidCode | Nein | Die Meldung, die dem Benutzer angezeigt werden soll, wenn er einen ungültigen Code bereitgestellt hat. |
UserMessageIfVerificationFailedRetryAllowed | Nein | Die Meldung, die dem Benutzer angezeigt werden soll, wenn er einen ungültigen Code bereitgestellt hat, und der Benutzer darf den richtigen Code bereitstellen. |
UserMessageIfSessionConflict | Nein | Die Meldung, die dem Benutzer angezeigt werden soll, wenn der Code nicht überprüft werden kann. |
Beispiel
Das folgende Beispiel TechnicalProfile
wird zum Überprüfen eines Codes verwendet:
<TechnicalProfile Id="VerifyCode">
<DisplayName>Verify Code</DisplayName>
<Protocol Name="Proprietary" Handler="Web.TPEngine.Providers.OneTimePasswordProtocolProvider, Web.TPEngine, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null" />
<Metadata>
<Item Key="Operation">VerifyCode</Item>
</Metadata>
<InputClaims>
<InputClaim ClaimTypeReferenceId="identifier" PartnerClaimType="identifier" />
<InputClaim ClaimTypeReferenceId="otpGenerated" PartnerClaimType="otpToVerify" />
</InputClaims>
</TechnicalProfile>
Nächste Schritte
Im folgenden Artikel finden Sie ein Beispiel für die Verwendung eines einmaligen kennworttechnischen Profils mit benutzerdefinierter E-Mail-Überprüfung: