Dela via


Definiera en teknisk CAPTCHA-profil i en anpassad Azure Active Directory B2C-princip

Kommentar

I Azure Active Directory B2C är anpassade principer främst utformade för att hantera komplexa scenarier. I de flesta scenarier rekommenderar vi att du använder inbyggda användarflöden. Om du inte har gjort det kan du läsa mer om startpaketet för anpassad princip i Kom igång med anpassade principer i Active Directory B2C.

Med en helt automatiserad offentlig turing-test för att skilja dator och mänskligt från varandra (CAPTCHA) kan Azure Active Directory B2C (Azure AD B2C) förhindra automatiserade attacker. Azure AD B2C:s tekniska CAPTCHA-profil stöder både ljud- och visuella CAPTCHA-utmaningar.

Protokoll

Attributet Namn för protokollelementet måste anges till Proprietary. Hanterarattributet måste innehålla det fullständigt kvalificerade namnet på protokollhanterarsammansättningen som används av Azure AD B2C för CAPTCHA:Web.TPEngine.Providers.CaptchaProvider, Web.TPEngine, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null

Kommentar

Den här funktionen är i offentlig förhandsversion

I följande exempel visas en egensäkrad teknisk profil för e-postregistrering:

<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:s tekniska profilåtgärder

CAPTCHA:s tekniska profilåtgärder har två åtgärder:

  • Åtgärden Hämta utmaning genererar CAPTCHA-kodsträngen och visar den sedan i användargränssnittet med hjälp av en CAPTCHA-visningskontroll. Visningen innehåller en textruta för indata. Den här åtgärden instruerar användaren att ange de tecken som de ser eller hör i textrutan för indata. Användaren kan växla mellan typer av visuella och ljudutmaningar efter behov.

  • Kontrollera att kodåtgärden verifierar de tecken som användaren anger.

Hämta utmaning

Den första åtgärden genererar CAPTCHA-kodsträngen och visar den sedan i användargränssnittet.

Indataanspråk

Elementet InputClaims innehåller en lista över anspråk som ska skickas till Azure AD B2C:s CAPTCHA-tjänst.

ClaimReferenceId Obligatoriskt Beskrivning
challengeType Nej CAPTCHA-utmaningstypen, Ljud eller Visuellt objekt (standard).
azureregion Ja Tjänstregionen som hanterar CAPTCHA-utmaningsbegäran.

Visa anspråk

Elementet DisplayClaims innehåller en lista över anspråk som ska visas på skärmen för användaren att se. Användaren visas till exempel med CAPTCHA-utmaningskoden som ska läsas.

ClaimReferenceId Obligatoriskt Beskrivning
challengeString Ja CAPTCHA-utmaningskoden.

Utdataanspråk

Elementet OutputClaims innehåller en lista över anspråk som returneras av den tekniska CAPTCHA-profilen.

ClaimReferenceId Obligatoriskt Beskrivning
challengeId Ja En unik identifierare för CAPTCHA-utmaningskod.
challengeString Ja CAPTCHA-utmaningskoden.
azureregion Ja Tjänstregionen som hanterar CAPTCHA-utmaningsbegäran.

Metadata

Attribut Obligatoriskt Beskrivning
Åtgärd Ja Värdet måste vara GetChallenge.
Varumärke Ja Värdet måste vara HIP.

Exempel: Generera CAPTCHA-kod

I följande exempel visas en teknisk CAPTCHA-profil som du använder för att generera en kod:

<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>

Verifiera utmaning

Den andra åtgärden verifierar CAPTCHA-utmaningen.

Indataanspråk

Elementet InputClaims innehåller en lista över anspråk som ska skickas till Azure AD B2C:s CAPTCHA-tjänst.

ClaimReferenceId Obligatoriskt Beskrivning
challengeType Nej CAPTCHA-utmaningstypen, Ljud eller Visuellt objekt (standard).
challengeId Ja En unik identifierare för CAPTCHA som används för sessionsverifiering. Fylls i från GetChallenge-anropet .
captchaEntered Ja Utmaningskoden som användaren anger i textrutan för utmaningen i användargränssnittet.
azureregion Ja Tjänstregionen som hanterar CAPTCHA-utmaningsbegäran. Fylls i från GetChallenge-anropet .

Visa anspråk

Elementet DisplayClaims innehåller en lista över anspråk som ska visas på skärmen för att samla in indata från användaren.

ClaimReferenceId Obligatoriskt Beskrivning
captchaEntered Ja CAPTCHA-utmaningskoden som angetts av användaren.

Utdataanspråk

Elementet OutputClaims innehåller en lista över anspråk som returneras av den tekniska captcha-profilen.

ClaimReferenceId Obligatoriskt Beskrivning
challengeId Ja En unik identifierare för CAPTCHA som används för sessionsverifiering.
isCaptchaSolved Ja En flagga som anger om CAPTCHA-utmaningen har lösts.
orsak Ja Används för att kommunicera med användaren om försöket att lösa utmaningen lyckas eller inte.

Metadata

Attribut Obligatoriskt Beskrivning
Åtgärd Ja Värdet måste vara VerifyChallenge.
Varumärke Ja Värdet måste vara HIP.

Exempel: Verifiera CAPTCHA-kod

I följande exempel visas en teknisk CAPTCHA-profil som du använder för att verifiera en CAPTCHA-kod:

  <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>

Nästa steg