Nuta
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować się zalogować lub zmienić katalog.
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zmienić katalogi.
Ważne
Od 1 maja 2025 r. usługa Azure AD B2C nie będzie już dostępna do zakupu dla nowych klientów. Dowiedz się więcej w naszych często zadawanych pytaniach.
Uwaga / Notatka
W usłudze Azure Active Directory B2C niestandardowe zasady są przeznaczone głównie do rozwiązywania złożonych scenariuszy. W przypadku większości scenariuszy zalecamy używanie wbudowanych przepływów użytkownika. Jeśli nie zostało to zrobione, dowiedz się więcej o niestandardowym pakiecie startowym zasad w temacie Wprowadzenie do zasad niestandardowych w usłudze Active Directory B2C.
Usługa Azure Active Directory B2C (Azure AD B2C) zapewnia obsługę zarządzania generowaniem i weryfikacją jednorazowego hasła. Użyj profilu technicznego, aby wygenerować kod, a następnie zweryfikować ten kod później.
Jednorazowy profil techniczny hasła może również zwrócić komunikat o błędzie podczas weryfikacji kodu. Zaprojektuj integrację z jednorazowym hasłem przy użyciu profilu technicznego Walidacja. Profil techniczny weryfikacji wywołuje jednorazowy profil techniczny hasła w celu zweryfikowania kodu. Profil techniczny weryfikacji weryfikuje dane dostarczone przez użytkownika przed kontynuowaniem podróży użytkownika. W przypadku profilu technicznego weryfikacji na stronie samodzielnej asertywnej jest wyświetlany komunikat o błędzie.
Protokół
Atrybut Name elementu Protocol musi być ustawiony na Proprietary. Atrybut programu obsługi musi zawierać w pełni kwalifikowaną nazwę zestawu obsługi protokołu, który jest używany przez usługę Azure AD B2C:
Web.TPEngine.Providers.OneTimePasswordProtocolProvider, Web.TPEngine, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null
W poniższym przykładzie przedstawiono jednorazowy profil techniczny hasła:
<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" />
...
Generowanie kodu
Pierwszym trybem tego profilu technicznego jest wygenerowanie kodu. Poniżej przedstawiono opcje, które można skonfigurować dla tego trybu. Kody wygenerowane i próby są śledzone w ramach sesji.
Oświadczenia wejściowe
Element InputClaims zawiera listę oświadczeń wymaganych do wysłania do jednorazowego dostawcy protokołu haseł. Możesz również zamapować nazwę oświadczenia na nazwę zdefiniowaną poniżej.
| ClaimReferenceId (Identyfikator roszczenia) | Wymagane | Opis |
|---|---|---|
| identyfikator | Tak | Identyfikator identyfikujący użytkownika, który musi później zweryfikować kod. Jest on często używany jako identyfikator miejsca docelowego, do którego jest dostarczany kod, na przykład adres e-mail lub numer telefonu. |
Element InputClaimsTransformations może zawierać kolekcję elementów InputClaimsTransformation , które są używane do modyfikowania oświadczeń wejściowych lub generowania nowych przed wysłaniem do dostawcy jednorazowego protokołu haseł.
Oświadczenia wyjściowe
Element OutputClaims zawiera listę oświadczeń wygenerowanych przez dostawcę jednorazowego protokołu haseł. Możesz również zamapować nazwę oświadczenia na nazwę zdefiniowaną poniżej.
| ClaimReferenceId (Identyfikator roszczenia) | Wymagane | Opis |
|---|---|---|
| otpWygenerowane | Tak | Wygenerowany kod, którego sesja jest zarządzana przez usługę Azure AD B2C. |
Element OutputClaimsTransformations może zawierać kolekcję elementów OutputClaimsTransformation , które są używane do modyfikowania oświadczeń wyjściowych lub generowania nowych.
Metadane
Do konfigurowania trybu generowania kodu można użyć następujących ustawień:
| Atrybut | Wymagane | Opis |
|---|---|---|
| Operacja | Tak | Operacja do wykonania. Możliwa wartość: GenerateCode. |
| CodeExpirationInSeconds | Nie. | Czas w sekundach do wygaśnięcia kodu. Minimum: 60; Maksymalna: 1200; Wartość domyślna: 600. Za każdym razem, gdy kod jest dostarczany (ten sam kod przy użyciu ReuseSameCodemetody lub nowego kodu), wygasanie kodu jest rozszerzone. Ten czas jest również używany do ustawiania limitu czasu ponawiania próby (po osiągnięciu maksymalnej liczby prób użytkownik jest zablokowany przed próbą uzyskania nowych kodów do czasu wygaśnięcia) |
| KodLength | Nie. | Długość kodu. Wartość domyślna to 6. |
| Zestaw znaków | Nie. | Zestaw znaków dla kodu sformatowany do użycia w wyrażeniu regularnym. Na przykład a-z0-9A-Z. Wartość domyślna to 0-9. Zestaw znaków musi zawierać co najmniej 10 różnych znaków w określonym zestawie. |
| NumRetryAttempts | Nie. | Liczba prób weryfikacji, zanim kod zostanie uznany za nieprawidłowy. Wartość domyślna to 5. Jeśli na przykład ustawisz wartość NumRetryAttempts na 2, będzie ona zezwalać tylko na 2 próby w sumie (pierwsza + 1 ponowna próba). W przypadku 3. próby zostanie zgłoszonych maksymalna liczba prób niezależnie od tego, czy kod jest poprawny, czy nie. |
| NumCodeGenerationAttempts | Nie. | Maksymalna liczba prób generowania kodu na identyfikator. Wartość domyślna to 10 , jeśli nie zostanie określona. |
| ReuseSameCode | Nie. | Czy ten sam kod powinien być podany, a nie generować nowego kodu, gdy dany kod nie wygasł i jest nadal prawidłowy. Wartość domyślna to false. |
Przykład
Poniższy przykład TechnicalProfile służy do generowania kodu:
<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>
Zweryfikuj kod
Drugi tryb tego profilu technicznego polega na zweryfikowaniu kodu. Poniżej przedstawiono opcje, które można skonfigurować dla tego trybu.
Oświadczenia wejściowe
Element InputClaims zawiera listę oświadczeń wymaganych do wysłania do jednorazowego dostawcy protokołu haseł. Możesz również zamapować nazwę oświadczenia na nazwę zdefiniowaną poniżej.
| ClaimReferenceId (Identyfikator roszczenia) | Wymagane | Opis |
|---|---|---|
| identyfikator | Tak | Identyfikator identyfikujący użytkownika, który wcześniej wygenerował kod. Jest on często używany jako identyfikator miejsca docelowego, do którego jest dostarczany kod, na przykład adres e-mail lub numer telefonu. |
| otpToVerify | Tak | Kod weryfikacyjny dostarczony przez użytkownika. |
Element InputClaimsTransformations może zawierać kolekcję elementów InputClaimsTransformation , które są używane do modyfikowania oświadczeń wejściowych lub generowania nowych przed wysłaniem do dostawcy jednorazowego protokołu haseł.
Oświadczenia wyjściowe
Podczas weryfikacji kodu tego dostawcy protokołu nie ma żadnych oświadczeń wyjściowych.
Element OutputClaimsTransformations może zawierać kolekcję elementów OutputClaimsTransformation , które są używane do modyfikowania oświadczeń wyjściowych lub generowania nowych.
Metadane
W trybie weryfikacji kodu można użyć następujących ustawień:
| Atrybut | Wymagane | Opis |
|---|---|---|
| Operacja | Tak | Operacja do wykonania. Możliwa wartość: VerifyCode. |
Elementy interfejsu użytkownika
Następujące metadane mogą służyć do konfigurowania komunikatów o błędach wyświetlanych po niepowodzeniu weryfikacji kodu. Metadane należy skonfigurować w profilu technicznym asertywnego . Komunikaty o błędach mogą być zlokalizowane.
| Atrybut | Wymagane | Opis |
|---|---|---|
| UserMessageIfSessionDoesnotExist | Nie. | Komunikat wyświetlany użytkownikowi, jeśli sesja weryfikacji kodu wygasła. Jest to kod wygasł lub kod nigdy nie został wygenerowany dla danego identyfikatora. |
| UserMessageIfMaxRetryAttempted | Nie. | Komunikat wyświetlany użytkownikowi, jeśli przekroczył maksymalną dozwoloną liczbę prób weryfikacji. |
| UserMessageIfMaxNumberOfCodeGenerated | Nie. | Komunikat wyświetlany użytkownikowi, jeśli generowanie kodu przekroczyło maksymalną dozwoloną liczbę prób. |
| UserMessageIfInvalidCode | Nie. | Komunikat wyświetlany użytkownikowi, jeśli podano nieprawidłowy kod. |
| UserMessageIfVerificationFailedRetryAllowed | Nie. | Komunikat wyświetlany użytkownikowi, jeśli podano nieprawidłowy kod, a użytkownik może podać prawidłowy kod. |
| UserMessageIfSessionConflict | Nie. | Komunikat wyświetlany użytkownikowi, jeśli nie można zweryfikować kodu. |
Przykład
Poniższy przykład TechnicalProfile służy do weryfikowania kodu:
<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>
Dalsze kroki
Zobacz następujący artykuł, aby zapoznać się z przykładem użycia jednorazowego profilu technicznego hasła z niestandardową weryfikacją poczty e-mail: