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


Определение технического профиля CAPTCHA в пользовательской политике Azure Active Directory 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 Обязательное поле Описание
challengeType No Тип вызова CAPTCHA, Audio или Visual (по умолчанию).
azureregion Да Регион службы, обслуживающий запрос на вызов CAPTCHA.

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

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

ClaimReferenceId Обязательное поле Описание
challengeString Да Код вызова CAPTCHA.

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

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

ClaimReferenceId Обязательное поле Описание
challengeId Да Уникальный идентификатор кода запроса CAPTCHA.
challengeString Да Код вызова CAPTCHA.
azureregion Да Регион службы, обслуживающий запрос на вызов 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 Обязательное поле Описание
challengeType No Тип вызова CAPTCHA, Audio или Visual (по умолчанию).
challengeId Да Уникальный идентификатор CAPTCHA, используемый для проверки сеанса. Заполнено из вызова GetChallenge .
captcha Ввод Да Код задачи, который пользователь вводит в текстовое поле вызова в пользовательском интерфейсе.
azureregion Да Регион службы, обслуживающий запрос на вызов CAPTCHA. Заполнено из вызова GetChallenge .

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

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

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

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

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

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

Метаданные

Атрибут Обязательное поле Описание
Операция Да Значение должно быть Проверено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>

Следующие шаги