CAPTCHA 表示コントロールを使用して CAPTCHA チャレンジ文字列を確認する

CAPTCHA 表示コントロールを使用して CAPTCHA チャレンジ文字列を生成し、ユーザーに表示または聞こえるものを入力するように依頼して確認します。 CAPTCHA 表示コントロールを表示するには、セルフアサート技術プロファイルからそれを参照し、セルフアサート技術プロファイルのsetting.enableCaptchaChallengeメタデータ値を true に設定する必要があります。

スクリーンショットは、サインアップ ページに表示される CAPTCHA 表示コントロールを示しています。

Screenshot of CAPTCHA as it appears in the sign-up page.

サインアップ ページが CAPTCHA ディスプレイ コントロールと共に読み込まれます。 その後、ユーザーは、表示または読み上げられる文字を入力します。 [ 確認コード の送信] ボタンは、ユーザーの電子メールに確認コードを送信します。CAPTCHA 表示制御要素ではありませんが、CAPTCHA チャレンジ文字列が検証されます。

CAPTCHA 表示制御要素

次の表は、CAPTCHA 表示コントロールに含まれる要素をまとめたものです。

要素 必須 説明
UserInterfaceControlType はい 値は CaptchaControl である必要があります。
InputClaims はい CAPTCHA チャレンジの種類を指定し、チャレンジを一意に識別するために入力として必要な 1 つ以上の要求。
DisplayClaims はい CAPTCHA チャレンジ コードなどのユーザーに表示されるクレーム、またはユーザーから収集される要求 (ユーザーによるコード入力など)
OutputClaim いいえ ユーザーが CAPTCHA コード検証プロセスを完了した後にセルフアサート ページに返される要求。
アクション はい CAPTCHA 表示コントロールには、GetChallenge と VerifyChallenge の 2 つのアクションが含まれています
GetChallenge アクションによって生成され、ユーザー インターフェイスに CAPTCHA チャレンジ コードが表示されます。
VerifyChallenge アクションは、ユーザーが入力する CAPTCHA チャレンジ コードを検証します。

次の XML スニペット コードは、CaptchaProvider 表示コントロールの例を示しています。

<DisplayControls>
    ...
    <DisplayControl Id="captchaControlChallengeCode" UserInterfaceControlType="CaptchaControl" DisplayName="Help us beat the bots">
      <InputClaims>
        <InputClaim ClaimTypeReferenceId="challengeType" />
        <InputClaim ClaimTypeReferenceId="challengeId" />
      </InputClaims>
    
      <DisplayClaims>
        <DisplayClaim ClaimTypeReferenceId="challengeType" ControlClaimType="ChallengeType" />
        <DisplayClaim ClaimTypeReferenceId="challengeId" ControlClaimType="ChallengeId" />
        <DisplayClaim ClaimTypeReferenceId="challengeString" ControlClaimType="ChallengeString" />
        <DisplayClaim ClaimTypeReferenceId="captchaEntered" ControlClaimType="CaptchaEntered" />
      </DisplayClaims>
    
      <Actions>
        <Action Id="GetChallenge">
          <ValidationClaimsExchange>
            <ValidationClaimsExchangeTechnicalProfile
              TechnicalProfileReferenceId="HIP-GetChallenge" />
          </ValidationClaimsExchange>
        </Action>
    
        <Action Id="VerifyChallenge">
          <ValidationClaimsExchange>
            <ValidationClaimsExchangeTechnicalProfile
              TechnicalProfileReferenceId="HIP-VerifyChallenge" />
          </ValidationClaimsExchange>
        </Action>
      </Actions>
    </DisplayControl>
    ...
</DisplayControls>

次のステップ