Door Danny Paul van Iersel, 04-06-2024
Aangepast beleid starten:
In ons eerste deel heeft u gelezen hoe u de Sitecore configuratie moet inistellen om de B2C authenticatie op te zetten binnen Sitecore: Sitecore authentication with Azure B2C Custom policies Part 1
Nu zullen we verder gaan om de B2C custom policies op te zetten en te configureren.
De eenvoudigste manier om aan de slag te gaan is door de meegeleverde stromen van de B2C te gebruiken, zoals de stroom 'Aanmelden en registreren. Je kunt snel testen of je verbinding werkt.
Maar als we echt meer willen bereiken met onze stromen, kunnen we aangepast beleid instellen. Op het Microsoft leerplatform vind je een tutorial hoe je aan de slag kunt met beleid op maat
Ga binnen onze B2C-tenant naar Identity Experience Framework.
Ga naar Beleidssleutels (Policy keys):
Beleidssleutels:
- Ondertekeningssleutel maken
- Maak een coderingssleutel
App-registratie:
- Registreer de IdentityExperienceFramework-applicatie
- Registreer de ProxyIdentityExperienceFramework-toepassing
Begin met het bewerken van uw beleid:
- U kunt een exemplaar van het Starterpakket verkrijgen bij:
git kloon https://github.com/Azure-Samples/active-directory-b2c-custom-policy-starterpack- Deze bevat een aantal mappen, afhankelijk van uw behoeften kunt u kiezen uit welk type u start.
- Wijzig alle bestanden:
- “uw Tenant naam” in de naam van uw daadwerkelijke B2C-Tenant
- Wijzig TrustFrameworkExtensions.xml
- Zoek het technische profiel met ID “login-NonInteractive”
- Wijzig zowel de metadata als beide inputclaims
- ProxyIdentityExperienceFrameworkAppId: in de applicatie-ID (client) van “ProxyIdentityExperienceFramework-applicatie”
- IdentityExperienceFrameworkAppId: in de applicatie-ID (client) van “IdentityExperienceFramework-applicatie”
Uw bestanden uploaden
Ga in uw B2C Tenant naar het Identity Experience Framework:
Registreer uw aanvraag.
Een nieuwe registratie toevoegen:
- Vul de naam van uw aanvraag in
- Kies welke accounts worden ondersteund
- Omleidings-URI:
- Dit is de URL die naar onze applicatie wordt doorgestuurd zodra een gebruiker zich heeft aangemeld
Voorbeeld: https://uw.domein/signin-oidc
Vanuit het “Aangepast beleid” kunt u uw aangepaste beleid uploaden dat we verderop zullen maken.
Aangepast beleid dat is gemaakt, wordt hieronder weergegeven
Wanneer u een aangepast beleid wijzigt dat al bestaat, zorg er dan voor dat u het selectievakje 'Overschrijf het aangepaste beleid als het al bestaat' aanvinkt.
Instelling “wachtwoordstroom vergeten”
Door de gids te volgen op https://learn.microsoft.com/en-us/azure/active-directory-b2c/add-password-reset-policy?pivots=b2c-custom-policy
U kunt het gedrag van de stroom 'Wachtwoord vergeten' aanpassen. Bij de standaardstroom zal dit een omleiding naar uw applicatie veroorzaken, vanwaar u de stroom voor het opnieuw instellen van het wachtwoord kunt starten. Met aangepast beleid kunt u ervoor zorgen dat de stroom binnen de B2C-stroom blijft en doorgaat zonder terug te keren naar uw applicatie.
Pas hiervoor de volgende bestanden aan.
TrusFrameworkBase.xml:
- Zorg ervoor dat de versie van de “Pagina-indelingsversie” is ingesteld op 2.1.2 of hoger.
- Stel de ondersteunde pagina-indeling in op api.signuporsignin
- <DataUri>urn:com:microsoft:aad:b2c:elements:contract:unifiedssp:2.1.18</DataUri>
TrustFrameworkExtensions.xml:
- ClaimsSchema maken (indien nog niet bestaand)
- ClaimType aanmaken met id “isForgotPassword”
- Maak een technisch profiel aan met een protocol: Name="Proprietary" Handler="Web.TPEngine.Providers.ClaimsTransformationProtocolProvider, Web.TPEngine, Version=1.0.0.0, Culture=neutraal, PublicKeyToken=nul
- Stel de OutputClaim in
- Voeg een SubJourney toe
- Kopieer de UserJourney: Id="SignUpOrSignIn", van TrusFrameworkBase.xml
- Wijzig de ID naar “CustomSignUpSignIn”
- Wijzig de eerste OrchestrationStep:
- Voeg een ClaimsProviderSelection toe
-
-
- Ga naar de tweede OrchestrationStep en voeg een nieuwe ClaimsExchange toe
-
-
-
- Maak een nieuwe OrchestrationStep van het type InvokeSubJourney
- Herschik de resterende OrchestrationSteps zodat het ordernummer opeenvolgend is.
-
SignUpOrSignin.xml:
- Configureer de standaard “UserJourney”
- <DefaultUserJourney ReferenceId="CustomSignUpSignIn" />
- Uitvoerclaim toevoegen:
Weergavenaam instellen
Bij het aanmeldingsproces wilt u soms niet dat gebruikers hun eigen DisplayName invoeren.
Als de DisplayName niet bij het aanmeldingsformulier wordt vermeld, zorgt dit ervoor dat het gedrag in de gebruikerslijst van uw B2C er vreemd uitziet. Standaard wordt namelijk de kolom Weergavenaam getoond en voor iedere gebruiker staat “onbekend”. Wat het lezen wat lastig maakt.
Om dit te doen hebben we de volgende wijzigingen nodig in onze TrustFrameWorkBase.xml
- Claimtransformatie creëren
- Maak een technisch profiel
- Protocol ClaimsTransformationProtocolProvider
- Validatie technisch profiel instellen
Voer ClaimsTransformation in met opzoeken als uitvoer ClaimsTransformation
Scenario:
Om te controleren of een opgegeven e-mailadres een gebruiker mag aanmaken.
- Maak twee claimtypen:
- Domein
- domeinStatus
- Creëer 2 claimtransformaties:
- GetDomainFromEmail
-
- Opzoekdomein
- Maak een technisch profiel aan
- Gebruik het protocol “Web.TPEngine.Providers.ClaimsTransformationProtocolProvider”
- Stel de InputClaimsTransformations in om GetDomainFromEmail uit te voeren
- Hiermee wordt het e-mailadres verzameld en het domein uitgepakt
- Stel OutputClaim in om het geëxtraheerde domein te gebruiken
- Voor de OutputClaimsTransformation gebruiken we de LookupDomain ClaimsTransformation
- Hierdoor wordt het domein in de lijst opgezocht en wordt gekeken of het geldig is. Als het domein niet in de lijst staat, wordt de errorOnFailedLookup geretourneerd
- Voeg ValidationTechnicalProfile toe aan het technische profiel dat gebruikmaakt van het Protocol SelfAssertedAttributeProvider waar we deze validatie willen opnemen
- Voeg een nieuwe ValidationTechnicalProfiles toe (als de ValidationTechnicalProfiles-tag niet bestaat, voeg deze dan eerst toe.)
- Bewaar en upload uw wijzigingen naar B2C - Identity Experience Framework als aangepast beleid.
Roep een Rest API aan in B2C Custom Policy
Als u complexe applicatielogica heeft die moet worden geïmplementeerd, heeft u de mogelijkheid om vanuit het B2C-beleid een Rest API aan te roepen
Ervan uitgaande dat we al een API hebben om aan te roepen die een HTTP 200 OK antwoord retourneert als de validatie is goedgekeurd.
Als de controle niet wordt goedgekeurd, moet deze een HTTP 409 conflict als antwoord retourneren.
Om deze vereiste in te stellen, hebben we het volgende nodig:
- Een nieuw technisch profiel
- Dit maakt gebruik van het protocol “Web.TPEngine.Providers.RestfulProvider”
- Gebruik de metadatavelden
- ServiceUrl à de URL van uw API-aanroep
- SendClaimsIn à waar de claimwaarden moeten worden geplaatst
- Body (dwingt dat de oproep als POST wordt gebruikt)
- Formulier (dwingt dat de oproep als POST wordt gebruikt)
- Header (dwingt het gebruik van de oproep als GET)
- URL (dwingt af dat de oproep als GET wordt gebruikt)
- QueryString (dwingt af dat de oproep als GET wordt gebruikt)
- Stelt in dat InputClaims naar de API worden verzonden
U kunt alle metadata, foutafhandeling, cryptografische sleutels, invoer- en uitvoerparameters controleren op: https://learn.microsoft.com/en-us/azure/active-directory-b2c/restful-technical-profile
Om ons TechnicalProfile te gebruiken, moeten we het toevoegen aan het ValidationTechnicalProfile.
In onze code van de API sturen we, als deze wordt goedgekeurd, een OK-bericht:
Als het niet in orde is sturen wij het volgende bericht:
Conclusie
Het gebruik van aangepast beleid in Azure B2C kan u een enorme verscheidenheid aan mogelijkheden bieden die ervoor kunnen zorgen dat uw implementatie buitengewoon goed voor u werkt.
U kunt vrijwel elk aspect van de wensen van uw klanten bestrijken en hen een oplossing bieden die bij hun behoeften past.
Bij Blastic helpen we u graag verder en u kunt altijd contact met ons opnemen als u hulp nodig heeft.
Contacteer ons
Klaar om je digitale ervaring naar een hoger niveau te tillen? Neem gerust contact met ons op voor meer informatie over onze diensten en hoe we jou kunnen helpen het volledige potentieel van je digitale marketing te benutten.
Vertel ons over je project
En we komen met een oplossing op maat
Neem contact op met één van onze consultants om de perfecte match te vinden die bij je past en waarmee je kunt groeien.