Определение технического профиля 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>