Поделиться через


Определение технического профиля многофакторной проверки подлинности идентификатора Microsoft Entra в пользовательской политике Azure AD B2C

Это важно

Начиная с 1 мая 2025 г. Azure AD B2C больше не будет доступен для приобретения для новых клиентов. Дополнительные сведения см. в разделе "Вопросы и ответы".

Azure Active Directory B2C (Azure AD B2C) обеспечивает поддержку проверки номера телефона с помощью кода проверки или проверки кода однократного пароля (TOTP).

Протокол

Атрибуту Name элемента Protocol необходимо присвоить значение Proprietary. Атрибут обработчика должен содержать полное имя сборки обработчика протокола, используемой Azure AD B2C:

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

В следующем примере показан технический профиль многофакторной проверки подлинности Идентификатора Microsoft Entra:

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

Проверка режима телефона

В режиме проверки телефона технический профиль создает и отправляет код на номер телефона, а затем проверяет код. Технический профиль многофакторной проверки подлинности Microsoft Entra ID также может возвращать сообщение об ошибке. Технический профиль проверки проверяет предоставленные пользователем данные до продолжения взаимодействия пользователя. При использовании технического профиля проверки на странице самозаверяющейся страницы отображается сообщение об ошибке. Технический профиль:

  • Не предоставляет интерфейс для взаимодействия с пользователем. Вместо этого пользовательский интерфейс вызывается из самозаверяющего технического профиля или элемента управления отображения в качестве технического профиля проверки.
  • Использует службу многофакторной проверки подлинности Microsoft Entra для создания и отправки кода на номер телефона, а затем проверяет код.
  • Проверяет номер телефона с помощью текстовых сообщений.

Технический профиль предоставляет методы для отправки кода проверки с помощью текстового сообщения SMS и проверки кода. На следующем снимка экрана показан поток проверки телефонов.

Снимок экрана: поток TOTP

Отправка SMS

Чтобы проверить телефон, первый шаг создает код и отправляет его на номер телефона. Для этого шага можно настроить следующие параметры.

Входящие утверждения

Элемент InputClaims содержит список утверждений для отправки в многофакторную проверку подлинности Microsoft Entra. Вы также можете сопоставить имя утверждения с именем, определенным в техническом профиле MFA.

ClaimReferenceId (Идентификатор ссылки) Обязательно Описание
userPrincipalName Да Идентификатор пользователя, которому принадлежит номер телефона.
phoneNumber Да Номер телефона для отправки SMS-кода.
companyName нет Имя компании в SMS. Если оно не указано, используется имя приложения.
locale нет Языковой стандарт SMS. Если он не указан, используется языковой стандарт браузера пользователя.

Исходящие утверждения

Поставщик протокола многофакторной проверки подлинности Microsoft Entra не возвращает выходные утверждения, поэтому не требуется указывать выходные утверждения.

Метаданные

Элемент метаданных содержит следующий атрибут.

Свойство Обязательно Описание
Operation Да Этот параметр должен содержать значение OneWaySMS.
Элементы пользовательского интерфейса

Следующие метаданные можно использовать для настройки сообщений об ошибках, отображаемых при отправке сбоя SMS. Метаданные должны быть настроены в самозаверяемом техническом профиле. Сообщения об ошибках можно локализовать.

Свойство Обязательно Описание
UserMessageIfCouldntSendSms нет Сообщение об ошибке пользователя, если указанный номер телефона не принимает SMS.
UserMessageIfInvalidFormat нет Сообщение об ошибке пользователя, если указанный номер телефона не является допустимым номером телефона.
UserMessageIfServerError нет Сообщение об ошибке пользователя, если сервер столкнулся с внутренней ошибкой.
UserMessageIfThrottled нет Сообщение об ошибке пользователя, если запрос был отрегулирован.

Пример: отправка SMS

В следующем примере показан технический профиль многофакторной проверки подлинности Идентификатора Майкрософт, который используется для отправки кода через 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>

Проверить код

Шаг проверки кода проверяет код, отправленный пользователю. Для этого шага можно настроить следующие параметры.

Входящие утверждения

Элемент InputClaims содержит список утверждений для отправки в многофакторную проверку подлинности Microsoft Entra. Вы также можете сопоставить имя утверждения с именем, определенным в техническом профиле MFA.

ClaimReferenceId (Идентификатор ссылки) Обязательно Описание
phoneNumber Да Тот же номер телефона, что и раньше, используемый для отправки кода. Он также используется для поиска сеанса проверки телефона.
verificationCode Да Код проверки, предоставленный пользователем для проверки

Исходящие утверждения

Поставщик протокола многофакторной проверки подлинности Microsoft Entra не возвращает выходные утверждения, поэтому не требуется указывать выходные утверждения.

Метаданные

Элемент метаданных содержит следующий атрибут.

Свойство Обязательно Описание
Operation Да Этот параметр должен содержать значение Verify.
Элементы пользовательского интерфейса

Следующие метаданные можно использовать для настройки сообщений об ошибках, отображаемых при сбое проверки кода. Метаданные должны быть настроены в самозаверяемом техническом профиле. Сообщения об ошибках можно локализовать.

Свойство Обязательно Описание
UserMessageIfMaxAllowedCodeRetryReached нет Сообщение об ошибке пользователя, если пользователь попытался выполнить проверку кода слишком много раз.
UserMessageIfServerError нет Сообщение об ошибке пользователя, если сервер столкнулся с внутренней ошибкой.
UserMessageIfThrottled нет Сообщение об ошибке пользователя, если запрос регулируется.
UserMessageIfWrongCodeEntered нет Сообщение об ошибке пользователя, если код, введенный для проверки, неправильный.

Пример: проверка кода

В следующем примере показан технический профиль многофакторной проверки подлинности Microsoft Entra ID, используемый для проверки кода.

<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

В этом режиме пользователю требуется установить любое приложение authenticator, которое поддерживает проверку одноразового пароля (TOTP), например приложение Microsoft Authenticator, на устройстве, которому они принадлежат.

Во время первой регистрации или входа пользователь сканирует QR-код, открывает глубокую ссылку или вводит код вручную с помощью приложения проверки подлинности. Чтобы проверить код TOTP, используйте метод "Начать проверку OTP ", а затем технический профиль проверки TOTP .

Для последующих входов используйте метод Get available devices , чтобы проверить, уже ли пользователь зарегистрировал свое устройство. Если число доступных устройств больше нуля, это означает, что пользователь зарегистрировался раньше. В этом случае пользователю необходимо ввести код TOTP, который отображается в приложении authenticator.

Технический профиль:

  • Не предоставляет интерфейс для взаимодействия с пользователем. Вместо этого пользовательский интерфейс вызывается из самоутверждаемого технического профиля с элементами управления отображения TOTP.
  • Использует службу многофакторной проверки подлинности Microsoft Entra для проверки кода TOTP.
  • Проверяет, уже ли пользователь зарегистрировал свое устройство.

На следующем снимка экрана показан поток регистрации и проверки TOTP. Она начинается с проверки количества доступных устройств. Если число доступных устройств равно нулю, пользователь проходит шаг оркестрации регистрации. В противном случае пользователь проходит этап оркестрации проверки.

Снимок экрана: поток TOTP.

Получение доступных устройств

В режиме получения доступных устройств проверяется количество устройств, доступных для пользователя. Если число доступных устройств равно нулю, это означает, что пользователь еще не зарегистрировался.

Входящие утверждения

Элемент InputClaims содержит список утверждений для отправки в многофакторную проверку подлинности Microsoft Entra. Вы также можете сопоставить имя утверждения с именем, определенным в техническом профиле MFA.

ClaimReferenceId (Идентификатор ссылки) Обязательно Описание
userPrincipalName Да Основное имя пользователя.

Исходящие утверждения

Элемент выходных утверждений содержит список утверждений, возвращаемых из многофакторной проверки подлинности Microsoft Entra. Вы также можете сопоставить имя утверждения с именем, определенным в техническом профиле MFA.

ClaimReferenceId (Идентификатор ссылки) Обязательно Описание
numberOfAvailableDevices Да Количество доступных устройств для пользователя.

Метаданные

Элемент метаданных содержит следующий атрибут.

Свойство Обязательно Описание
Operation Да Этот параметр должен содержать значение GetAvailableDevices.

Пример. Получение доступных устройств

В следующем примере показан технический профиль многофакторной проверки подлинности Microsoft Entra ID, используемый для получения количества доступных устройств.

<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

Начало проверки TOTP запускает процесс проверки. Этот технический профиль проверки вызывается из самозаверяющего технического профиля, который представляет и проверяет коды TOTP. Этот технический профиль проверки должен следовать вызову проверки технических профилей проверки TOTP .

Входящие утверждения

Элемент InputClaims содержит список утверждений для отправки в многофакторную проверку подлинности Microsoft Entra. Вы также можете сопоставить имя утверждения с именем, определенным в техническом профиле MFA.

ClaimReferenceId (Идентификатор ссылки) Обязательно Описание
userPrincipalName Да Основное имя пользователя.
objectId Да Идентификатор объекта пользователя.
secretKey Да Секретный ключ пользователя. Этот ключ хранится в профиле пользователя в каталоге Azure AD B2C и предоставляется приложению authenticator. Приложение authenticator использует секрет для создания кода TOTP. Этот технический профиль использует секрет для проверки кода TOTP.

Исходящие утверждения

Поставщик протокола многофакторной проверки подлинности Microsoft Entra не возвращает выходные утверждения, поэтому не требуется указывать выходные утверждения.

Метаданные

Элемент метаданных содержит следующий атрибут.

Свойство Обязательно Описание
Operation Да Этот параметр должен содержать значение BeginVerifyOTP.

Пример. Начало проверки TOTP

В следующем примере показан технический профиль многофакторной проверки подлинности Microsoft Entra ID, используемый для начала процесса проверки 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>

Проверка TOTP

Метод TOTP проверяет код TOTP. Этот технический профиль проверки вызывается из самозаверяющего технического профиля, который представляет и проверяет коды TOTP. Этот технический профиль проверки должен предшествовать вызову технических профилей проверки TOTP begin.

Входящие утверждения

Элемент InputClaims содержит список утверждений для отправки в многофакторную проверку подлинности Microsoft Entra. Вы также можете сопоставить имя утверждения с именем, определенным в техническом профиле MFA.

ClaimReferenceId (Идентификатор ссылки) Обязательно Описание
otpCode Да Код TOTP, предоставленный пользователем.

Исходящие утверждения

Поставщик протокола многофакторной проверки подлинности Microsoft Entra не возвращает выходные утверждения, поэтому не требуется указывать выходные утверждения.

Метаданные

Элемент метаданных содержит следующий атрибут.

Свойство Обязательно Описание
Operation Да Этот параметр должен содержать значение VerifyOTP.

Пример. Проверка TOTP

В следующем примере показан технический профиль многофакторной проверки подлинности Идентификатора Microsoft Entra, используемый для проверки кода 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>

Дальнейшие шаги