Delen via


Een technisch CAPTCHA-profiel definiëren in een aangepast Azure Active Directory B2C-beleid

Notitie

In Azure Active Directory B2C is aangepast beleid voornamelijk bedoeld om met complexe scenario's om te gaan. Voor de meeste scenario's wordt aangeraden ingebouwde gebruikersstromen te gebruiken. Als u dit nog niet hebt gedaan, vindt u meer informatie over aangepast beleid in het starterspakket in Aan de slag met aangepaste beleidsregels in Active Directory B2C.

Met een volledig geautomatiseerde openbare Turing-tests om captcha-profielen (Computer and Human Apart) te vertellen, kunnen Azure Active Directory B2C (Azure AD B2C) geautomatiseerde aanvallen voorkomen. Het technische profiel CAPTCHA van Azure AD B2C biedt ondersteuning voor zowel audio- als visuele CAPTCHA-uitdagingentypen.

Protocol

Het kenmerk Naam van het element Protocol moet worden ingesteld op Proprietary. Het handlerkenmerk moet de volledig gekwalificeerde naam bevatten van de protocolhandlerassembly die wordt gebruikt door Azure AD B2C voor CAPTCHA: Web.TPEngine.Providers.CaptchaProvider, Web.TPEngine, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null

Notitie

Deze functie is beschikbaar als openbare preview

Het volgende voorbeeld bevat een zelf-gecontroleerd technisch profiel voor e-mailregistratie:

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

CAPTCHA technische profielbewerkingen hebben twee bewerkingen:

  • Get challenge-bewerking genereert de CAPTCHA-codetekenreeks en geeft deze vervolgens weer op de gebruikersinterface met behulp van een CAPTCHA-weergavebeheer. De weergave bevat een invoertekstvak. Met deze bewerking kan de gebruiker de tekens invoeren die ze zien of horen in het invoertekstvak. De gebruiker kan naar behoefte schakelen tussen visuele en audiovraagtypen.

  • Controleer of de codebewerking de tekens verifieert die door de gebruiker worden ingevoerd.

Vraag de uitdaging aan

De eerste bewerking genereert de CAPTCHA-codetekenreeks en geeft deze vervolgens weer in de gebruikersinterface.

Invoerclaims

Het element InputClaims bevat een lijst met claims die moeten worden verzonden naar de CAPTCHA-service van Azure AD B2C.

ClaimReferenceId Vereist Beschrijving
challengeType Nee Het type CAPTCHA-uitdaging, audio of visual (standaard).
azureregio Ja De serviceregio die de CAPTCHA-uitdagingsaanvraag dient.

Claims weergeven

Het element DisplayClaims bevat een lijst met claims die op het scherm moeten worden weergegeven, zodat de gebruiker deze kan zien. De gebruiker krijgt bijvoorbeeld de CAPTCHA-uitdagingscode te zien die moet worden gelezen.

ClaimReferenceId Vereist Beschrijving
challengeString Ja De CAPTCHA-uitdagingscode.

Uitvoerclaims

Het element OutputClaims bevat een lijst met claims die worden geretourneerd door het technische CAPTCHA-profiel.

ClaimReferenceId Vereist Beschrijving
challengeId Ja Een unieke id voor CAPTCHA-uitdagingscode.
challengeString Ja De CAPTCHA-uitdagingscode.
azureregio Ja De serviceregio die de CAPTCHA-uitdagingsaanvraag dient.

Metagegevens

Kenmerk Vereist Beschrijving
Operation Ja De waarde moet GetChallenge zijn.
Merk Ja De waarde moet HIP zijn.

Voorbeeld: CAPTCHA-code genereren

In het volgende voorbeeld ziet u een technisch CAPTCHA-profiel dat u gebruikt om een code te genereren:

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

Vraag controleren

De tweede bewerking controleert de CAPTCHA-uitdaging.

Invoerclaims

Het element InputClaims bevat een lijst met claims die moeten worden verzonden naar de CAPTCHA-service van Azure AD B2C.

ClaimReferenceId Vereist Beschrijving
challengeType Nee Het type CAPTCHA-uitdaging, audio of visual (standaard).
challengeId Ja Een unieke id voor CAPTCHA die wordt gebruikt voor sessieverificatie. Ingevuld vanuit de aanroep GetChallenge .
captchaEntered Ja De uitdagingscode die de gebruiker invoert in het tekstvak voor de uitdaging in de gebruikersinterface.
azureregio Ja De serviceregio die de CAPTCHA-uitdagingsaanvraag dient. Ingevuld vanuit de aanroep GetChallenge .

Claims weergeven

Het element DisplayClaims bevat een lijst met claims die op het scherm moeten worden weergegeven voor het verzamelen van invoer van de gebruiker.

ClaimReferenceId Vereist Beschrijving
captchaEntered Ja De CAPTCHA-uitdagingscode die door de gebruiker is ingevoerd.

Uitvoerclaims

Het element OutputClaims bevat een lijst met claims die worden geretourneerd door het technische profiel captcha.

ClaimReferenceId Vereist Beschrijving
challengeId Ja Een unieke id voor CAPTCHA die wordt gebruikt voor sessieverificatie.
isCaptchaSolved Ja Een vlag die aangeeft of de CAPTCHA-uitdaging is opgelost.
reason Ja Wordt gebruikt om de gebruiker te laten weten of de poging om de uitdaging op te lossen al dan niet succesvol is.

Metagegevens

Kenmerk Vereist Beschrijving
Operation Ja Waarde moet VerifyChallenge zijn.
Merk Ja De waarde moet HIP zijn.

Voorbeeld: CAPTCHA-code verifiëren

In het volgende voorbeeld ziet u een technisch CAPTCHA-profiel dat u gebruikt om een CAPTCHA-code te verifiëren:

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

Volgende stappen