Sitecore authenticatie met Azure B2C en aangepast beleid deel 2

Er is een groot aantal OAuth-systemen waarmee u verbinding kunt maken voor authenticatie van uw websitegebruikers.

Hier volgen enkele inzichten over hoe u verbinding kunt maken met Azure B2C. Met aangepast beleid heeft u de mogelijkheid om uw gebruikersstromen aan te passen!

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

https://learn.microsoft.com/en-us/azure/active-directory-b2c/tutorial-create-user-flows?pivots=b2c-custom-policy

Ga binnen onze B2C-tenant naar Identity Experience Framework.

Azure_B2C_identity_Eperience_framework

Ga naar Beleidssleutels (Policy keys):

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

B2C_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

B2C_Applicatie_registratie

Vanuit het “Aangepast beleid” kunt u uw aangepaste beleid uploaden dat we verderop zullen maken.

B2C_custom_policies

Aangepast beleid dat is gemaakt, wordt hieronder weergegeven

B2C_overzicht_aangepast_beleid

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.

Uploaden_Aangepast_beleid

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”

Code_Claim_BuildingBlock

  • 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

Code_OutputClaim_wachtwoordvergeten

  • Voeg een SubJourney toe

Code_SubJourney_wachtwoordvergeten

  • Kopieer de UserJourney: Id="SignUpOrSignIn", van TrusFrameworkBase.xml
    • Wijzig de ID naar “CustomSignUpSignIn”
    • Wijzig de eerste OrchestrationStep:
      • Voeg een ClaimsProviderSelection toe

Code_ClaimsProvider_Wachtwoordvergeten

      • Ga naar de tweede OrchestrationStep en voeg een nieuwe ClaimsExchange toe

Code_ClaimsExchange_wachtwoordvergeten

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

Code_outputclaim_wachtwoorvergeten

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

code_claimstransformatie_weergavenaam

  • Maak een technisch profiel
    • Protocol ClaimsTransformationProtocolProvider

code_technisch_profiel_weergavenaam

  • Validatie technisch profiel instellen

Code_Validatie_TechnischProfiel_Weergavenaam

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

Code_ClaimsTransformatie_DomeinOpZoeken

    • Opzoekdomein

Code_OpzoekenDomein_DomeinOpzoeken

  • 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

Code_controleerDomein_DomeinOpzoeken

  • 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.)

Code_ValidatieTechnischProfiel_DomeinOpzoeken

  • 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

Code_CheckEmail_API

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.

Code_ValidateTechincalProfile_API

In onze code van de API sturen we, als deze wordt goedgekeurd, een OK-bericht:

Code_Retour_Goedgekeurd_API

Als het niet in orde is sturen wij het volgende bericht:

Code_ErrorMessage_API

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.

Cookie Policy

Onze site maakt gebruik van cookies om de website-ervaring te verbeteren. Door onze website te gebruiken, gaat u akkoord met ons gebruik van cookies. Klik hier voor meer informatie.

Voorkeur opslaan