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 claim in het basisbeleid wordt niet meer weergegeven op het scherm voor de gebruiker. De age
claim is in feite 'verborgen'. Als u de age
claim wilt weergeven en de leeftijdswaarde van de gebruiker wilt verzamelen, moet u een age
DisplayClaim 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 optrue
. - 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 genaamdlogin-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>
Notitie
Wanneer u de waarde van de wachtwoordclaim in het zelfbeclaimde technische profiel verzamelt, is die waarde alleen beschikbaar in hetzelfde technische profiel of binnen een validatie technische profielen waarnaar wordt verwezen door hetzelfde zelf-asserted technische profiel. Wanneer de uitvoering van dat zelfbewuste technische profiel is voltooid en naar een ander technisch profiel wordt verplaatst, gaat de waarde van het wachtwoord verloren. Daarom kan wachtwoordclaim alleen worden opgeslagen in de indelingsstap waarin deze wordt verzameld.
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. |
setting.showHeading | Nee | Hiermee geeft u op of het kopelement User Details moet worden weergegeven. Mogelijke waarden: true (standaard) of false . |
Opmerkingen:
- Beschikbaar voor inhoudsdefinitie DataUri-type
unifiedssp
ofunifiedssd
. - Beschikbaar voor inhoudsdefinitie DataUri-type
unifiedssp
ofunifiedssd
. Pagina-indeling versie 1.1.0 en hoger. - Beschikbaar voor pagina-indeling versie 1.2.0 en hoger.
- Beschikbaar voor inhoudsdefinitie DataUri-type
unifiedssp
. Pagina-indeling versie 2.1.2 en hoger.
Cryptografische sleutels
Het element CryptographicKeys wordt niet gebruikt.