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>