Notitie
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen u aan te melden of de directory te wijzigen.
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen de mappen te wijzigen.
Belangrijk
Vanaf 1 mei 2025 is Azure AD B2C niet meer beschikbaar voor nieuwe klanten. Meer informatie vindt u in onze veelgestelde vragen.
Voordat u begint, gebruikt u de selector Een beleidstype kiezen boven aan deze pagina om het type beleid te kiezen dat u instelt. U kunt in Azure Active Directory B2C op twee manieren definiƫren hoe gebruikers met uw toepassingen communiceren: via vooraf gedefinieerde gebruikersstromen of via volledig configureerbaar aangepast beleid. De stappen die in dit artikel zijn vereist, verschillen voor elke methode.
Met Azure Active Directory B2C (Azure AD B2C) kunt u CAPTCHA inschakelen om geautomatiseerde aanvallen op uw consumententoepassingen te voorkomen. De CAPTCHA van Azure AD B2C ondersteunt zowel audio- als visuele CAPTCHA-uitdagingen. U kunt deze beveiligingsfunctie inschakelen in zowel registratie- als aanmeldingsstromen voor uw lokale accounts. CAPTCHA is niet van toepassing op aanmelding van sociale id-providers.
Opmerking
Deze functie is beschikbaar als openbare preview
Vereiste voorwaarden
- Maak een gebruikersstroom, zodat gebruikers zich bij uw toepassing kunnen registreren en aanmelden.
- Registreer een web-app.
- Voltooi de stappen in Aan de slag met aangepaste policies in Active Directory B2C. In deze zelfstudie leert u hoe u aangepaste beleidsbestanden bijwerkt voor het gebruik van uw Azure AD B2C-tenantconfiguratie.
- Registreer een web-app.
CAPTCHA inschakelen
Meld u aan bij het Azure-portaal.
Als u toegang hebt tot meerdere tenants, selecteert u het pictogram Instellingen in het hoofdmenu om over te schakelen naar uw Azure AD B2C-tenant vanuit het menu Mappen + abonnementen.
Selecteer in het linkermenu Azure AD B2C. Of selecteer Alle services en zoek naar en selecteer Azure AD B2C.
Selecteer gebruikersstromen.
Selecteer de gebruikersstroom waarvoor u CAPTCHA wilt inschakelen. Bijvoorbeeld B2C_1_signinsignup.
Selecteer Eigenschappen.
Selecteer onder CAPTCHA (preview) de stroom waarvoor CAPTCHA moet worden ingeschakeld, zoals CAPTCHA inschakelen - Registreren.
Selecteer Opslaan.
De gebruikersstroom testen
Gebruik de stappen in De gebruikersstroom testen om te testen of CAPTCHA is ingeschakeld voor uw gekozen stroom. U zou gevraagd moeten worden om de tekens in te voeren die u ziet of hoort, afhankelijk van het gekozen CAPTCHA-type, visueel of audio.
Als u CAPTCHA wilt inschakelen in uw aangepaste beleid, moet u uw bestaande aangepaste beleidsbestanden bijwerken. Als u geen bestaande aangepaste beleidsbestanden hebt, downloadt u het .zip-bestand of kloont u de opslagplaats van https://github.com/Azure-Samples/active-directory-b2c-custom-policy-starterpack. In dit artikel werken we de XML-bestanden bij in de map /Display Controls Starterpack/LocalAccounts/ .
Aanspraken indienen
U hebt meer claims nodig om CAPTCHA in te schakelen in uw aangepaste beleid:
Open in VS Code het bestand TrustFrameworkBase.XML .
Declareer claims in de
ClaimsSchemasectie met behulp van de volgende code:<!--<ClaimsSchema>--> ... <ClaimType Id="inputSolution"> <DataType>string</DataType> </ClaimType> <ClaimType Id="solved"> <DataType>boolean</DataType> </ClaimType> <ClaimType Id="reason"> <DataType>string</DataType> </ClaimType> <ClaimType Id="azureregion"> <DataType>string</DataType> </ClaimType> <ClaimType Id="challengeId"> <DisplayName>The ID of the generated captcha</DisplayName> <DataType>string</DataType> <UserHelpText>Captcha challenge identifier</UserHelpText> <UserInputType>Paragraph</UserInputType> </ClaimType> <ClaimType Id="challengeType"> <DisplayName>Type of captcha (visual / audio)</DisplayName> <DataType>string</DataType> <UserHelpText>Captcha challenge type</UserHelpText> <UserInputType>Paragraph</UserInputType> </ClaimType> <ClaimType Id="challengeString"> <DisplayName>Captcha challenge code</DisplayName> <DataType>string</DataType> <UserHelpText>Captcha challenge code</UserHelpText> <UserInputType>Paragraph</UserInputType> </ClaimType> <ClaimType Id="captchaEntered"> <DisplayName>Captcha entered by the user</DisplayName> <DataType>string</DataType> <UserHelpText>Enter the characters you see</UserHelpText> <UserInputType>TextBox</UserInputType> </ClaimType> <ClaimType Id="isCaptchaSolved"> <DisplayName>Flag indicating that the captcha was successfully solved</DisplayName> <DataType>boolean</DataType> </ClaimType> <ClaimType Id="mfaCaptchaEnabled"> <DisplayName>flag used to control captcha enabled in MFA</DisplayName> <DataType>string</DataType> </ClaimType> <ClaimType Id="signupCaptchaEnabled"> <DisplayName>flag used to control captcha enabled during signup</DisplayName> <DataType>string</DataType> </ClaimType> <ClaimType Id="signinCaptchaEnabled"> <DisplayName>flag used to control captcha enabled during signin</DisplayName> <DataType>string</DataType> </ClaimType> ... <!--<ClaimsSchema>-->
Een weergavebeheer configureren
Als u CAPTCHA wilt inschakelen voor uw aangepaste beleid, gebruikt u een CAPTCHA-weergavebeheer. Het CAPTCHA-weergavebeheer genereert en geeft de CAPTCHA-afbeelding weer.
Zoek in het bestand TrustFrameworkBase.XML het DisplayControls element en voeg vervolgens het volgende weergavebeheer toe als onderliggend element. Als u nog geen element hebt DisplayControls , voegt u er een toe.
<!--<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>-->
Een CAPTCHA-technisch profiel configureren
Het technische profiel van Azure AD B2C CAPTCHA controleert de CAPTCHA-uitdaging. Dit technische profiel kan een CAPTCHA-code genereren of controleren, afhankelijk van hoe u dit configureert.
Zoek in het bestand TrustFrameworkBase.XML het ClaimsProviders element en voeg de claimprovider toe met behulp van de volgende code:
<!--<ClaimsProvider>-->
...
<ClaimsProvider>
<DisplayName>HIPChallenge</DisplayName>
<TechnicalProfiles>
<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>
<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>
</TechnicalProfiles>
</ClaimsProvider>
...
<!--<ClaimsProviders>-->
Het technische CAPTCHA-profiel dat u configureert met de GetChallenge-bewerking genereert en geeft de CAPTCHA-uitdagingtekenreeks weer. Het technische CAPTCHA-profiel dat u configureert met VerifyChallenge controleert de vraagtekenreeks die de gebruiker invoert.
Pagina-indelingen van inhoudsdefinities bijwerken
Gebruik voor de verschillende pagina-indelingen de volgende versies van de pagina-indeling:
| Pagina-indeling | Versiebereik pagina-indeling |
|---|---|
| Zelfverzekerd | >=2.1.33 |
| Verenigde ssp | >=2.1.21 |
| Meervoudige factor | >=1.2.19 |
Voorbeeld:
Zoek in het TrustFrameworkBase.XML-bestand onder het ContentDefinitions element een inhoudsdefinitie met Id="api.localaccountsignup" en werkt vervolgens de Bijbehorende DataUri bij, zoals wordt weergegeven in de volgende code:
<!---<ContentDefinitions>-->
...
<ContentDefinition Id="api.localaccountsignup">
...
<!--Update this DataUri-->
<DataUri>urn:com:microsoft:aad:b2c:elements:contract:selfasserted:2.1.27</DataUri>
...
</ContentDefinition>
...
<!---</ContentDefinitions>-->
We geven de eigenverklaarde versie van de paginaopmaak op als 2.1.27.
Zodra u uw technische profielen en weergavebesturingselementen hebt geconfigureerd, kunt u de stroom opgeven waarvoor u CAPTCHA wilt inschakelen.
CAPTCHA inschakelen voor registratie- of aanmeldingsstroom
Als u CAPTCHA wilt inschakelen voor uw registratie- of aanmeldingsstroom, gebruikt u de volgende stappen:
Inspecteer uw aanmeld- of inlogtraject, zoals SignUpOrSignIn, om het zelfverklaarde technische profiel te identificeren dat uw aanmeld- of inlogervaring weergeeft.
Voeg in het technische profiel, zoals LocalAccountSignUpWithLogonEmail, een metagegevenssleutel en een weergaveclaimvermelding toe, zoals wordt weergegeven in de volgende code:
<TechnicalProfile Id="LocalAccountSignUpWithLogonEmail">
...
<Metadata>
...
<!--Add this metadata entry. Set value to true to activate CAPTCHA-->
<Item Key="setting.enableCaptchaChallenge">true</Item>
...
</Metadata>
...
<DisplayClaims>
...
<!--Add this display claim, which is a reference to the captcha display control-->
<DisplayClaim DisplayControlReferenceId="captchaControlChallengeCode" />
...
</DisplayClaims>
...
</TechnicalProfile>
De weergaveclaimvermelding verwijst naar het weergavebeheer dat u eerder hebt geconfigureerd.
CAPTCHA inschakelen in MFA-proces
Als u CAPTCHA in de MFA-stroom wilt inschakelen, moet u een update uitvoeren in twee technische profielen, namelijk in de zelfbevestigd technische profiel en in het technische profiel voor de telefoonfactor:
Inspecteer uw gebruikersreis voor aanmelding en inloggen, zoals SignUpOrSignIn, om het zelfverklaarde technische profiel en technische profielen van de telefoonfactor te identificeren die verantwoordelijk zijn voor uw aanmeldings- of inlogstroom.
Voeg in beide technische profielen een metagegevenssleutel en een weergaveclaimvermelding toe, zoals wordt weergegeven in de volgende code:
<TechnicalProfile Id="PhoneFactor-InputOrVerify">
...
<Metadata>
...
<!--Add this metadata entry. Value set to true-->
<Item Key="setting.enableCaptchaChallenge">true</Item>
...
</Metadata>
...
<DisplayClaims>
...
<!--Add this display claim-->
<DisplayClaim DisplayControlReferenceId="captchaControlChallengeCode" />
...
</DisplayClaims>
...
</TechnicalProfile>
CapTCHA-functievlag inschakelen
Als u CAPTCHA wilt afdwingen tijdens het registreren, aanmelden of MFA, moet u een technisch profiel toevoegen dat een functievlag voor elk scenario mogelijk maakt en vervolgens het technische profiel in het gebruikerstraject aanroept.
- Zoek in het bestand TrustFrameworkBase.XML het
ClaimsProviderselement en voeg de claimprovider toe met behulp van de volgende code:
<!--<ClaimsProvider>-->
...
<ClaimsProvider>
<DisplayName>Set Feature Flags</DisplayName>
<TechnicalProfiles>
<TechnicalProfile Id="SetFeatureDefaultValue">
<DisplayName>Set Feature Flags</DisplayName>
<Protocol Name="Proprietary" Handler="Web.TPEngine.Providers.ClaimsTransformationProtocolProvider, Web.TPEngine, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null" />
<OutputClaims>
<OutputClaim ClaimTypeReferenceId="signupCaptchaEnabled" DefaultValue="true" />
<OutputClaim ClaimTypeReferenceId="signinCaptchaEnabled" DefaultValue="true" />
<OutputClaim ClaimTypeReferenceId="mfaCaptchaEnabled" DefaultValue="true" />
</OutputClaims>
</TechnicalProfile>
</TechnicalProfiles>
</ClaimsProvider>
...
<!--<ClaimsProviders>-->
Ingesteld
DefaultValueop waar of onwaar, afhankelijk van het CAPTCHA-scenarioVoeg het technische profiel met functievlagken toe aan het gebruikerstraject en werk vervolgens de volgorde van de rest van de indelingsstappen bij.
<!--<UserJourneys>-->
...
<UserJourney Id="SignUpOrSignIn">
<OrchestrationSteps>
<!--Add this orchestration step-->
<OrchestrationStep Order="1" Type="ClaimsExchange">
<ClaimsExchanges>
<ClaimsExchange Id="SetFeatureDefaultValue" TechnicalProfileReferenceId="SetFeatureDefaultValue" />
</ClaimsExchanges>
</OrchestrationStep>
...
<!--<UserJourneys>-->
De aangepaste beleidsbestanden uploaden
Gebruik de stappen in Het beleid uploaden om uw aangepaste beleidsbestanden te uploaden.
Het aangepaste beleid testen
Gebruik de stappen in Test het aangepaste beleid om te testen en te bevestigen dat CAPTCHA is ingeschakeld voor uw gekozen flow. U zou gevraagd moeten worden om de tekens in te voeren die u ziet of hoort, afhankelijk van het gekozen CAPTCHA-type, visueel of audio.
Opmerking
- U kunt CAPTCHA niet toevoegen aan een MFA-stap in een gebruikersstroom voor alleen aanmelding.
- In een MFA-stroom is CAPTCHA van toepassing wanneer de door u geselecteerde MFA-methode sms of telefoongesprek is, of alleen sms of alleen telefoongesprek.
Verwante inhoud
- Leer hoe je een CAPTCHA-technisch profiel definieert.
- Meer informatie over het configureren van captcha-weergavebeheer.