Dela via


Tekniska profiler

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.

En teknisk profil tillhandahåller ett ramverk med en inbyggd mekanism för att kommunicera med olika typer av parter. Tekniska profiler används för att kommunicera med din Azure Active Directory B2C-klientorganisation (Azure AD B2C) för att skapa en användare eller läsa en användarprofil. En teknisk profil kan själv hävdas för att möjliggöra interaktion med användaren. En teknisk profil kan till exempel samla in användarens autentiseringsuppgifter för att logga in och sedan återge registreringssidan eller sidan för lösenordsåterställning.

Typer av tekniska profiler

En teknisk profil möjliggör följande typer av scenarier:

  • Application Insights: Skickar händelsedata till Application Insights.
  • Microsoft Entra-ID: Tillhandahåller stöd för Azure AD B2C-användarhantering.
  • Microsoft Entra multifaktorautentisering: Ger stöd för att verifiera ett telefonnummer med hjälp av Microsoft Entra multifaktorautentisering.
  • Anspråksomvandling: Anropar utdataanspråksomvandlingar för att manipulera anspråksvärden, validera anspråk eller ange standardvärden för en uppsättning utdataanspråk.
  • Tips om ID-token: Validerar signaturen för id_token_hint JWT-token, utfärdarnamnet och tokenpubliken och extraherar anspråket från den inkommande token.
  • JWT-tokenutfärdare: Genererar en JWT-token som returneras till det förlitande partprogrammet.
  • OAuth1: Federation med valfri OAuth 1.0-protokollidentitetsprovider.
  • OAuth2: Federation med valfri OAuth 2.0-protokollidentitetsprovider.
  • Engångslösenord: Ger stöd för att hantera generering och verifiering av ett engångslösenord.
  • OpenID Anslut: Federation med en OpenID-Anslut protokollidentitetsprovider.
  • Telefon faktor: Stöder registrering och verifiering av telefonnummer.
  • RESTful-provider: Anropar REST API-tjänster, till exempel validering av användarindata, berikande användardata eller integrering med verksamhetsspecifika program.
  • SAML-identitetsprovider: Federation med alla SAML-protokollidentitetsprovider.
  • SAML-tokenutfärdare: Genererar en SAML-token som returneras tillbaka till det förlitande partprogrammet.
  • Självbestämt: Interagerar med användaren. Samlar till exempel in användarens autentiseringsuppgifter för att logga in, rendera registreringssidan eller återställa lösenordet.
  • Sessionshantering: Hanterar olika typer av sessioner.

Flöde för teknisk profil

Alla typer av tekniska profiler har samma koncept. De börjar med att läsa indataanspråken och köra anspråkstransformeringar. Sedan kommunicerar de med den konfigurerade parten, till exempel en identitetsprovider, REST API eller Microsoft Entra-katalogtjänster. När processen är klar returnerar den tekniska profilen utdataanspråken och kan köra omvandlingar av utdataanspråk. Följande diagram visar hur de transformeringar och mappningar som refereras i den tekniska profilen bearbetas. När anspråkstransformeringen har utförts lagras utdataanspråken omedelbart i anspråkspåsen, oavsett vilken part den tekniska profilen interagerar med.

Diagram that illustrates the technical profile flow.

  1. Sessionshantering med enkel inloggning (SSO): Återställer den tekniska profilens sessionstillstånd med hjälp av SSO-sessionshantering.
  2. Transformering av indataanspråk: Innan den tekniska profilen startas kör Azure AD B2C omvandling av indataanspråk.
  3. Indataanspråk: Anspråk hämtas från anspråkspåsen som används för den tekniska profilen.
  4. Teknisk profilkörning: Den tekniska profilen utbyter anspråken med den konfigurerade parten. Till exempel:
    • Omdirigerar användaren till identitetsprovidern för att slutföra inloggningen. Efter lyckad inloggning returnerar användaren tillbaka och körningen av den tekniska profilen fortsätter.
    • Anropar ett REST-API när parametrar skickas som InputClaims och får tillbaka information som OutputClaims.
    • Skapar eller uppdaterar användarkontot.
    • Skickar och verifierar textmeddelandet för multifaktorautentisering.
  5. Tekniska profiler för validering: En självsäkrad teknisk profil kan anropa tekniska valideringsprofiler för att verifiera de data som användaren har profilerat. Endast självsäkra tekniska profiler kan använda tekniska valideringsprofiler.
  6. Utdataanspråk: Anspråk returneras tillbaka till anspråkspåsen. Du kan använda dessa anspråk i nästa orkestreringssteg eller utgående anspråkstransformeringar.
  7. Omvandlingar av utdataanspråk: När den tekniska profilen har slutförts kör Azure AD B2C omvandlingar av utdataanspråk.
  8. SSO-sessionshantering: Bevarar den tekniska profilens data till sessionen med hjälp av SSO-sessionshantering.

Ett TechnicalProfiles-element innehåller en uppsättning tekniska profiler som stöds av anspråksprovidern. Varje anspråksprovider måste ha minst en teknisk profil. Den tekniska profilen avgör slutpunkterna och protokollen som behövs för att kommunicera med anspråksprovidern. En anspråksprovider kan ha flera tekniska profiler.

<ClaimsProvider>
  <DisplayName>Display name</DisplayName>
  <TechnicalProfiles>
    <TechnicalProfile Id="Technical profile identifier">
      <DisplayName>Display name of technical profile</DisplayName>
      <Protocol Name="Proprietary" Handler="Web.TPEngine.Providers.RestfulProvider, Web.TPEngine, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null" />
      <Metadata>
        ...
      </Metadata>
      ...
    </TechnicalProfile>
  </TechnicalProfiles>
</ClaimsProvider>

TechnicalProfile-elementet innehåller följande attribut:

Attribut Obligatoriskt Beskrivning
Id Ja En unik identifierare för den tekniska profilen. Du kan referera till den tekniska profilen med hjälp av den här identifieraren från andra element i principfilen. Exempel är OrchestrationSteps och ValidationTechnicalProfile.

TechnicalProfile-elementet innehåller följande element:

Element Händelser beskrivning
Domain 0:1 Domännamnet för den tekniska profilen. Om din tekniska profil till exempel anger Facebook-identitetsprovidern är domännamnet Facebook.com.
DisplayName 1:1 Visningsnamnet för den tekniska profilen.
beskrivning 0:1 Beskrivningen av den tekniska profilen.
Protokoll 1:1 Protokollet som används för kommunikationen med den andra parten.
Metadata 0:1 En uppsättning nycklar och värden som styr beteendet för den tekniska profilen.
InputTokenFormat 0:1 Formatet för indatatoken. Möjliga värden är JSON, JWT, SAML11eller SAML2. Värdet JWT representerar en JSON-webbtoken enligt IETF-specifikationen. Värdet SAML11 representerar en SAML 1.1-säkerhetstoken enligt OASIS-specifikationen. Värdet SAML2 representerar en SAML 2.0-säkerhetstoken enligt OASIS-specifikationen.
OutputTokenFormat 0:1 Formatet för utdatatoken. Möjliga värden är JSON, JWT, SAML11eller SAML2.
CryptographicKeys 0:1 En lista över kryptografiska nycklar som används i den tekniska profilen.
InputClaimsTransformations 0:1 En lista över tidigare definierade referenser till anspråkstransformeringar som ska köras innan anspråk skickas till anspråksprovidern eller den förlitande parten.
InputClaims 0:1 En lista över tidigare definierade referenser till anspråkstyper som tas som indata i den tekniska profilen.
PersistedClaims 0:1 En lista över tidigare definierade referenser till anspråkstyper som ska bevaras av den tekniska profilen.
DisplayClaims 0:1 En lista över tidigare definierade referenser till anspråkstyper som presenteras av den självsäkra tekniska profilen. Funktionen DisplayClaims är för närvarande i förhandsversion.
OutputClaims 0:1 En lista över tidigare definierade referenser till anspråkstyper som tas som utdata i den tekniska profilen.
OutputClaimsTransformations 0:1 En lista över tidigare definierade referenser till anspråkstransformeringar som ska köras efter att anspråken har tagits emot från anspråksprovidern.
ValidationTechnicalProfiles 0:n En lista över referenser till andra tekniska profiler som den tekniska profilen använder för valideringsändamål. Mer information finns i Teknisk verifieringsprofil.
SubjectNamingInfo 0:1 Styr produktionen av ämnesnamnet i token där ämnesnamnet anges separat från anspråk. Exempel är OAuth eller SAML.
IncludeInSso 0:1 Om användningen av den här tekniska profilen ska tillämpa SSO-beteende för sessionen eller i stället kräva explicit interaktion. Det här elementet är endast giltigt i SelfAsserted-profiler som används i en teknisk valideringsprofil. Möjliga värden är true (standard) eller false.
IncludeClaimsFromTechnicalProfile 0:1 En identifierare för en teknisk profil där du vill att alla in- och utdataanspråk ska läggas till i den här tekniska profilen. Den refererade tekniska profilen måste definieras i samma principfil.
IncludeTechnicalProfile 0:1 En identifierare för en teknisk profil där du vill att alla data ska läggas till i den här tekniska profilen.
UseTechnicalProfileForSessionManagement 0:1 En annan teknisk profil som ska användas för sessionshantering.
EnabledForUserJourneys 0:1 Styr om den tekniska profilen körs under en användarresa.

Protokoll

Protokollelementet anger vilket protokoll som ska användas för kommunikationen med den andra parten. Protokollelementet innehåller följande attribut:

Attribut Obligatoriskt Beskrivning
Name Ja Namnet på ett giltigt protokoll som stöds av Azure AD B2C som används som en del av den tekniska profilen. Möjliga värden är OAuth1, OAuth2, SAML2, OpenIdConnect, Proprietaryeller None.
Hanterare Nej När protokollnamnet är inställt på Proprietaryanger du namnet på den sammansättning som används av Azure AD B2C för att fastställa protokollhanteraren. Om du anger attributet protokollnamn till Noneska du inte inkludera attributet Handler.

Metadata

Metadataelementet innehåller relevanta konfigurationsalternativ för ett specifikt protokoll. Listan över metadata som stöds dokumenteras i motsvarande tekniska profilspecifikation . Ett metadataelement innehåller följande element:

Element Händelser beskrivning
Artikel 0:n Metadata som relaterar till den tekniska profilen. Varje typ av teknisk profil har olika uppsättning metadataobjekt. Mer information finns i avsnittet tekniska profiltyper.

Artikel

Elementet Item i metadataelementet innehåller följande attribut:

Attribut Obligatoriskt Beskrivning
Key Ja Metadatanyckeln. Se varje teknisk profiltyp för listan över metadataobjekt.

I följande exempel visas användningen av metadata som är relevanta för den tekniska OAuth2-profilen.

<TechnicalProfile Id="Facebook-OAUTH">
  ...
  <Metadata>
    <Item Key="ProviderName">facebook</Item>
    <Item Key="authorization_endpoint">https://www.facebook.com/dialog/oauth</Item>
    <Item Key="AccessTokenEndpoint">https://graph.facebook.com/oauth/access_token</Item>
    <Item Key="HttpBinding">GET</Item>
    <Item Key="UsePolicyInRedirectUri">0</Item>
    ...
  </Metadata>
  ...
</TechnicalProfile>

I följande exempel visas användningen av metadata som är relevanta för den tekniska REST API-profilen.

<TechnicalProfile Id="REST-Validate-Email">
  ...
  <Metadata>
    <Item Key="ServiceUrl">https://api.sendgrid.com/v3/mail/send</Item>
    <Item Key="AuthenticationType">Bearer</Item>
    <Item Key="SendClaimsIn">Body</Item>
    ...
  </Metadata>
  ...
</TechnicalProfile>

Krypteringsnycklar

Azure AD B2C lagrar hemligheter och certifikat i form av principnycklar för att upprätta förtroende med de tjänster som den integrerar med. Under den tekniska profilkörningen hämtar Azure AD B2C kryptografiska nycklar från Azure AD B2C-principnycklar. Sedan använder Azure AD B2C nycklarna för att upprätta förtroende eller kryptera eller signera en token. Dessa förtroenden består av:

CryptographicKeys-elementet innehåller följande element:

Element Händelser beskrivning
Key 1:n En kryptografisk nyckel som används i den här tekniska profilen.

Key

Nyckelelementet innehåller följande attribut:

Attribut Obligatoriskt Beskrivning
Id Nej En unik identifierare för ett visst nyckelpar som refereras från andra element i principfilen.
StorageReferenceId Ja En identifierare för en lagringsnyckelcontainer som refereras från andra element i principfilen.

Transformering av indataanspråk

Elementet InputClaimsTransformations kan innehålla en samling transformeringselement för indataanspråk som används för att ändra indataanspråk eller generera nya.

Utdataanspråken för en tidigare anspråkstransformering i anspråkstransformeringssamlingen kan vara indataanspråk för en efterföljande transformering av indataanspråk. På så sätt kan du ha en sekvens med anspråkstransformeringar som är beroende av varandra.

Elementet InputClaimsTransformations innehåller följande element:

Element Händelser beskrivning
InputClaimsTransformation 1:n Identifieraren för en anspråkstransformering som ska köras innan anspråk skickas till anspråksleverantören eller den förlitande parten. En anspråkstransformering kan användas för att ändra befintliga ClaimsSchema-anspråk eller generera nya.

InputClaimsTransformation

Elementet InputClaimsTransformation innehåller följande attribut:

Attribut Obligatoriskt Beskrivning
ReferenceId Ja En identifierare för en anspråkstransformering som redan definierats i principfilen eller den överordnade principfilen.

Följande tekniska profiler refererar till transformering av CreateOtherMailsFromEmail-anspråk . Anspråkstransformeringen lägger till värdet för anspråket email i otherMails samlingen innan data sparas i katalogen.

<TechnicalProfile Id="AAD-UserWriteUsingAlternativeSecurityId">
  ...
  <InputClaimsTransformations>
    <InputClaimsTransformation ReferenceId="CreateOtherMailsFromEmail" />
  </InputClaimsTransformations>
  <PersistedClaims>
    <PersistedClaim ClaimTypeReferenceId="alternativeSecurityId" />
    <PersistedClaim ClaimTypeReferenceId="userPrincipalName" />
    <PersistedClaim ClaimTypeReferenceId="mailNickName" DefaultValue="unknown" />
    <PersistedClaim ClaimTypeReferenceId="displayName" DefaultValue="unknown" />
    <PersistedClaim ClaimTypeReferenceId="otherMails" />
    <PersistedClaim ClaimTypeReferenceId="givenName" />
    <PersistedClaim ClaimTypeReferenceId="surname" />
  </PersistedClaims>
  ...
</TechnicalProfile>

Indataanspråk

Elementet InputClaims hämtar anspråk från anspråkspåsen som används för den tekniska profilen. En självsäkrad teknisk profil använder till exempel indataanspråken för att fylla i utdataanspråken som användaren tillhandahåller i förväg. En teknisk REST API-profil använder indataanspråken för att skicka indataparametrar till REST API-slutpunkten. Azure AD B2C använder ett indataanspråk som en unik identifierare för att läsa, uppdatera eller ta bort ett konto.

Elementet InputClaims innehåller följande element:

Element Händelser beskrivning
InputClaim 1:n En förväntad indataanspråkstyp.

InputClaim

Elementet InputClaim innehåller följande attribut:

Attribut Obligatoriskt Beskrivning
ClaimTypeReferenceId Ja Identifieraren för en anspråkstyp. Anspråket har redan definierats i avsnittet anspråksschema i principfilen eller den överordnade principfilen.
Standardvärde Nej Ett standardvärde som ska användas för att skapa ett anspråk om anspråket som anges av ClaimTypeReferenceId inte finns så att det resulterande anspråket kan användas som ett InputClaim-element av den tekniska profilen.
AlwaysUseDefaultValue Ja Tvingar fram användning av standardvärdet.
PartnerClaimType Nej Identifieraren för anspråkstypen för den externa partner som den angivna principanspråkstypen mappar till. Om attributet PartnerClaimType inte har angetts mappas den angivna principanspråkstypen till partneranspråkstypen med samma namn. Använd den här egenskapen när namnet på anspråkstypen skiljer sig från den andra parten. Ett exempel är om det första anspråksnamnet är givenName, medan partnern använder ett anspråk med namnet first_name.

Visa anspråk

Elementet DisplayClaims innehåller en lista över anspråk som ska visas på skärmen för att samla in data från användaren. I samlingen visningsanspråk kan du inkludera en referens till en anspråkstyp eller en visningskontroll som du har skapat.

  • En anspråkstyp är en referens till ett anspråk som ska visas 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.
    • 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.
    • Elementet ClaimType i Samlingen DisplayClaims måste ange userInputType-elementet till alla användarindatatyper som stöds av Azure AD B2C. Exempel är TextBox eller DropdownSingleSelect.
  • 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. Ett exempel är att verifiera en e-postadress, ett telefonnummer eller ett kundlojalitetsnummer.

Ordningen på elementen i DisplayClaims anger i vilken ordning Azure AD B2C återger anspråken på skärmen.

Elementet DisplayClaims innehåller följande element:

Element Händelser beskrivning
DisplayClaim 1:n En förväntad indataanspråkstyp.

DisplayClaim

Elementet DisplayClaim innehåller följande attribut:

Attribut Obligatoriskt Beskrivning
ClaimTypeReferenceId Nej Identifieraren för en anspråkstyp som redan har definierats i avsnittet ClaimsSchema i principfilen eller den överordnade principfilen.
DisplayControlReferenceId Nej Identifieraren för en visningskontroll som redan definierats i avsnittet ClaimsSchema i principfilen eller den överordnade principfilen.
Obligatoriskt Nej Anger om visningsanspråket krävs.

I följande exempel visas användningen av visningsanspråk och visningskontroller i en självkontrollerad teknisk profil.

Screenshot that shows a self-asserted technical profile with display claims.

I följande tekniska profil:

  • Det första visningsanspråket emailVerificationControl refererar till visningskontrollen, som samlar in och verifierar e-postadressen.
  • Det femte visningsanspråket phoneVerificationControl refererar till visningskontrollen, som samlar in och verifierar ett telefonnummer.
  • De andra visningsanspråken är ClaimType-element som ska samlas in från användaren.
<TechnicalProfile Id="Id">
  <DisplayClaims>
    <DisplayClaim DisplayControlReferenceId="emailVerificationControl" />
    <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>

Beständiga anspråk

Elementet PersistedClaims innehåller alla värden som ska bevaras av en teknisk Microsoft Entra-ID-profil med möjlig mappningsinformation mellan en anspråkstyp som redan definierats i avsnittet ClaimsSchema i principen och Microsoft Entra-attributnamnet.

Namnet på anspråket är namnet på Microsoft Entra-attributet såvida inte attributet PartnerClaimType har angetts, som innehåller attributet Microsoft Entra.

Elementet PersistedClaims innehåller följande element:

Element Händelser beskrivning
PersistedClaim 1:n Anspråkstypen som ska bevaras.

PersistedClaim

Elementet PersistedClaim innehåller följande attribut:

Attribut Obligatoriskt Beskrivning
ClaimTypeReferenceId Ja Identifieraren för en anspråkstyp som redan har definierats i avsnittet ClaimsSchema i principfilen eller den överordnade principfilen.
Standardvärde Nej Ett standardvärde som ska användas för att skapa ett anspråk om anspråket inte finns.
PartnerClaimType Nej Identifieraren för anspråkstypen för den externa partner som den angivna principanspråkstypen mappar till. Om attributet PartnerClaimType inte har angetts mappas den angivna principanspråkstypen till partneranspråkstypen med samma namn. Använd den här egenskapen när namnet på anspråkstypen skiljer sig från den andra parten. Ett exempel är om det första anspråksnamnet är givenName, medan partnern använder ett anspråk med namnet first_name.

I följande exempel bevarar den tekniska profilen AAD-UserWriteUsingLogonEmail eller startpaketet, som skapar ett nytt lokalt konto, följande anspråk:

<PersistedClaims>
  <PersistedClaim ClaimTypeReferenceId="email" PartnerClaimType="signInNames.emailAddress" />
  <PersistedClaim ClaimTypeReferenceId="newPassword" PartnerClaimType="password"/>
  <PersistedClaim ClaimTypeReferenceId="displayName" DefaultValue="unknown" />
  <PersistedClaim ClaimTypeReferenceId="passwordPolicies" DefaultValue="DisablePasswordExpiration" />
  <PersistedClaim ClaimTypeReferenceId="givenName" />
  <PersistedClaim ClaimTypeReferenceId="surname" />
</PersistedClaims>

Utdataanspråk

OutputClaims-elementet är en samling anspråk som returneras tillbaka till anspråkspåsen när den tekniska profilen har slutförts. Du kan använda dessa anspråk i nästa orkestreringssteg eller utgående anspråkstransformeringar. Elementet OutputClaims innehåller följande element:

Element Händelser beskrivning
OutputClaim 1:n En förväntad anspråkstyp för utdata.

OutputClaim

OutputClaim-elementet innehåller följande attribut:

Attribut Obligatoriskt Beskrivning
ClaimTypeReferenceId Ja Identifieraren för en anspråkstyp som redan har definierats i avsnittet ClaimsSchema i principfilen eller den överordnade principfilen.
Standardvärde Nej Ett standardvärde som ska användas för att skapa ett anspråk om anspråket inte finns.
AlwaysUseDefaultValue Nej Tvingar fram användning av standardvärdet.
PartnerClaimType Nej Identifieraren för anspråkstypen för den externa partner som den angivna principanspråkstypen mappar till. Om attributet partneranspråkstyp inte har angetts mappas den angivna principanspråkstypen till partneranspråkstypen med samma namn. Använd den här egenskapen när namnet på anspråkstypen skiljer sig från den andra parten. Ett exempel är om det första anspråksnamnet är givenName, medan partnern använder ett anspråk med namnet first_name.

Transformering av utdataanspråk

Elementet OutputClaimsTransformations kan innehålla en samling OutputClaimsTransformation-element. Omvandlingar av utdataanspråk används för att ändra utdataanspråken eller generera nya. Efter körningen läggs utdataanspråken tillbaka i anspråkspåsen. Du kan använda dessa anspråk i nästa orkestreringssteg.

Utdataanspråken för en tidigare anspråkstransformering i anspråkstransformeringssamlingen kan vara indataanspråk för en efterföljande transformering av indataanspråk. På så sätt kan du ha en sekvens med anspråkstransformeringar som är beroende av varandra.

Elementet OutputClaimsTransformations innehåller följande element:

Element Händelser beskrivning
OutputClaimsTransformation 1:n Identifierare för anspråkstransformeringar som ska köras innan anspråk skickas till anspråksleverantören eller den förlitande parten. En anspråkstransformering kan användas för att ändra befintliga ClaimsSchema-anspråk eller generera nya.

OutputClaimsTransformation

Elementet OutputClaimsTransformation innehåller följande attribut:

Attribut Obligatoriskt Beskrivning
ReferenceId Ja En identifierare för en anspråkstransformering som redan definierats i principfilen eller den överordnade principfilen.

Följande tekniska profil refererar till anspråksomvandlingen AssertAccountEnabledIsTrue för att utvärdera om kontot är aktiverat eller inte efter att ha läst anspråket accountEnabled från katalogen.

<TechnicalProfile Id="AAD-UserReadUsingEmailAddress">
  ...
  <OutputClaims>
    <OutputClaim ClaimTypeReferenceId="objectId" />
    <OutputClaim ClaimTypeReferenceId="authenticationSource" DefaultValue="localAccountAuthentication" />
    <OutputClaim ClaimTypeReferenceId="userPrincipalName" />
    <OutputClaim ClaimTypeReferenceId="displayName" />
    <OutputClaim ClaimTypeReferenceId="accountEnabled" />
    <OutputClaim ClaimTypeReferenceId="otherMails" />
    <OutputClaim ClaimTypeReferenceId="signInNames.emailAddress" />
  </OutputClaims>
  <OutputClaimsTransformations>
    <OutputClaimsTransformation ReferenceId="AssertAccountEnabledIsTrue" />
  </OutputClaimsTransformations>
  ...
</TechnicalProfile>

Tekniska valideringsprofiler

En teknisk valideringsprofil används för att verifiera utdataanspråk i en självsäkrad teknisk profil. En teknisk valideringsprofil är en vanlig teknisk profil från alla protokoll, till exempel Microsoft Entra-ID eller ett REST-API. Den tekniska valideringsprofilen returnerar utdataanspråk eller returnerar felkod. Felmeddelandet återges till användaren på skärmen, vilket gör att användaren kan försöka igen.

Följande diagram visar hur Azure AD B2C använder en teknisk valideringsprofil för att verifiera användarautentiseringsuppgifterna.

Diagram that shows a validation technical profile flow.

Elementet ValidationTechnicalProfiles innehåller följande element:

Element Händelser beskrivning
ValidationTechnicalProfile 1:n Identifierare för tekniska profiler som används verifierar vissa eller alla utdataanspråk för den refererande tekniska profilen. Alla indataanspråk för den refererade tekniska profilen måste visas i utdataanspråken för den refererande tekniska profilen.

ValidationTechnicalProfile

Elementet ValidationTechnicalProfile innehåller följande attribut:

Attribut Obligatoriskt Beskrivning
ReferenceId Ja En identifierare för en teknisk profil som redan har definierats i principfilen eller den överordnade principfilen.

SubjectNamingInfo

Elementet SubjectNamingInfo definierar det ämnesnamn som används i token i en förlitande partprincip. Elementet SubjectNamingInfo innehåller följande attribut:

Attribut Obligatoriskt Beskrivning
ClaimType Ja En identifierare av en anspråkstyp som redan har definierats i avsnittet ClaimsSchema i principfilen.

Inkludera teknisk profil

En teknisk profil kan innehålla en annan teknisk profil för att ändra inställningar eller lägga till nya funktioner. Elementet IncludeTechnicalProfile är en referens till den gemensamma tekniska profil som en teknisk profil härleds från. Om du vill minska redundansen och komplexiteten för dina principelement använder du inkludering när du har flera tekniska profiler som delar kärnelementen. Använd en gemensam teknisk profil med den gemensamma konfigurationsuppsättningen, tillsammans med specifika tekniska aktivitetsprofiler som innehåller den gemensamma tekniska profilen.

Anta att du har en teknisk REST API-profil med en enda slutpunkt där du behöver skicka olika uppsättningar anspråk för olika scenarier. Skapa en gemensam teknisk profil med delade funktioner, till exempel REST API-slutpunkts-URI, metadata, autentiseringstyp och kryptografiska nycklar. Skapa specifika tekniska aktivitetsprofiler som innehåller den gemensamma tekniska profilen. Lägg sedan till indata- och utdataanspråken eller skriv över REST API-slutpunkts-URI:n som är relevant för den tekniska profilen.

Elementet IncludeTechnicalProfile innehåller följande attribut:

Attribut Obligatoriskt Beskrivning
ReferenceId Ja En identifierare för en teknisk profil som redan har definierats i principfilen eller den överordnade principfilen.

I följande exempel visas användningen av inkluderingen:

  • REST-API-Common: En vanlig teknisk profil med den grundläggande konfigurationen.
  • REST-ValidateProfile: Innehåller den tekniska REST-API-Common-profilen och anger indata- och utdataanspråken.
  • REST-UpdateProfile: Innehåller den tekniska REST-API-Common-profilen , anger indataanspråken och skriver ServiceUrl över metadata.
<ClaimsProvider>
  <DisplayName>REST APIs</DisplayName>
  <TechnicalProfiles>
    <TechnicalProfile Id="REST-API-Common">
      <DisplayName>Base REST API configuration</DisplayName>
      <Protocol Name="Proprietary" Handler="Web.TPEngine.Providers.RestfulProvider, Web.TPEngine, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null" />
      <Metadata>
        <Item Key="ServiceUrl">https://your-app-name.azurewebsites.NET/api/identity</Item>
        <Item Key="AuthenticationType">Basic</Item>
        <Item Key="SendClaimsIn">Body</Item>
      </Metadata>
      <CryptographicKeys>
        <Key Id="BasicAuthenticationUsername" StorageReferenceId="B2C_1A_B2cRestClientId" />
        <Key Id="BasicAuthenticationPassword" StorageReferenceId="B2C_1A_B2cRestClientSecret" />
      </CryptographicKeys>
      <UseTechnicalProfileForSessionManagement ReferenceId="SM-Noop" />
    </TechnicalProfile>

    <TechnicalProfile Id="REST-ValidateProfile">
      <DisplayName>Validate the account and return promo code</DisplayName>
      <InputClaims>
        <InputClaim ClaimTypeReferenceId="objectId" />
        <InputClaim ClaimTypeReferenceId="email" />
        <InputClaim ClaimTypeReferenceId="userLanguage" PartnerClaimType="lang" DefaultValue="{Culture:LCID}" AlwaysUseDefaultValue="true" />
      </InputClaims>
      <OutputClaims>
        <OutputClaim ClaimTypeReferenceId="promoCode" />
      </OutputClaims>
      <IncludeTechnicalProfile ReferenceId="REST-API-Common" />
    </TechnicalProfile>

    <TechnicalProfile Id="REST-UpdateProfile">
      <DisplayName>Update the user profile</DisplayName>  
      <Metadata>
        <Item Key="ServiceUrl">https://your-app-name.azurewebsites.NET/api/identity/update</Item>
      </Metadata>
      <InputClaims>
        <InputClaim ClaimTypeReferenceId="objectId" />
        <InputClaim ClaimTypeReferenceId="email" />
      </InputClaims>
      <IncludeTechnicalProfile ReferenceId="REST-API-Common" />
    </TechnicalProfile>
  </TechnicalProfiles>
</ClaimsProvider>

Inkludering på flera nivåer

En teknisk profil kan innehålla en enda teknisk profil. Det finns ingen gräns för antalet inkluderingsnivåer. Till exempel innehåller den tekniska profilen AAD-UserReadUsingAlternativeSecurityId-NoError AAD-UserReadUsingAlternativeSecurityId. Den här tekniska profilen RaiseErrorIfClaimsPrincipalDoesNotExist anger metadataobjektet till true och genererar ett fel om ett socialt konto inte finns i katalogen. AAD-UserReadUsingAlternativeSecurityId-NoError åsidosätter det här beteendet och inaktiverar det felmeddelandet.

<TechnicalProfile Id="AAD-UserReadUsingAlternativeSecurityId-NoError">
  <Metadata>
    <Item Key="RaiseErrorIfClaimsPrincipalDoesNotExist">false</Item>
  </Metadata>
  <IncludeTechnicalProfile ReferenceId="AAD-UserReadUsingAlternativeSecurityId" />
</TechnicalProfile>

AAD-UserReadUsingAlternativeSecurityId innehåller den AAD-Common tekniska profilen.

<TechnicalProfile Id="AAD-UserReadUsingAlternativeSecurityId">
  <Metadata>
    <Item Key="Operation">Read</Item>
    <Item Key="RaiseErrorIfClaimsPrincipalDoesNotExist">true</Item>
    <Item Key="UserMessageIfClaimsPrincipalDoesNotExist">User does not exist. Please sign up before you can sign in.</Item>
  </Metadata>
  <InputClaims>
    <InputClaim ClaimTypeReferenceId="AlternativeSecurityId" PartnerClaimType="alternativeSecurityId" Required="true" />
  </InputClaims>
  <OutputClaims>
    <OutputClaim ClaimTypeReferenceId="objectId" />
    <OutputClaim ClaimTypeReferenceId="userPrincipalName" />
    <OutputClaim ClaimTypeReferenceId="displayName" />
    <OutputClaim ClaimTypeReferenceId="otherMails" />
    <OutputClaim ClaimTypeReferenceId="givenName" />
    <OutputClaim ClaimTypeReferenceId="surname" />
  </OutputClaims>
  <IncludeTechnicalProfile ReferenceId="AAD-Common" />
</TechnicalProfile>

Både AAD-UserReadUsingAlternativeSecurityId-NoError och AAD-UserReadUsingAlternativeSecurityId anger inte det protokollelement som krävs eftersom det anges i den tekniska AAD-Common-profilen.

<TechnicalProfile Id="AAD-Common">
  <DisplayName>Azure Active Directory</DisplayName>
  <Protocol Name="Proprietary" Handler="Web.TPEngine.Providers.AzureActiveDirectoryProvider, Web.TPEngine, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null" />
  ...
</TechnicalProfile>

Använda teknisk profil för sessionshantering

Elementet UseTechnicalProfileForSessionManagement refererar till den tekniska profilen för SSO-sessionen. Elementet UseTechnicalProfileForSessionManagement innehåller följande attribut:

Attribut Obligatoriskt Beskrivning
ReferenceId Ja En identifierare för en teknisk profil som redan har definierats i principfilen eller den överordnade principfilen.

Aktiverad för användarresor

ClaimsProviderSelections i en användarresa definierar listan över alternativ för val av anspråksprovider och deras ordning. Med elementet EnabledForUserJourneys filtrerar du vilken anspråksprovider som är tillgänglig för användaren. Elementet EnabledForUserJourneys innehåller något av följande värden:

  • Alltid: Kör den tekniska profilen.
  • Aldrig: Hoppar över den tekniska profilen.
  • OnClaimsExistence: Körs endast när ett visst anspråk som anges i den tekniska profilen finns.
  • OnItemExistenceInStringCollectionClaim: Körs endast när ett objekt finns i ett strängsamlingsanspråk.
  • OnItemAbsenceInStringCollectionClaim: Körs endast när ett objekt inte finns i ett strängsamlingsanspråk.

Om du använder OnClaimsExistence, OnItemExistenceInStringCollectionClaim eller OnItemAbsenceInStringCollectionClaim måste du ange följande metadata:

  • ClaimTypeOnWhichToEnable: Anger anspråkets typ som ska utvärderas.
  • ClaimValueOnWhichToEnable: Anger det värde som ska jämföras.

Följande tekniska profil körs endast om strängsamlingen identityProviders innehåller värdet facebook.com:

<TechnicalProfile Id="UnLink-Facebook-OAUTH">
  <DisplayName>Unlink Facebook</DisplayName>
...
    <Metadata>
      <Item Key="ClaimTypeOnWhichToEnable">identityProviders</Item>
      <Item Key="ClaimValueOnWhichToEnable">facebook.com</Item>
    </Metadata>
...
  <EnabledForUserJourneys>OnItemExistenceInStringCollectionClaim</EnabledForUserJourneys>
</TechnicalProfile>