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


Определение технического профиля CAPTCHA в пользовательской политике Azure Active Directory B2C

Это важно

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

Замечание

В Azure Active Directory B2C пользовательские политики преимущественно предназначены для выполнения сложных сценариев. В большинстве случаев рекомендуется использовать встроенные потоки пользователей. Ознакомьтесь со статьей Начало работы с настраиваемыми политиками в Azure Active Directory B2C, чтобы узнать о базовом пакете настраиваемых политик, если еще не сделали этого.

Полностью автоматизированные открытые тесты turing для управления компьютером и человеческим отделом (CAPTCHA) позволяют Azure Active Directory B2C (Azure AD B2C) предотвратить автоматизированные атаки. Технический профиль CAPTCHA Azure AD B2C поддерживает как типы вызовов аудио, так и визуального CAPTCHA.

Протокол

Атрибуту Name элемента Protocol необходимо присвоить значение Proprietary. Атрибут обработчика должен содержать полное имя сборки обработчика протокола, используемой Azure AD B2C для CAPTCHA: Web.TPEngine.Providers.CaptchaProvider, Web.TPEngine, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null

Замечание

Эта функция доступна в общедоступной предварительной версии

В следующем примере показан самозаверяющийся технический профиль для регистрации электронной почты:

<TechnicalProfile Id="HIP-GetChallenge">
  <DisplayName>Email signup</DisplayName>
  <Protocol Name="Proprietary" Handler="Web.TPEngine.Providers.CaptchaProvider, Web.TPEngine, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null" />

Операции технического профиля CAPTCHA

Операции технического профиля CAPTCHA имеют две операции:

  • Операция вызова создает строку кода CAPTCHA, а затем отображает ее в пользовательском интерфейсе с помощью элемента управления отображения CAPTCHA. Отображение включает входное текстовое поле. Эта операция направляет пользователя на ввод символов, которые они видят или слышат в текстовое поле ввода. Пользователь может переключаться между типами задач визуального элемента и аудио по мере необходимости.

  • Проверка операции кода проверяет входные символы пользователем.

Получение задачи

Первая операция создает строку кода CAPTCHA, а затем отображает ее в пользовательском интерфейсе.

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

Элемент InputClaims содержит список утверждений для отправки в службу CAPTCHA Azure AD B2C.

ClaimReferenceId (Идентификатор ссылки) Обязательно Описание
тип вызова нет Тип вызова CAPTCHA, Audio или Visual (по умолчанию).
Azure Region Да Регион службы, обслуживающий запрос на вызов CAPTCHA.

Отображаемые утверждения

Элемент DisplayClaims содержит список утверждений, которые будут представлены на экране для просмотра пользователем. Например, пользователь предоставляет код запроса CAPTCHA для чтения.

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

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

Элемент OutputClaims содержит список утверждений, возвращаемых техническим профилем CAPTCHA.

ClaimReferenceId (Идентификатор ссылки) Обязательно Описание
challengeId Да Уникальный идентификатор кода запроса CAPTCHA.
challengeString Да Код вызова CAPTCHA.
Azure Region Да Регион службы, обслуживающий запрос на вызов CAPTCHA.

Метаданные

Свойство Обязательно Описание
Операция Да Значение должно быть GetChallenge.
Бренд Да Значение должно быть HIP.

Пример. Создание кода CAPTCHA

В следующем примере показан технический профиль CAPTCHA, используемый для создания кода:

<TechnicalProfile Id="HIP-GetChallenge">
  <DisplayName>GetChallenge</DisplayName>
  <Protocol Name="Proprietary" Handler="Web.TPEngine.Providers.CaptchaProvider, Web.TPEngine, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null" />

  <Metadata>
    <Item Key="Operation">GetChallenge</Item>
    <Item Key="Brand">HIP</Item>
  </Metadata>

  <InputClaims>
    <InputClaim ClaimTypeReferenceId="challengeType" />
  </InputClaims>

  <DisplayClaims>
    <DisplayClaim ClaimTypeReferenceId="challengeString" />
  </DisplayClaims>

  <OutputClaims>
    <OutputClaim ClaimTypeReferenceId="challengeId" />
    <OutputClaim ClaimTypeReferenceId="challengeString" PartnerClaimType="ChallengeString" />
    <OutputClaim ClaimTypeReferenceId="azureregion" />
  </OutputClaims>

</TechnicalProfile>

Проверка проблемы

Вторая операция проверяет проблему CAPTCHA.

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

Элемент InputClaims содержит список утверждений для отправки в службу CAPTCHA Azure AD B2C.

ClaimReferenceId (Идентификатор ссылки) Обязательно Описание
тип вызова нет Тип вызова CAPTCHA, Audio или Visual (по умолчанию).
challengeId Да Уникальный идентификатор CAPTCHA, используемый для проверки сеанса. Заполнено из вызова GetChallenge .
captcha Ввод Да Код задачи, который пользователь вводит в текстовое поле вызова в пользовательском интерфейсе.
Azure Region Да Регион службы, обслуживающий запрос на вызов CAPTCHA. Заполнено из вызова GetChallenge .

Отображаемые утверждения

Элемент DisplayClaims содержит список утверждений, которые будут представлены на экране для сбора входных данных от пользователя.

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

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

Элемент OutputClaims содержит список утверждений, возвращаемых техническим профилем captcha.

ClaimReferenceId (Идентификатор ссылки) Обязательно Описание
challengeId Да Уникальный идентификатор CAPTCHA, используемый для проверки сеанса.
isCaptchaSolved Да Флаг, указывающий, успешно ли решена задача CAPTCHA.
причина Да Используется для обмена данными с пользователем, является ли попытка решить проблему успешной или нет.

Метаданные

Свойство Обязательно Описание
Операция Да Значение должно быть ПровереноChallenge.
Бренд Да Значение должно быть HIP.

Пример. Проверка кода CAPTCHA

В следующем примере показан технический профиль CAPTCHA, используемый для проверки кода CAPTCHA:

  <TechnicalProfile Id="HIP-VerifyChallenge">
    <DisplayName>Verify Code</DisplayName>
    <Protocol Name="Proprietary" Handler="Web.TPEngine.Providers.CaptchaProvider, Web.TPEngine, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null" />
    <Metadata>
      <Item Key="Brand">HIP</Item>
      <Item Key="Operation">VerifyChallenge</Item>
    </Metadata>

    <InputClaims>
      <InputClaim ClaimTypeReferenceId="challengeType" DefaultValue="Visual" />
      <InputClaim ClaimTypeReferenceId="challengeId" />
      <InputClaim ClaimTypeReferenceId="captchaEntered" PartnerClaimType="inputSolution" Required="true" />
      <InputClaim ClaimTypeReferenceId="azureregion" />
    </InputClaims>

    <DisplayClaims>
      <DisplayClaim ClaimTypeReferenceId="captchaEntered" />
    </DisplayClaims>

    <OutputClaims>
      <OutputClaim ClaimTypeReferenceId="challengeId" />
      <OutputClaim ClaimTypeReferenceId="isCaptchaSolved" PartnerClaimType="solved" />
      <OutputClaim ClaimTypeReferenceId="reason" PartnerClaimType="reason" />
    </OutputClaims>

  </TechnicalProfile>

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