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

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.

Alle interacties in Azure Active Directory B2C (Azure AD B2C) waar de gebruiker naar verwachting invoer verstrekt, zijn zelf-gecontroleerde technische profielen. Bijvoorbeeld een registratiepagina, aanmeldingspagina of pagina voor het opnieuw instellen van wachtwoorden.

Protocol

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

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

<TechnicalProfile Id="LocalAccountSignUpWithLogonEmail">
  <DisplayName>Email signup</DisplayName>
  <Protocol Name="Proprietary" Handler="Web.TPEngine.Providers.SelfAssertedAttributeProvider, Web.TPEngine, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null" />

Invoerclaims

In een zelf-gecontroleerd technisch profiel kunt u de elementen InputClaims en InputClaimsTransformations gebruiken om de waarde van de claims die worden weergegeven op de zelf-gecontroleerde pagina (weergaveclaims) vooraf in te vullen. In het beleid voor profiel bewerken leest de gebruikersbeleving bijvoorbeeld eerst het gebruikersprofiel uit de Azure AD B2C-directoryservice en vervolgens stelt het zelf-gecontroleerde technische profiel de invoerclaims in met de in het gebruikersprofiel opgeslagen gebruikersgegevens. Deze claims worden verzameld uit het gebruikersprofiel en vervolgens gepresenteerd aan de gebruiker die vervolgens de bestaande gegevens kan bewerken.

<TechnicalProfile Id="SelfAsserted-ProfileUpdate">
...
  <InputClaims>
    <InputClaim ClaimTypeReferenceId="alternativeSecurityId" />
    <InputClaim ClaimTypeReferenceId="userPrincipalName" />
    <InputClaim ClaimTypeReferenceId="givenName" />
    <InputClaim ClaimTypeReferenceId="surname" />
  </InputClaims>

Claims weergeven

Het element DisplayClaims bevat een lijst met claims die op het scherm moeten worden weergegeven voor het verzamelen van gegevens van de gebruiker. Als u de waarden van weergaveclaims vooraf wilt vullen, gebruikt u de invoerclaims die eerder zijn beschreven. Het element kan ook een standaardwaarde bevatten.

De volgorde van de claims in DisplayClaims geeft de volgorde aan waarin Azure AD B2C de claims weergeeft op het scherm. Als u wilt afdwingen dat de gebruiker een waarde opgeeft voor een specifieke claim, stel dan het kenmerk Vereist van het element DisplayClaim in op true.

Het element ClaimType in de verzameling DisplayClaims moet het element UserInputType instellen op een gebruikersinvoertype dat wordt ondersteund door Azure AD B2C. Bijvoorbeeld TextBox of DropdownSingleSelect.

Een verwijzing naar een DisplayControl toevoegen

In de verzameling weergaveclaims kunt u een verwijzing opnemen naar een DisplayControl die u hebt gemaakt. Een weergavebesturingselement is een gebruikersinterface-element dat speciale functionaliteit heeft en communiceert met de Azure AD B2C-back-endservice. Hiermee kan de gebruiker acties uitvoeren op de pagina die een technisch validatieprofiel aanroept op de back-end. Bijvoorbeeld het verifiëren van een e-mailadres, telefoonnummer of klantloyaliteitsnummer.

Het volgende voorbeeld TechnicalProfile illustreert het gebruik van weergaveclaims met weergavebesturingselementen.

  • De eerste weergaveclaim verwijst naar het weergavebesturingselement emailVerificationControl, waarmee het e-mailadres wordt verzameld en geverifieerd.
  • De tweede weergaveclaim verwijst naar het captchaChallengeControl weergavebesturingselement, waarmee CAPTCHA-code wordt gegenereerd en geverifieerd.
  • De zesde weergaveclaim verwijst naar het phoneVerificationControl weergavebesturingselement, dat een telefoonnummer verzamelt en verifieert.
  • De andere weergaveclaims zijn ClaimTypes die van de gebruiker moeten worden verzameld.
<TechnicalProfile Id="Id">
  <DisplayClaims>
    <DisplayClaim DisplayControlReferenceId="emailVerificationControl" />
    <DisplayClaim DisplayControlReferenceId="captchaChallengeControl" />
    <DisplayClaim ClaimTypeReferenceId="displayName" Required="true" />
    <DisplayClaim ClaimTypeReferenceId="givenName" Required="true" />
    <DisplayClaim ClaimTypeReferenceId="surName" Required="true" />
    <DisplayClaim DisplayControlReferenceId="phoneVerificationControl" />
    <DisplayClaim ClaimTypeReferenceId="newPassword" Required="true" />
    <DisplayClaim ClaimTypeReferenceId="reenterPassword" Required="true" />
  </DisplayClaims>
</TechnicalProfile>

Zoals vermeld, kan een weergaveclaim met een verwijzing naar een weergavebesturingselement een eigen validatie uitvoeren, bijvoorbeeld het verifiëren van het e-mailadres. Daarnaast ondersteunt de zelf-gecontroleerde pagina het gebruik van een technisch validatieprofiel om de hele pagina te valideren, inclusief gebruikersinvoer (claimtypen of weergavebesturingselementen), voordat naar de volgende indelingsstap wordt gegaan.

Combineer het gebruik van weergaveclaims en uitvoerclaims zorgvuldig

Als u een of meer DisplayClaim-elementen opgeeft in een zelf-gecontroleerd technisch profiel, moet u een DisplayClaim gebruiken voor elke claim die u op het scherm wilt weergeven en verzamelen van de gebruiker. Er worden geen uitvoerclaims weergegeven door een zelf-gecontroleerd technisch profiel dat ten minste één weergaveclaim bevat.

Bekijk het volgende voorbeeld waarin een age-claim is gedefinieerd als een uitvoerclaim in een basisbeleid. Voordat u weergaveclaims toevoegt aan het zelf-gecontroleerde technische profiel, wordt de age-claim weergegeven op het scherm voor het verzamelen van gegevens van de gebruiker:

<TechnicalProfile Id="id">
  <OutputClaims>
    <OutputClaim ClaimTypeReferenceId="age" />
  </OutputClaims>
</TechnicalProfile>

Als een knooppuntbeleid dat die basis overneemt vervolgens officeNumber opgeeft als een weergave-claim:

<TechnicalProfile Id="id">
  <DisplayClaims>
    <DisplayClaim ClaimTypeReferenceId="officeNumber" />
  </DisplayClaims>
  <OutputClaims>
    <OutputClaim ClaimTypeReferenceId="officeNumber" />
  </OutputClaims>
</TechnicalProfile>

De age-claim in het basisbeleid wordt niet meer aan de gebruiker getoond op het scherm. Het is effectief "verborgen". Als u de age-claim wilt weergeven en de leeftijdswaarde van de gebruiker wilt verzamelen, moet u een ageDisplayClaim toevoegen.

Uitvoerclaims

Het element OutputClaims bevat een lijst van claims die moeten worden geretourneerd naar de volgende indelingsstap. Het kenmerk DefaultValue wordt alleen van kracht als de claim nog nooit is ingesteld. Als deze is ingesteld in een vorige indelingsstap, wordt de standaardwaarde niet van kracht, ook niet als de gebruiker de waarde leeg laat. Als u het gebruik van een standaardwaarde wilt afdwingen, stelt u het kenmerk AlwaysUseDefaultValue in op true.

Om veiligheidsredenen is een waarde voor wachtwoordclaims (UserInputType ingesteld op Password) alleen beschikbaar voor de technische validatieprofielen van het zelf-gecontroleerde technische profiel. U kunt geen wachtwoordclaim gebruiken in de volgende indelingsstappen.

Notitie

In eerdere versies van het Identity Experience Framework (IEF) werden uitvoerclaims gebruikt om gegevens van de gebruiker te verzamelen. Als u gegevens van de gebruiker wilt verzamelen, gebruikt u in plaats daarvan een DisplayClaims-verzameling.

Het element OutputClaimsTransformations kan een verzameling OutputClaimsTransformation-elementen bevatten die worden gebruikt om uitvoerclaims te wijzigen of nieuwe te genereren.

Wanneer u uitvoerclaims moet gebruiken

In een zelf-gecontroleerd technisch profiel retourneert de uitvoerclaimsverzameling de claims naar de volgende indelingsstap.

Gebruik uitvoerclaims wanneer:

  • Claims worden uitgevoerd door de transformatie van uitvoerclaims.
  • Een standaardwaarde wordt ingesteld in een uitvoerclaim zonder gegevens van de gebruiker te verzamelen of de gegevens uit het technische validatieprofiel te retourneren. Het zelf-gecontroleerde technische profiel LocalAccountSignUpWithLogonEmail stelt de executed-SelfAsserted-Input-claim in op true.
  • Een technisch validatieprofiel retourneert de uitvoerclaims - Uw technische profiel kan een technisch validatieprofiel aanroepen dat enkele claims retourneert. Misschien wilt u de claims opbellen en ze retourneren naar de volgende indelingsstappen in de gebruikersbeleving. Wanneer u zich bijvoorbeeld aanmeldt met een lokaal account, roept het zelf-gecontroleerde technische profiel genaamd SelfAsserted-LocalAccountSignin-Email het technische validatieprofiel genaamd login-NonInteractive aan. Dit technische profiel valideert de aanmeldingsgegevens en retourneert ook het gebruikersprofiel. Bijvoorbeeld 'userPrincipalName', 'displayName', 'givenName' en 'surName'.
  • Een weergavebesturingselement retourneert de uitvoerclaims - Mogelijk heeft uw technische profiel een verwijzing naar een weergavebesturingselemen. Het weergavebesturingselement retourneert enkele claims, zoals het geverifieerde e-mailadres. Misschien wilt u de claims opbellen en ze retourneren naar de volgende indelingsstappen in de gebruikersbeleving.

Het volgende voorbeeld demonstreert het gebruik van een zelf-gecontroleerd technisch profiel dat zowel weergaveclaims als uitvoerclaims gebruikt.

<TechnicalProfile Id="LocalAccountSignUpWithLogonEmail">
  <DisplayName>Email signup</DisplayName>
  <Protocol Name="Proprietary" Handler="Web.TPEngine.Providers.SelfAssertedAttributeProvider, Web.TPEngine, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null" />
  <Metadata>
    <Item Key="IpAddressClaimReferenceId">IpAddress</Item>
    <Item Key="ContentDefinitionReferenceId">api.localaccountsignup</Item>
    <Item Key="language.button_continue">Create</Item>
  </Metadata>
  <InputClaims>
    <InputClaim ClaimTypeReferenceId="email" />
  </InputClaims>
  <DisplayClaims>
    <DisplayClaim DisplayControlReferenceId="emailVerificationControl" />
    <DisplayClaim DisplayControlReferenceId="SecondaryEmailVerificationControl" />
    <DisplayClaim ClaimTypeReferenceId="displayName" Required="true" />
    <DisplayClaim ClaimTypeReferenceId="givenName" Required="true" />
    <DisplayClaim ClaimTypeReferenceId="surName" Required="true" />
    <DisplayClaim ClaimTypeReferenceId="newPassword" Required="true" />
    <DisplayClaim ClaimTypeReferenceId="reenterPassword" Required="true" />
  </DisplayClaims>
  <OutputClaims>
    <OutputClaim ClaimTypeReferenceId="email" Required="true" />
    <OutputClaim ClaimTypeReferenceId="objectId" />
    <OutputClaim ClaimTypeReferenceId="executed-SelfAsserted-Input" DefaultValue="true" />
    <OutputClaim ClaimTypeReferenceId="authenticationSource" />
    <OutputClaim ClaimTypeReferenceId="newUser" />
  </OutputClaims>
  <ValidationTechnicalProfiles>
    <ValidationTechnicalProfile ReferenceId="AAD-UserWriteUsingLogonEmail" />
  </ValidationTechnicalProfiles>
  <UseTechnicalProfileForSessionManagement ReferenceId="SM-AAD" />
</TechnicalProfile>

Uitvoerclaims voor registratie- of aanmeldingspagina

Houd op een gecombineerde registratie- en aanmeldingspagina rekening met het volgende wanneer u een DataUri-element voor inhoudsdefinities gebruikt dat een unifiedssp of unifiedssd paginatype opgeeft:

  • Alleen de gebruikersnaam- en wachtwoordclaims worden weergegeven.
  • De eerste twee uitvoerclaims moeten de gebruikersnaam en het wachtwoord zijn (in deze volgorde).
  • Andere claims worden niet weergegeven; voor deze claims moet u de defaultValue instellen of een technische profiel voor validatie van claimsformulieren aanroepen.

Claims persistent maken

Het element PersistedClaims wordt niet gebruikt. Het zelf-gecontroleerde technische profiel bewaart de gegevens niet in Azure AD B2C. In plaats daarvan wordt een aanroep gedaan naar een technisch validatieprofiel dat verantwoordelijk is voor het persistent maken van de gegevens. Het registratiebeleid maakt bijvoorbeeld gebruik van het LocalAccountSignUpWithLogonEmail zelf-gecontroleerde technische profiel om het nieuwe gebruikersprofiel te verzamelen. Het technische profiel LocalAccountSignUpWithLogonEmail roept het technische validatieprofiel aan om het account te maken in Azure AD B2C.

Technische validatieprofielen

Een technisch validatieprofiel wordt gebruikt voor het valideren van sommige of alle uitvoerclaims van het verwijzende technische profiel. De invoerclaims van het technische validatieprofiel moeten voorkomen in de uitvoerclaims van het zelf-gecontroleerde technische profiel. Het technische validatieprofiel valideert de gebruikersinvoer en kan een fout retourneren aan de gebruiker.

Het technische validatieprofiel kan elk technisch profiel in het beleid zijn, zoals Microsoft Entra ID of een TECHNISCHE PROFIELEN van de REST API . In het vorige voorbeeld valideert het technische profiel LocalAccountSignUpWithLogonEmail dat signinName niet bestaat in de directory. Zo niet, dan maakt het technische validatieprofiel een lokaal account en retourneert de objectId, authenticationSource en newUser. Het technische profiel SelfAsserted-LocalAccountSignin-Email roept het technische validatieprofiel login-NonInteractive aan om de aanmeldingsgegevens te valideren.

U kunt ook een technisch REST API-profiel aanroepen met uw bedrijfslogica, invoerclaims overschrijven of gebruikersgegevens verrijken door verder te integreren met een line-of-business-toepassing. Zie Technisch validatieprofiel voor meer informatie

Notitie

Een technisch validatieprofiel wordt alleen geactiveerd wanneer er invoer van de gebruiker is. U kunt geen leeg zelf-gecontroleerd technisch profiel maken om een technisch validatieprofiel aan te roepen alleen om te profiteren van het kenmerk ContinueOnError van een ValidationTechnicalProfile-element. U kunt een technisch validatieprofiel alleen aanroepen vanuit een zelf-gecontroleerd technisch profiel dat om invoer van de gebruiker vraagt of vanuit een indelingsstap in een gebruikersbeleving.

Metagegevens

Kenmerk Vereist Beschrijving
setting.operatingMode 1 Nee Voor een aanmeldingspagina bepaalt deze eigenschap het gedrag van het gebruikersnaamveld, zoals invoervalidatie en foutberichten. Verwachte waarden: Username of Email. Bekijk de livedemo van deze metagegevens.
AllowGenerationOfClaimsWithNullValues Nee Sta het toe een claim met null-waarde te genereren. Bijvoorbeeld in het geval dat een gebruiker geen selectievakje inschakelt.
ContentDefinitionReferenceId Ja De id van de inhoudsdefinitie behorende bij dit technische profiel.
EnforceEmailVerification Nee Voor registratie of profielbewerking wordt e-mailverificatie afgedwongen. Mogelijke waarden: true (standaard) of false.
setting.retryLimit Nee Bepaalt het aantal keren dat een gebruiker kan proberen de gegevens op te geven die worden gecontroleerd aan de hand van een technisch validatieprofiel. Een gebruiker probeert zich bijvoorbeeld aan te melden met een account dat al bestaat en blijft proberen totdat de limiet is bereikt. Bekijk de livedemo van deze metagegevens.
SignUpTarget 1 Nee De doeluitwisselings-id van de registratie. Wanneer de gebruiker op de registratieknop klikt, voert Azure AD B2C de opgegeven uitwisselings-id uit.
setting.showCancelButton Nee Geeft de knop Annuleren weer. Mogelijke waarden: true (standaard) of false. Bekijk de livedemo van deze metagegevens.
setting.showContinueButton Nee Geeft de knop Doorgaan weer. Mogelijke waarden: true (standaard) of false. Bekijk de livedemo van deze metagegevens.
setting.showSignupLink 2 Nee Geeft de knop Registreren weer. Mogelijke waarden: true (standaard) of false. Bekijk de livedemo van deze metagegevens.
setting.forgotPasswordLinkLocation 2 Nee Hiermee wordt de link Wachtwoord vergeten weergegeven. Mogelijke waarden: AfterLabel (standaard) geeft de link direct na het label weer of na het wachtwoordinvoerveld wanneer er geen label is, AfterInput geeft de koppeling weer na het wachtwoordinvoerveld, AfterButtons geeft de koppeling onderaan het formulier weer na de knoppen, of None verwijdert de link Wachtwoord vergeten. Bekijk de livedemo van deze metagegevens.
setting.enableRememberMe 2 Nee Geeft het selectievakje Aangemeld blijven weer. Mogelijke waarden: true of false (standaard). Livedemo van deze metagegevens.
setting.inputVerificationDelayTimeInMilliseconds 3 Nee Verbetert de gebruikerservaring door te wachten totdat de gebruiker stopt met typen en vervolgens de waarde te valideren. Standaardwaarde 2000 milliseconden. Bekijk de livedemo van deze metagegevens.
IncludeClaimResolvingInClaimsHandling Nee Geeft voor de invoer- en uitvoerclaims aan of claimsoplossing is opgenomen in het technische profiel. Mogelijke waarden: true of false (standaard). Als u een claimsresolver wilt gebruiken in het technische profiel, stel dit in op true.
setting.forgotPasswordLinkOverride 4 Nee Een uit te voeren uitwisseling van wachtwoordherstelclaims. Zie Self-service voor wachtwoordherstel voor meer informatie.
setting.enableCaptchaChallenge Nee Hiermee geeft u op of CAPTCHA-uitdagingscode moet worden weergegeven. Mogelijke waarden: true of false (standaard). Deze instelling werkt alleen als naar het CAPTCHA-weergavebesturingselement wordt verwezen in de weergaveclaims van het zelf-asserteerde technische profiel. De functie CAPTCHA is beschikbaar als openbare preview.

Opmerkingen:

  1. Beschikbaar voor inhoudsdefinitie DataUri-type unifiedssp of unifiedssd.
  2. Beschikbaar voor inhoudsdefinitie DataUri-type unifiedssp of unifiedssd. Pagina-indeling versie 1.1.0 en hoger.
  3. Beschikbaar voor pagina-indeling versie 1.2.0 en hoger.
  4. Beschikbaar voor inhoudsdefinitie DataUri-type unifiedssp. Pagina-indeling versie 2.1.2 en hoger.

Cryptografische sleutels

Het element CryptographicKeys wordt niet gebruikt.