Dela via


Definiera en självsäkrad teknisk profil i en anpassad Azure Active Directory B2C-princip

Kommentar

I Azure Active Directory B2C är anpassade principer främst utformade för att hantera komplexa scenarier. I de flesta scenarier rekommenderar vi att du använder inbyggda användarflöden. Om du inte har gjort det kan du läsa mer om startpaketet för anpassad princip i Kom igång med anpassade principer i Active Directory B2C.

Alla interaktioner i Azure Active Directory B2C (Azure AD B2C) där användaren förväntas tillhandahålla indata är självsäkra tekniska profiler. Till exempel en registreringssida, inloggningssida eller sidan för lösenordsåterställning.

Protokoll

Attributet Namn för protokollelementet måste anges till Proprietary. Hanterarattributet måste innehålla det fullständigt kvalificerade namnet på protokollhanterarsammansättningen som används av Azure AD B2C för självbestämmande:Web.TPEngine.Providers.SelfAssertedAttributeProvider, Web.TPEngine, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null

I följande exempel visas en egensäkrad teknisk profil för e-postregistrering:

<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" />

Indataanspråk

I en självsäkrad teknisk profil kan du använda elementen InputClaims och InputClaimsTransformations för att fylla i värdet för de anspråk som visas på den självsäkra sidan (visa anspråk). I policyn för redigeringsprofil läser användarresan först användarprofilen från Azure AD B2C-katalogtjänsten och sedan anger den självsäkra tekniska profilen indataanspråken med användardata som lagras i användarprofilen. Dessa anspråk samlas in från användarprofilen och visas sedan för användaren som sedan kan redigera befintliga data.

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

Visa anspråk

Elementet DisplayClaims innehåller en lista över anspråk som ska visas på skärmen för insamling av data från användaren. Om du vill fylla i värdena för visningsanspråk i förväg använder du de indataanspråk som beskrevs tidigare. Elementet kan också innehålla ett standardvärde.

Ordningen på anspråken i DisplayClaims anger i vilken ordning Azure AD B2C återger anspråken på skärmen. Om du vill tvinga användaren att ange ett värde för ett specifikt anspråk anger du attributet Obligatoriskt för elementet DisplayClaim till true.

Elementet ClaimType i Samlingen DisplayClaims måste ange userInputType-elementet till alla användarindatatyper som stöds av Azure AD B2C. Exempel: TextBox eller DropdownSingleSelect.

Lägga till en referens till en DisplayControl

I samlingen visningsanspråk kan du inkludera en referens till en DisplayControl som du har skapat. En visningskontroll är ett användargränssnittselement som har särskilda funktioner och interagerar med Azure AD B2C-serverdelstjänsten. Det gör att användaren kan utföra åtgärder på sidan som anropar en teknisk valideringsprofil i serverdelen. Du kan till exempel verifiera en e-postadress, ett telefonnummer eller ett kundlojalitetsnummer.

I följande exempel TechnicalProfile visas användningen av visningsanspråk med visningskontroller.

  • Det första visningsanspråket emailVerificationControl refererar till visningskontrollen, som samlar in och verifierar e-postadressen.
  • Det andra visningsanspråket captchaChallengeControl refererar till visningskontrollen, som genererar och verifierar CAPTCHA-kod.
  • Det sjätte visningsanspråket phoneVerificationControl refererar till visningskontrollen, som samlar in och verifierar ett telefonnummer.
  • De andra visningsanspråken är ClaimTypes som ska samlas in från användaren.
<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>

Som nämnts kan ett visningsanspråk med en referens till en visningskontroll köra sin egen validering, till exempel verifiera e-postadressen. Dessutom har den självsäkra sidan stöd för att använda en teknisk valideringsprofil för att verifiera hela sidan, inklusive alla användarindata (anspråkstyper eller visningskontroller) innan du går vidare till nästa orkestreringssteg.

Kombinera användningen av visningsanspråk och utdataanspråk noggrant

Om du anger ett eller flera DisplayClaim-element i en självsäkrad teknisk profil måste du använda en DisplayClaim för varje anspråk som du vill visa på skärmen och samla in från användaren. Inga utdataanspråk visas av en självsäkrad teknisk profil som innehåller minst ett visningsanspråk.

Tänk dig följande exempel där ett age anspråk definieras som ett utdataanspråk i en basprincip. Innan du lägger till visningsanspråk i den självsäkra tekniska profilen visas anspråket age på skärmen för datainsamling från användaren:

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

Om en lövprincip som ärver den basen senare anger som ett visningsanspråk:officeNumber

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

Anspråket age i basprincipen visas inte längre på skärmen för användaren – det är i praktiken "dolt". Om du vill visa anspråket age och samla in åldersvärdet från användaren måste du lägga till en age DisplayClaim.

Utdataanspråk

Elementet OutputClaims innehåller en lista över anspråk som ska returneras till nästa orkestreringssteg. Attributet DefaultValue börjar gälla endast om anspråket aldrig har angetts. Om det angavs i ett tidigare orkestreringssteg träder standardvärdet inte i kraft även om användaren lämnar värdet tomt. Om du vill framtvinga användningen av ett standardvärde anger du attributet AlwaysUseDefaultValue till true.

Av säkerhetsskäl är ett lösenordsanspråksvärde (UserInputType inställt på Password) endast tillgängligt för den självsäkra tekniska profilens tekniska valideringsprofiler. Du kan inte använda lösenordsanspråk i nästa orkestreringssteg.

Kommentar

I tidigare versioner av IDENTITY Experience Framework (IEF) användes utdataanspråk för att samla in data från användaren. Om du vill samla in data från användaren använder du en DisplayClaims-samling i stället.

Elementet OutputClaimsTransformations kan innehålla en samling OutputClaimsTransformation-element som används för att ändra utdataanspråken eller generera nya.

När du ska använda utdataanspråk

I en självsäkrad teknisk profil returnerar utdataanspråksamlingen anspråken till nästa orkestreringssteg.

Använd utdataanspråk när:

  • Anspråk matas ut genom omvandling av utdataanspråk.
  • Ange ett standardvärde i ett utdataanspråk utan att samla in data från användaren eller returnera data från den tekniska verifieringsprofilen. Den LocalAccountSignUpWithLogonEmail självsäkra tekniska profilen anger anspråket executed-SelfAsserted-Input till true.
  • En teknisk valideringsprofil returnerar utdataanspråken – Din tekniska profil kan anropa en teknisk valideringsprofil som returnerar vissa anspråk. Du kanske vill bubbla upp anspråken och returnera dem till nästa orkestreringssteg i användarresan. När du till exempel loggar in med ett lokalt konto anropar den självsäkra tekniska profilen med namnet SelfAsserted-LocalAccountSignin-Email den tekniska verifieringsprofilen med namnet login-NonInteractive. Den här tekniska profilen verifierar användarautentiseringsuppgifterna och returnerar även användarprofilen. Till exempel "userPrincipalName", "displayName", "givenName" och "surName".
  • En visningskontroll returnerar utdataanspråken – Din tekniska profil kan ha en referens till en visningskontroll. Visningskontrollen returnerar vissa anspråk, till exempel den verifierade e-postadressen. Du kanske vill bubbla upp anspråken och returnera dem till nästa orkestreringssteg i användarresan.

I följande exempel visas användningen av en självsäkrad teknisk profil som använder både visningsanspråk och utdataanspråk.

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

Kommentar

När du samlar in värdet för lösenordsanspråk i den självsäkra tekniska profilen är det värdet endast tillgängligt inom samma tekniska profil eller inom en teknisk valideringsprofil som refereras av samma självsäkra tekniska profil. När körningen av den självsäkra tekniska profilen slutförs och flyttas till en annan teknisk profil går lösenordets värde förlorat. Därför kan lösenordsanspråk endast lagras i orkestreringssteget där det samlas in.

Registrerings- eller inloggningssida för utdataanspråk

Observera följande när du använder ett DataUri-element för innehållsdefinition som anger en unifiedssp eller unifiedssd en sidtyp på en kombinerad registrerings- och inloggningssida:

  • Endast användarnamn- och lösenordsanspråk återges.
  • De två första utdataanspråken måste vara användarnamnet och lösenordet (i den här ordningen).
  • Andra anspråk återges inte. För dessa anspråk måste du antingen ange defaultValue eller anropa en teknisk profil för anspråksformulärverifiering.

Spara anspråk

Elementet PersistedClaims används inte. Den självsäkra tekniska profilen bevarar inte data till Azure AD B2C. I stället görs ett anrop till en teknisk valideringsprofil som ansvarar för att bevara data. Registreringsprincipen använder till exempel den LocalAccountSignUpWithLogonEmail självsäkra tekniska profilen för att samla in den nya användarprofilen. Den LocalAccountSignUpWithLogonEmail tekniska profilen anropar den tekniska valideringsprofilen för att skapa kontot i Azure AD B2C.

Tekniska valideringsprofiler

En teknisk valideringsprofil används för att verifiera vissa eller alla utdataanspråk för den refererande tekniska profilen. Indataanspråken för den tekniska valideringsprofilen måste visas i utdataanspråken för den självsäkra tekniska profilen. Den tekniska verifieringsprofilen validerar användarens indata och kan returnera ett fel till användaren.

Den tekniska valideringsprofilen kan vara vilken teknisk profil som helst i principen, till exempel Microsoft Entra-ID eller tekniska REST API-profiler . I föregående exempel verifierar den LocalAccountSignUpWithLogonEmail tekniska profilen att signinName inte finns i katalogen. Annars skapar den tekniska valideringsprofilen ett lokalt konto och returnerar objectId, authenticationSource, newUser. Den SelfAsserted-LocalAccountSignin-Email tekniska profilen anropar den login-NonInteractive tekniska valideringsprofilen för att verifiera användarautentiseringsuppgifterna.

Du kan också anropa en teknisk REST API-profil med din affärslogik, skriva över indataanspråk eller utöka användardata genom att ytterligare integrera med företagets verksamhetsspecifika program. Mer information finns i Teknisk verifieringsprofil

Kommentar

En teknisk valideringsprofil utlöses endast när det finns indata från användaren. Du kan inte skapa en tom självsäkrad teknisk profil för att anropa en teknisk valideringsprofil bara för att dra nytta av attributet ContinueOnError för ett ValidationTechnicalProfile-element . Du kan bara anropa en teknisk valideringsprofil från en självsäkrad teknisk profil som begär indata från användaren eller från ett orkestreringssteg under en användarresa.

Metadata

Attribut Obligatoriskt Beskrivning
setting.operatingMode 1 Nej För en inloggningssida styr den här egenskapen beteendet för användarnamnsfältet, till exempel validering av indata och felmeddelanden. Förväntade värden: Username eller Email. Se Live-demonstrationen av dessa metadata.
AllowGenerationOfClaimsWithNullValues Nej Tillåt att ett anspråk genereras med null-värde. I ett fall väljer användaren till exempel inte en kryssruta.
ContentDefinitionReferenceId Ja Identifieraren för innehållsdefinitionen som är associerad med den här tekniska profilen.
EnforceEmailVerification Nej Vid registrering eller profilredigering framtvingar e-postverifiering. Möjliga värden: true (standard) eller false.
setting.retryLimit Nej Styr hur många gånger en användare kan försöka ange de data som kontrolleras mot en teknisk valideringsprofil. En användare försöker till exempel registrera sig med ett konto som redan finns och fortsätter att försöka tills gränsen har nåtts. Se Live-demonstrationen av dessa metadata.
SignUpTarget 1 Nej Registreringsmålets exchange-ID. När användaren klickar på registreringsknappen kör Azure AD B2C den angivna exchange-identifieraren.
setting.showCancelButton Nej Visar knappen Avbryt. Möjliga värden: true (standard) eller false. Se Live-demonstrationen av dessa metadata.
setting.showContinueButton Nej Visar knappen Fortsätt. Möjliga värden: true (standard) eller false. Se Live-demonstrationen av dessa metadata.
setting.showSignupLink 2 Nej Visar registreringsknappen. Möjliga värden: true (standard) eller false. Se Live-demonstrationen av dessa metadata.
setting.forgotPasswordLinkLocation 2 Nej Visar länken för glömt lösenord. Möjliga värden: AfterLabel (standard) visar länken direkt efter etiketten eller efter fältet för lösenordsinmatning när det inte finns någon etikett, AfterInput visar länken efter lösenordets indatafält, AfterButtons visar länken längst ned i formuläret efter knapparna eller None tar bort länken för glömt lösenord. Se Live-demonstrationen av dessa metadata.
setting.enableRememberMe 2 Nej Visar kryssrutan Håll mig inloggad . Möjliga värden: true , eller false (standard). Livedemo av dessa metadata.
setting.inputVerificationDelayTimeInMilliseconds 3 Nej Förbättrar användarupplevelsen genom att vänta på att användaren ska sluta skriva och sedan verifiera värdet. Standardvärde 2 000 millisekunder. Se Live-demonstrationen av dessa metadata.
IncludeClaimResolvingInClaimsHandling Nej För indata- och utdataanspråk anger om anspråksmatchning ingår i den tekniska profilen. Möjliga värden: true, eller false (standard). Om du vill använda en anspråkslösare i den tekniska profilen anger du detta till true.
setting.forgotPasswordLinkOverride 4 Nej Ett utbyte av lösenordsåterställningsanspråk som ska köras. Mer information finns i Självbetjäning av lösenordsåterställning.
setting.enableCaptchaChallenge Nej Anger om CAPTCHA-utmaningskoden ska visas. Möjliga värden: true , eller false (standard). För att den här inställningen ska fungera måste CAPTCHA-visningskontrollen refereras till i visningsanspråken för den självsäkra tekniska profilen. CAPTCHA-funktionen finns i offentlig förhandsversion.
setting.showHeading Nej Anger om rubrikelementet Användarinformation ska vara synligt. Möjliga värden: true (standard) eller false.

Anteckningar:

  1. Tillgänglig för innehållsdefinitionEns DataUri-typ av unifiedssp, eller unifiedssd.
  2. Tillgänglig för innehållsdefinitionEns DataUri-typ av unifiedssp, eller unifiedssd. Sidlayout version 1.1.0 och senare.
  3. Tillgänglig för sidlayout version 1.2.0 och senare.
  4. Tillgänglig för innehållsdefinitionEns DataUri-typ av unifiedssp. Sidlayout version 2.1.2 och senare.

Krypteringsnycklar

CryptographicKeys-elementet används inte.