Definiowanie profilu technicznego uwierzytelniania wieloskładnikowego identyfikatora firmy Microsoft w niestandardowych zasadach usługi Azure AD B2C

Usługa Azure Active Directory B2C (Azure AD B2C) zapewnia obsługę weryfikowania numeru telefonu przy użyciu kodu weryfikacyjnego lub weryfikowania kodu jednorazowego hasła jednorazowego (TOTP).

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.AzureMfaProtocolProvider, Web.TPEngine, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null

W poniższym przykładzie przedstawiono profil techniczny uwierzytelniania wieloskładnikowego identyfikatora firmy Microsoft:

<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" />
    ...

Weryfikowanie trybu telefonu

W trybie weryfikacji telefonu profil techniczny generuje i wysyła kod do numeru telefonu, a następnie weryfikuje kod. Profil techniczny uwierzytelniania wieloskładnikowego identyfikatora firmy Microsoft może również zwrócić komunikat o błędzie. 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. Profil techniczny:

  • Nie udostępnia interfejsu do interakcji z użytkownikiem. Zamiast tego interfejs użytkownika jest wywoływany z własnego profilu technicznego lub kontrolki wyświetlania jako profil techniczny weryfikacji.
  • Używa usługi uwierzytelniania wieloskładnikowego firmy Microsoft do generowania i wysyłania kodu do numeru telefonu, a następnie weryfikuje kod.
  • Weryfikuje numer telefonu za pośrednictwem wiadomości SMS.

Profil techniczny udostępnia metody wysyłania kodu weryfikacyjnego za pośrednictwem wiadomości SMS i weryfikowania kodu. Poniższy zrzut ekranu przedstawia przepływ weryfikatora telefonu.

Screenshot showing TOTP flow

Wyślij wiadomość SMS

Aby zweryfikować telefon, pierwszy krok generuje kod i wysyła go do numeru telefonu. Dla tego kroku można skonfigurować następujące opcje.

Oświadczenia wejściowe

Element InputClaims zawiera listę oświadczeń wysyłanych do uwierzytelniania wieloskładnikowego firmy Microsoft. Możesz również zamapować nazwę oświadczenia na nazwę zdefiniowaną w profilu technicznym uwierzytelniania wieloskładnikowego.

ClaimReferenceId Wymagania opis
userPrincipalName Tak Identyfikator użytkownika, który jest właścicielem numeru telefonu.
phoneNumber Tak Numer telefonu do wysłania kodu SMS.
companyName Nie. Nazwa firmy w wiadomości SMS. Jeśli nie zostanie podana, zostanie użyta nazwa aplikacji.
locale Nie. Ustawienia regionalne wiadomości SMS. Jeśli nie zostanie podana, używane są ustawienia regionalne przeglądarki użytkownika.

Oświadczenia wyjściowe

Dostawca protokołu uwierzytelniania wieloskładnikowego firmy Microsoft nie zwraca żadnych oświadczeń wyjściowych, więc nie ma potrzeby określania oświadczeń wyjściowych.

Metadane

Element Metadata zawiera następujący atrybut.

Atrybut Wymagania opis
Operation Tak Musi mieć wartość OneWaySMS.
Elementy interfejsu użytkownika

Następujące metadane mogą służyć do konfigurowania komunikatów o błędach wyświetlanych podczas wysyłania komunikatów SMS. Metadane należy skonfigurować w profilu technicznym asertywnego. Komunikaty o błędach mogą być zlokalizowane.

Atrybut Wymagania opis
UserMessageIfCouldntSendSms Nie. Komunikat o błędzie użytkownika, jeśli podany numer telefonu nie akceptuje wiadomości SMS.
UserMessageIfInvalidFormat Nie. Komunikat o błędzie użytkownika, jeśli podany numer telefonu nie jest prawidłowym numerem telefonu.
UserMessageIfServerError Nie. Komunikat o błędzie użytkownika, jeśli serwer napotkał błąd wewnętrzny.
UserMessageIfThrottled Nie. Komunikat o błędzie użytkownika, jeśli żądanie zostało ograniczone.

Przykład: wysyłanie wiadomości SMS

W poniższym przykładzie przedstawiono profil techniczny uwierzytelniania wieloskładnikowego firmy Microsoft Entra ID używany do wysyłania kodu za pośrednictwem wiadomości SMS.

<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>

Zweryfikuj kod

Krok weryfikowania kodu weryfikuje kod wysyłany do użytkownika. Dla tego kroku można skonfigurować następujące opcje.

Oświadczenia wejściowe

Element InputClaims zawiera listę oświadczeń wysyłanych do uwierzytelniania wieloskładnikowego firmy Microsoft. Możesz również zamapować nazwę oświadczenia na nazwę zdefiniowaną w profilu technicznym uwierzytelniania wieloskładnikowego.

ClaimReferenceId Wymagania opis
phoneNumber Tak Ten sam numer telefonu, który był wcześniej używany do wysyłania kodu. Służy również do lokalizowania sesji weryfikacji telefonu.
verificationCode Tak Kod weryfikacyjny dostarczony przez użytkownika do zweryfikowania

Oświadczenia wyjściowe

Dostawca protokołu uwierzytelniania wieloskładnikowego firmy Microsoft nie zwraca żadnych oświadczeń wyjściowych, więc nie ma potrzeby określania oświadczeń wyjściowych.

Metadane

Element Metadata zawiera następujący atrybut.

Atrybut Wymagania opis
Operation Tak Musi mieć wartość Verify.
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 Wymagania opis
UserMessageIfMaxAllowedCodeRetryReached Nie. Komunikat o błędzie użytkownika, jeśli użytkownik próbował kod weryfikacyjny zbyt wiele razy.
UserMessageIfServerError Nie. Komunikat o błędzie użytkownika, jeśli serwer napotkał błąd wewnętrzny.
UserMessageIfThrottled Nie. Komunikat o błędzie użytkownika, jeśli żądanie jest ograniczone.
UserMessageIfWrongCodeEntered Nie. Komunikat o błędzie użytkownika, jeśli kod wprowadzony do weryfikacji jest nieprawidłowy.

Przykład: weryfikowanie kodu

W poniższym przykładzie przedstawiono profil techniczny uwierzytelniania wieloskładnikowego identyfikatora firmy Microsoft używany do weryfikowania kodu.

<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>

Tryb TOTP

W tym trybie użytkownik musi zainstalować dowolną aplikację wystawcy uwierzytelniania, która obsługuje weryfikację hasła jednorazowego (TOTP, time-based password), taką jak aplikacja Microsoft Authenticator, na urządzeniu, którego jest właścicielem.

Podczas pierwszego tworzenia konta lub logowania użytkownik skanuje kod QR, otwiera link bezpośredni lub wprowadza kod ręcznie przy użyciu aplikacji authenticator. Aby zweryfikować kod TOTP, użyj opcji Rozpocznij weryfikację OTP , a następnie sprawdź profile techniczne weryfikacji TOTP .

W przypadku kolejnych logowania użyj metody Pobierz dostępne urządzenia , aby sprawdzić, czy użytkownik zarejestrował już swoje urządzenie. Jeśli liczba dostępnych urządzeń jest większa niż zero, oznacza to, że użytkownik zarejestrował się wcześniej. W takim przypadku użytkownik musi wpisać kod TOTP wyświetlany w aplikacji authenticator.

Profil techniczny:

  • Nie udostępnia interfejsu do interakcji z użytkownikiem. Zamiast tego interfejs użytkownika jest wywoływany z własnego profilu technicznego z kontrolkami wyświetlania TOTP.
  • Używa usługi uwierzytelniania wieloskładnikowego firmy Microsoft w celu zweryfikowania kodu TOTP.
  • Sprawdza, czy użytkownik zarejestrował już swoje urządzenie.

Poniższy zrzut ekranu przedstawia przepływ rejestracji i weryfikacji TOTP. Zaczyna się od sprawdzenia liczby dostępnych urządzeń. Jeśli liczba dostępnych urządzeń wynosi zero, użytkownik przechodzi przez krok aranżacji rejestracji. W przeciwnym razie użytkownik przechodzi przez krok orkiestracji weryfikacji.

Screenshot showing TOTP flow.

Uzyskiwanie dostępnych urządzeń

Tryb pobierania dostępnego urządzenia sprawdza liczbę urządzeń dostępnych dla użytkownika. Jeśli liczba dostępnych urządzeń wynosi zero, oznacza to, że użytkownik jeszcze nie został zarejestrowany.

Oświadczenia wejściowe

Element InputClaims zawiera listę oświadczeń wysyłanych do uwierzytelniania wieloskładnikowego firmy Microsoft. Możesz również zamapować nazwę oświadczenia na nazwę zdefiniowaną w profilu technicznym uwierzytelniania wieloskładnikowego.

ClaimReferenceId Wymagania opis
userPrincipalName Tak Główna nazwa użytkownika.

Oświadczenia wyjściowe

Element oświadczenia wyjściowe zawiera listę oświadczeń, które mają być zwracane z uwierzytelniania wieloskładnikowego firmy Microsoft Entra. Możesz również zamapować nazwę oświadczenia na nazwę zdefiniowaną w profilu technicznym uwierzytelniania wieloskładnikowego.

ClaimReferenceId Wymagania opis
numberOfAvailableDevices Tak Liczba dostępnych urządzeń dla użytkownika.

Metadane

Element Metadata zawiera następujący atrybut.

Atrybut Wymagania opis
Operation Tak Musi mieć wartość GetAvailableDevices.

Przykład: Uzyskiwanie dostępnych urządzeń

W poniższym przykładzie przedstawiono profil techniczny uwierzytelniania wieloskładnikowego identyfikatora firmy Microsoft używany do uzyskiwania liczby dostępnych urządzeń.

<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>

Rozpocznij weryfikowanie protokołu TOTP

Rozpoczęcie weryfikacji toTP rozpoczyna proces weryfikacji. Ten profil techniczny weryfikacji jest wywoływany z własnego profilu technicznego, który przedstawia i weryfikuje kody TOTP. Ten profil techniczny weryfikacji musi być zgodny z wywołaniem weryfikacji profilów technicznych weryfikacji TOTP .

Oświadczenia wejściowe

Element InputClaims zawiera listę oświadczeń wysyłanych do uwierzytelniania wieloskładnikowego firmy Microsoft. Możesz również zamapować nazwę oświadczenia na nazwę zdefiniowaną w profilu technicznym uwierzytelniania wieloskładnikowego.

ClaimReferenceId Wymagania opis
userPrincipalName Tak Główna nazwa użytkownika.
objectId Tak Identyfikator obiektu użytkownika.
secretKey Tak Klucz tajny użytkownika. Ten klucz jest przechowywany w profilu użytkownika w katalogu usługi Azure AD B2C i jest udostępniany aplikacji authenticator. Aplikacja authenticator używa wpisu tajnego do wygenerowania kodu TOTP. Ten profil techniczny używa wpisu tajnego do zweryfikowania kodu TOTP.

Oświadczenia wyjściowe

Dostawca protokołu uwierzytelniania wieloskładnikowego firmy Microsoft nie zwraca żadnych oświadczeń wyjściowych, więc nie ma potrzeby określania oświadczeń wyjściowych.

Metadane

Element Metadata zawiera następujący atrybut.

Atrybut Wymagania opis
Operation Tak Musi mieć wartość BeginVerifyOTP.

Przykład: Rozpoczynanie weryfikowania protokołu TOTP

W poniższym przykładzie przedstawiono profil techniczny uwierzytelniania wieloskładnikowego identyfikatora firmy Microsoft używany do rozpoczęcia procesu weryfikacji TOTP.

<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>

Weryfikowanie protokołu TOTP

Metoda verify TOTP weryfikuje kod TOTP. Ten profil techniczny weryfikacji jest wywoływany z własnego profilu technicznego, który przedstawia i weryfikuje kody TOTP. Ten profil techniczny weryfikacji musi być poprzedzony wywołaniem profilu technicznego Rozpocznij weryfikację TOTP .

Oświadczenia wejściowe

Element InputClaims zawiera listę oświadczeń wysyłanych do uwierzytelniania wieloskładnikowego firmy Microsoft. Możesz również zamapować nazwę oświadczenia na nazwę zdefiniowaną w profilu technicznym uwierzytelniania wieloskładnikowego.

ClaimReferenceId Wymagania opis
otpCode Tak Kod TOTP dostarczony przez użytkownika.

Oświadczenia wyjściowe

Dostawca protokołu uwierzytelniania wieloskładnikowego firmy Microsoft nie zwraca żadnych oświadczeń wyjściowych, więc nie ma potrzeby określania oświadczeń wyjściowych.

Metadane

Element Metadata zawiera następujący atrybut.

Atrybut Wymagania opis
Operation Tak Musi mieć wartość VerifyOTP.

Przykład: Weryfikowanie protokołu TOTP

W poniższym przykładzie przedstawiono profil techniczny uwierzytelniania wieloskładnikowego identyfikatora firmy Microsoft używany do weryfikowania kodu TOTP.

<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>

Następne kroki