Technické profily

Poznámka:

V Azure Active Directory B2C jsou vlastní zásady navržené především pro řešení složitých scénářů. Ve většině scénářů doporučujeme používat integrované toky uživatelů. Pokud jste to neudělali, přečtěte si informace o úvodním balíčku vlastních zásad v tématu Začínáme s vlastními zásadami ve službě Active Directory B2C.

Technický profil poskytuje architekturu s integrovaným mechanismem pro komunikaci s různými typy stran. Technické profily slouží ke komunikaci s tenantem Azure Active Directory B2C (Azure AD B2C) k vytvoření uživatele nebo čtení profilu uživatele. Technický profil může být samoobslužný, aby bylo možné povolit interakci s uživatelem. Technický profil může například shromáždit přihlašovací údaje uživatele pro přihlášení a pak vykreslit přihlašovací stránku nebo stránku pro resetování hesla.

Typy technických profilů

Technický profil umožňuje tyto typy scénářů:

  • Přehledy aplikace: Odesílá data událostí do Přehledy aplikace.
  • Microsoft Entra ID: Poskytuje podporu pro správu uživatelů Azure AD B2C.
  • Vícefaktorové ověřování Microsoft Entra: Poskytuje podporu pro ověření telefonního čísla pomocí vícefaktorového ověřování Microsoft Entra.
  • Transformace deklarací identity: Volá transformace výstupních deklarací identity pro manipulaci s hodnotami deklarací identity, ověřování deklarací identity nebo nastavení výchozích hodnot pro sadu výstupních deklarací identity.
  • Tip tokenu ID: Ověří podpis tokenu id_token_hint JWT, název vystavitele a cílovou skupinu tokenů a extrahuje deklaraci identity z příchozího tokenu.
  • Vystavitel tokenu JWT: Vygeneruje token JWT, který se vrátí zpět do aplikace předávající strany.
  • OAuth1: Federace s libovolným zprostředkovatelem identity protokolu OAuth 1.0.
  • OAuth2: Federace s libovolným zprostředkovatelem identity protokolu OAuth 2.0.
  • Jednorázové heslo: Poskytuje podporu pro správu generování a ověřování jednorázového hesla.
  • OpenID Připojení: Federace s libovolným zprostředkovatelem identity protokolu OpenID Připojení.
  • Telefon faktor: Podporuje registraci a ověření telefonních čísel.
  • Poskytovatel RESTful: Volá služby REST API, jako je ověřování vstupu uživatele, rozšiřování uživatelských dat nebo integrace s podnikovými aplikacemi.
  • Zprostředkovatel identity SAML: Federace s libovolným zprostředkovatelem identity protokolu SAML.
  • Vystavitel tokenu SAML: Generuje token SAML, který se vrátí zpět do aplikace předávající strany.
  • Self-asserted: Komunikuje s uživatelem. Například shromáždí přihlašovací údaje uživatele pro přihlášení, vykreslí přihlašovací stránku nebo resetuje heslo.
  • Správa relací: Zpracovává různé typy relací.

Tok technického profilu

Všechny typy technických profilů sdílejí stejný koncept. Začínají čtením vstupních deklarací identity a spouštěním transformací deklarací identity. Pak komunikují s nakonfigurovanou stranou, například se zprostředkovatelem identity, rozhraním REST API nebo adresářovými službami Microsoft Entra. Po dokončení procesu vrátí technický profil výstupní deklarace identity a může spouštět transformace výstupních deklarací identity. Následující diagram znázorňuje zpracování transformací a mapování odkazovaných v technickém profilu. Po provedení transformace deklarací identity se výstupní deklarace identity okamžitě uloží do tašky deklarací identity bez ohledu na stranu, se které technický profil komunikuje.

Diagram that illustrates the technical profile flow.

  1. Správa relací jednotného přihlašování: Obnoví stav relace technického profilu pomocí správy relací jednotného přihlašování.
  2. Vstupní transformace deklarací identity: Před spuštěním technického profilu spustí Azure AD B2C vstupní transformaci deklarací identity.
  3. Vstupní deklarace identity: Deklarace identity jsou vyzvednuty z tašky deklarací, které se používají pro technický profil.
  4. Provádění technického profilu: Technický profil vyměňuje deklarace identity s nakonfigurovanou stranou. Příklad:
    • Přesměruje uživatele na zprostředkovatele identity a dokončí přihlášení. Po úspěšném přihlášení se uživatel vrátí zpět a provádění technického profilu bude pokračovat.
    • Volá rozhraní REST API při odesílání parametrů jako InputClaims a získávání informací zpět jako OutputClaims.
    • Vytvoří nebo aktualizuje uživatelský účet.
    • Odešle a ověří vícefaktorovou ověřovací textovou zprávu.
  5. Technické profily ověření: Technický profil s vlastním kontrolním výrazem může volat technické profily ověření, aby ověřil profil dat profilovaný uživatelem. Technické profily s vlastním kontrolním výrazem můžou používat ověřovací technické profily.
  6. Výstupní deklarace identity: Deklarace identity se vrátí zpět do tašky deklarací identity. Tyto deklarace identity můžete použít v dalším kroku orchestrace nebo v transformacích výstupních deklarací identity.
  7. Transformace výstupních deklarací identity: Po dokončení technického profilu spustí Azure AD B2C výstupní transformace deklarací identity.
  8. Správa relací jednotného přihlašování: Data technického profilu se zachovají do relace pomocí správy relací jednotného přihlašování.

Element TechnicalProfiles obsahuje sadu technických profilů podporovaných zprostředkovatelem deklarací identity. Každý zprostředkovatel deklarací identity musí mít alespoň jeden technický profil. Technický profil určuje koncové body a protokoly potřebné ke komunikaci se zprostředkovatelem deklarací identity. Zprostředkovatel deklarací identity může mít více technických profilů.

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

Element TechnicalProfile obsahuje následující atribut:

Atribut Požadováno Popis
Id Ano Jedinečný identifikátor technického profilu. Na technický profil lze odkazovat pomocí tohoto identifikátoru z jiných prvků v souboru zásad. Příklady jsou OrchestrationSteps a ValidationTechnicalProfile.

Element TechnicalProfile obsahuje následující prvky:

Element (Prvek) Výskyty Popis
Doména 0:1 Název domény pro technický profil. Pokud váš technický profil například určuje zprostředkovatele identity Facebooku, název domény se Facebook.com.
DisplayName 1:1 Zobrazovaný název technického profilu.
Popis 0:1 Popis technického profilu.
Protokol 1:1 Protokol použitý pro komunikaci s druhou stranou.
Metadata 0:1 Sada klíčů a hodnot, které řídí chování technického profilu.
InputTokenFormat 0:1 Formát vstupního tokenu. Možné hodnoty jsou JSON, , SAML11JWTnebo SAML2. Hodnota JWT představuje webový token JSON podle specifikace IETF. Hodnota SAML11 představuje token zabezpečení SAML 1.1 podle specifikace OASIS. Hodnota SAML2 představuje token zabezpečení SAML 2.0 podle specifikace OASIS.
OutputTokenFormat 0:1 Formát výstupního tokenu. Možné hodnoty jsou JSON, , SAML11JWTnebo SAML2.
Kryptografické klíče 0:1 Seznam kryptografických klíčů, které se používají v technickém profilu.
InputClaimsTransformations 0:1 Seznam dříve definovaných odkazů na transformace deklarací identity, které by se měly provést před odesláním deklarací identity zprostředkovateli deklarací identity nebo předávající straně.
InputClaims 0:1 Seznam dříve definovaných odkazů na typy deklarací identity, které jsou považovány za vstup v technickém profilu.
Trvaléclaims 0:1 Seznam dříve definovaných odkazů na typy deklarací identity, které budou zachovány technickým profilem.
DisplayClaims 0:1 Seznam dříve definovaných odkazů na typy deklarací, které jsou prezentovány vlastním technickým profilem. Funkce DisplayClaims je aktuálně ve verzi Preview.
OutputClaims 0:1 Seznam dříve definovaných odkazů na typy deklarací identity, které jsou převzaty jako výstup v technickém profilu.
OutputClaimsTransformations 0:1 Seznam dříve definovaných odkazů na transformace deklarací identity, které by se měly provést po přijetí deklarací identity od zprostředkovatele deklarací.
Ověřovacíprofiles 0:n Seznam odkazů na jiné technické profily, které technický profil používá pro účely ověřování. Další informace naleznete v tématu Ověření technického profilu.
SubjectNamingInfo 0:1 Řídí produkci názvu subjektu v tokenech, kde je název subjektu určen odděleně od deklarací identity. Příklady jsou OAuth nebo SAML.
IncludeInSso 0:1 Bez ohledu na to, jestli by použití tohoto technického profilu mělo použít chování jednotného přihlašování pro relaci, nebo vyžaduje explicitní interakci. Tento prvek je platný pouze v profilech SelfAsserted používaných v rámci technického profilu ověření. Možné hodnoty jsou true (výchozí) nebo false.
IncludeClaimsFromTechnicalProfile 0:1 Identifikátor technického profilu, ze kterého chcete přidat všechny vstupní a výstupní deklarace identity do tohoto technického profilu. Odkazovaný technický profil musí být definován ve stejném souboru zásad.
IncludeTechnicalProfile 0:1 Identifikátor technického profilu, ze kterého chcete přidat všechna data do tohoto technického profilu.
UseTechnicalProfileForSessionManagement 0:1 Jiný technický profil, který se má použít ke správě relací.
EnabledForUserJourneys 0:1 Určuje, jestli se technický profil provádí na cestě uživatele.

Protokol

Element Protocol určuje protokol, který se má použít pro komunikaci s druhou stranou. Element Protocol obsahuje následující atributy:

Atribut Požadováno Popis
Name Ano Název platného protokolu podporovaného Službou Azure AD B2C, který se používá jako součást technického profilu. Možné hodnoty jsou OAuth1, , OAuth2, OpenIdConnectSAML2, Proprietary, nebo None.
Obslužná rutina No Pokud je název protokolu nastavený na Proprietary, určuje název sestavení, které používá Azure AD B2C k určení obslužné rutiny protokolu. Pokud nastavíte atribut Název protokolu na , nezahrnujte atribut obslužné rutiny.None

Metadata

Element Metadata obsahuje relevantní možnosti konfigurace pro konkrétní protokol. Seznam podporovaných metadat je zdokumentovaný v odpovídající specifikaci technického profilu . Element Metadata obsahuje následující prvek:

Element (Prvek) Výskyty Popis
Zboží 0:n Metadata, která se vztahují k technickému profilu. Každý typ technického profilu má jinou sadu položek metadat. Další informace najdete v části typy technických profilů.

Zboží

Element Item elementu Metadata obsahuje následující atribut:

Atribut Požadováno Popis
Legenda Ano Klíč metadat. Seznampoložekch

Následující příklad ukazuje použití metadat relevantních pro technický profil OAuth2.

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

Následující příklad ukazuje použití metadat relevantních pro technický profil rozhraní REST API.

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

Kryptografické klíče

Azure AD B2C ukládá tajné kódy a certifikáty ve formě klíčů zásad, aby navázala vztah důvěryhodnosti se službami, se kterými se integruje. Během provádění technického profilu azure AD B2C načte kryptografické klíče z klíčů zásad Azure AD B2C. Azure AD B2C pak pomocí klíčů vytvoří vztah důvěryhodnosti nebo zašifruje nebo podepíše token. Tyto vztahy důvěryhodnosti se skládají z:

Element CryptographicKeys obsahuje následující prvek:

Element (Prvek) Výskyty Popis
Legenda 1:n Kryptografický klíč použitý v tomto technickém profilu.

Key

Element Key obsahuje následující atribut:

Atribut Požadováno Popis
Id No Jedinečný identifikátor konkrétní dvojice klíčů odkazovaný z jiných prvků v souboru zásad.
StorageReferenceId Ano Identifikátor kontejneru klíče úložiště odkazovaného z jiných prvků v souboru zásad.

Transformace vstupních deklarací identity

Element InputClaimsTransformations může obsahovat kolekci vstupních transformačních elementů deklarací, které se používají k úpravě vstupních deklarací nebo generování nových.

Výstupní deklarace identity předchozí transformace deklarací identity v kolekci transformací deklarací identity mohou být vstupními deklaracemi následných vstupních transformací deklarací. Tímto způsobem můžete mít posloupnost transformací deklarací identity, které na sobě závisejí.

Element InputClaimsTransformations obsahuje následující prvek:

Element (Prvek) Výskyty Popis
InputClaimsTransformation 1:n Identifikátor transformace deklarací identity, která by se měla provést před odesláním deklarací identity zprostředkovateli deklarací identity nebo předávající straně. Transformace deklarací identity se dá použít k úpravě existujících deklarací deklarací identity ClaimsSchema nebo generování nových deklarací identity.

InputClaimsTransformation

Element InputClaimsTransformation obsahuje následující atribut:

Atribut Požadováno Popis
ReferenceId Ano Identifikátor transformace deklarací identity, která je již definována v souboru zásad nebo nadřazeného souboru zásad.

Následující technické profily odkazují na transformaci deklarací deklarací identity CreateOtherMailsFromEmail . Transformace deklarací identity přidá hodnotu email deklarace identity do otherMails kolekce před uložením dat do adresáře.

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

Vstupní deklarace identity

Element InputClaims přebírá deklarace identity z tašky deklarací, které se používají pro technický profil. Například technický profil s vlastním uplatněním používá vstupní deklarace identity k předvyplňování výstupních deklarací identity, které uživatel poskytuje. Technický profil rozhraní REST API používá vstupní deklarace identity k odesílání vstupních parametrů do koncového bodu rozhraní REST API. Azure AD B2C používá vstupní deklaraci identity jako jedinečný identifikátor ke čtení, aktualizaci nebo odstranění účtu.

Element InputClaims obsahuje následující prvek:

Element (Prvek) Výskyty Popis
InputClaim 1:n Očekávaný typ vstupní deklarace identity.

InputClaim

Element InputClaim obsahuje následující atributy:

Atribut Požadováno Popis
ClaimTypeReferenceId Ano Identifikátor typu deklarace identity. Deklarace identity je již definována v části schématu deklarací identity v souboru zásad nebo nadřazeného souboru zásad.
Defaultvalue No Výchozí hodnota, která se má použít k vytvoření deklarace identity, pokud deklarace identity označená ClaimTypeReferenceId neexistuje, takže výsledná deklarace identity může být použita jako element InputClaim technickým profilem.
AlwaysUseDefaultValue Ano Vynutí použití výchozí hodnoty.
PartnerClaimType No Identifikátor typu deklarace identity externího partnera, na který se určený typ deklarace zásad mapuje. Pokud není zadaný atribut PartnerClaimType, zadaný typ deklarace identity zásad se mapuje na typ deklarace identity partnera se stejným názvem. Tuto vlastnost použijte, pokud se název typu deklarace identity liší od jiné strany. Příkladem je, pokud je jméno první deklarace identity danéName, zatímco partner používá deklaraci identity s názvem first_name.

Zobrazení deklarací identity

Prvek DisplayClaims obsahuje seznam deklarací identity, které se mají zobrazit na obrazovce ke shromažďování dat od uživatele. V kolekci zobrazovaných deklarací identity můžete zahrnout odkaz na typ deklarace identity nebo ovládací prvek zobrazení, který jste vytvořili.

  • Typ deklarace identity je odkaz na deklaraci identity, která se má zobrazit na obrazovce.
    • Chcete-li vynutit, aby uživatel poskytnout hodnotu pro konkrétní deklaraci identity, nastavte Required atribut DisplayClaim elementu na true.
    • Chcete-li předem naplní hodnoty zobrazovaných deklarací identity, použijte vstupní deklarace identity, které byly dříve popsány. Prvek může také obsahovat výchozí hodnotu.
    • Element ClaimType v kolekci DisplayClaims musí nastavit Element UserInputType na libovolný typ vstupu uživatele podporovaný službou Azure AD B2C. Příklady jsou TextBox nebo DropdownSingleSelect.
  • Ovládací prvek zobrazení je prvek uživatelského rozhraní, který má speciální funkce a komunikuje s back-endovou službou Azure AD B2C. Umožňuje uživateli provádět akce na stránce, které vyvolávají technický profil ověření na back-endu. Příkladem je ověření e-mailové adresy, telefonního čísla nebo partnerského čísla zákazníka.

Pořadí prvků v DisplayClaims určuje pořadí, ve kterém Azure AD B2C vykresluje deklarace na obrazovce.

Element DisplayClaims obsahuje následující prvek:

Element (Prvek) Výskyty Popis
DisplayClaim 1:n Očekávaný typ vstupní deklarace identity.

DisplayClaim

Element DisplayClaim obsahuje následující atributy:

Atribut Požadováno Popis
ClaimTypeReferenceId No Identifikátor typu deklarace identity, který je již definován v části ClaimsSchema v souboru zásad nebo nadřazeném souboru zásad.
DisplayControlReferenceId No Identifikátor ovládacího prvku zobrazení, který je již definován v oddílu ClaimsSchema v souboru zásad nebo nadřazeném souboru zásad.
Požaduje se No Určuje, jestli se vyžaduje deklarace identity zobrazení.

Následující příklad ukazuje použití zobrazovaných deklarací identity a ovládacích prvků zobrazení v samostatném technickém profilu.

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

V následujícím technickém profilu:

  • První deklarace identity zobrazení odkazuje na emailVerificationControl ovládací prvek zobrazení, který shromažďuje a ověřuje e-mailovou adresu.
  • Pátá deklarace identity zobrazení odkazuje na phoneVerificationControl ovládací prvek zobrazení, který shromažďuje a ověřuje telefonní číslo.
  • Ostatní zobrazované deklarace identity jsou elementy ClaimType, které se mají shromažďovat od uživatele.
<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>

Trvalé deklarace identity

Element PersistedClaims obsahuje všechny hodnoty, které by měly být zachovány technickým profilem Microsoft Entra ID s možnými informacemi o mapování mezi typem deklarace identity, který je již definován v části ClaimsSchema v zásadách a název atributu Microsoft Entra.

Název deklarace identity je název atributu Microsoft Entra, pokud není zadán atribut PartnerClaimType, který obsahuje název atributu Microsoft Entra.

Element PersistedClaims obsahuje následující prvek:

Element (Prvek) Výskyty Popis
Trvalý seznamClaim 1:n Typ deklarace identity, který se má zachovat.

Trvalý seznamClaim

Element PersistedClaim obsahuje následující atributy:

Atribut Požadováno Popis
ClaimTypeReferenceId Ano Identifikátor typu deklarace identity, který je již definován v části ClaimsSchema v souboru zásad nebo nadřazeném souboru zásad.
Defaultvalue No Výchozí hodnota, která se má použít k vytvoření deklarace identity, pokud deklarace identity neexistuje.
PartnerClaimType No Identifikátor typu deklarace identity externího partnera, na který se určený typ deklarace zásad mapuje. Pokud není zadaný atribut PartnerClaimType, zadaný typ deklarace identity zásad se mapuje na typ deklarace identity partnera se stejným názvem. Tuto vlastnost použijte, pokud se název typu deklarace identity liší od jiné strany. Příkladem je, pokud je jméno první deklarace identity danéName, zatímco partner používá deklaraci identity s názvem first_name.

V následujícím příkladu technický profil AAD-UserWriteUsingLogonEmail nebo počáteční balíček, který vytvoří nový místní účet, zachová následující deklarace identity:

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

Výstupní deklarace identity

OutputClaims element je kolekce deklarací identity, které se vrátí zpět do tašky deklarací identity po dokončení technického profilu. Tyto deklarace identity můžete použít v dalším kroku orchestrace nebo v transformacích výstupních deklarací identity. OutputClaims element obsahuje následující prvek:

Element (Prvek) Výskyty Popis
OutputClaim 1:n Očekávaný výstupní typ deklarace identity.

OutputClaim

Element OutputClaim obsahuje následující atributy:

Atribut Požadováno Popis
ClaimTypeReferenceId Ano Identifikátor typu deklarace identity, který je již definován v části ClaimsSchema v souboru zásad nebo nadřazeném souboru zásad.
Defaultvalue No Výchozí hodnota, která se má použít k vytvoření deklarace identity, pokud deklarace identity neexistuje.
AlwaysUseDefaultValue No Vynutí použití výchozí hodnoty.
PartnerClaimType No Identifikátor typu deklarace identity externího partnera, na který se určený typ deklarace zásad mapuje. Pokud není zadaný atribut typu deklarace identity partnera, namapuje se zadaný typ deklarace zásad na typ deklarace identity partnera se stejným názvem. Tuto vlastnost použijte, pokud se název typu deklarace identity liší od jiné strany. Příkladem je, pokud je jméno první deklarace identity danéName, zatímco partner používá deklaraci identity s názvem first_name.

Transformace výstupních deklarací identity

OutputClaimsTransformations element může obsahovat kolekci OutputClaimsTransformation elementů. Transformace výstupních deklarací identity se používají k úpravě výstupních deklarací identity nebo generování nových deklarací identity. Po spuštění se výstupní deklarace identity vrátí do tašky deklarací identity. Tyto deklarace identity můžete použít v dalším kroku orchestrace.

Výstupní deklarace identity předchozí transformace deklarací identity v kolekci transformací deklarací identity mohou být vstupními deklaracemi následných vstupních transformací deklarací. Tímto způsobem můžete mít posloupnost transformací deklarací identity, které na sobě závisejí.

OutputClaimsTransformations element obsahuje následující prvek:

Element (Prvek) Výskyty Popis
OutputClaimsTransformation 1:n Identifikátory transformací deklarací identity, které by se měly provést před odesláním deklarací identity zprostředkovateli deklarací identity nebo předávající straně. Transformace deklarací identity se dá použít k úpravě existujících deklarací deklarací identity ClaimsSchema nebo generování nových deklarací identity.

OutputClaimsTransformation

OutputClaimsTransformation element obsahuje následující atribut:

Atribut Požadováno Popis
ReferenceId Ano Identifikátor transformace deklarací identity, která je již definována v souboru zásad nebo nadřazeného souboru zásad.

Následující technický profil odkazuje na transformaci deklarací identity AssertAccountEnabledIsTrue a vyhodnotí, jestli je účet povolený nebo ne po přečtení accountEnabled deklarace identity z adresáře.

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

Technické profily ověřování

Technický profil ověření se používá k ověřování výstupních deklarací identity v technickém profilu s vlastním kontrolním výrazem. Technický profil ověření je běžný technický profil z libovolného protokolu, jako je NAPŘÍKLAD MICROSOFT Entra ID nebo REST API. Technický profil ověření vrátí výstupní deklarace identity nebo vrátí kód chyby. Chybová zpráva se zobrazí uživateli na obrazovce, což uživateli umožní opakovat akci.

Následující diagram znázorňuje, jak Azure AD B2C používá k ověření přihlašovacích údajů uživatele technický profil ověření.

Diagram that shows a validation technical profile flow.

Element ValidationTechnicalProfiles obsahuje následující prvek:

Element (Prvek) Výskyty Popis
ValidationTechnicalProfile 1:n Identifikátory technických profilů, které se používají, ověřují některé nebo všechny výstupní deklarace identity odkazujícího technického profilu. Všechny vstupní deklarace identity odkazovaného technického profilu musí být uvedeny ve výstupních deklarací identity odkazujícího technického profilu.

ValidationTechnicalProfile

Element ValidationTechnicalProfile obsahuje následující atribut:

Atribut Požadováno Popis
ReferenceId Ano Identifikátor technického profilu, který je již definován v souboru zásad nebo nadřazeného souboru zásad.

SubjectNamingInfo

SubjectNamingInfo element definuje název subjektu použitý v tokenech v zásadách předávající strany. Element SubjectNamingInfo obsahuje následující atribut:

Atribut Požadováno Popis
ClaimType Ano Identifikátor typu deklarace identity již definovaný v oddílu ClaimsSchema v souboru zásad.

Zahrnout technický profil

Technický profil může obsahovat jiný technický profil, který může změnit nastavení nebo přidat nové funkce. Element IncludeTechnicalProfile je odkazem na společný technický profil, ze kterého je odvozen technický profil. Pokud chcete snížit redundanci a složitost prvků zásad, použijte zahrnutí, pokud máte více technických profilů, které sdílejí základní prvky. Použijte společný technický profil se společnou sadou konfigurace spolu s konkrétními technickými profily úloh, které zahrnují společný technický profil.

Předpokládejme, že máte technický profil rozhraní REST API s jedním koncovým bodem, kde potřebujete odesílat různé sady deklarací identity pro různé scénáře. Vytvořte společný technický profil se sdílenými funkcemi, jako je identifikátor URI koncového bodu rozhraní REST API, metadata, typ ověřování a kryptografické klíče. Vytvořte konkrétní technické profily úkolů, které zahrnují společný technický profil. Pak přidejte vstupní a výstupní deklarace identity nebo přepište identifikátor URI koncového bodu rozhraní REST API, který je relevantní pro tento technický profil.

Element IncludeTechnicalProfile obsahuje následující atribut:

Atribut Požadováno Popis
ReferenceId Ano Identifikátor technického profilu, který je již definován v souboru zásad nebo nadřazeného souboru zásad.

Následující příklad ukazuje použití zahrnutí:

  • REST-API-Common: Společný technický profil se základní konfigurací.
  • REST-ValidateProfile: Zahrnuje technický profil REST-API-Common a určuje vstupní a výstupní deklarace identity.
  • REST-UpdateProfile: Zahrnuje technický profil REST-API-Common , určuje vstupní deklarace identity a přepíše ServiceUrl 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>

Víceúrovňové zahrnutí

Technický profil může obsahovat jeden technický profil. Počet úrovní zahrnutí není nijak omezený. Technický profil AAD-UserReadUsingAlternativeSecurityId-NoError zahrnuje AAD-UserReadUsingAlternativeSecurityId. Tento technický profil nastaví RaiseErrorIfClaimsPrincipalDoesNotExist položku metadat na true položku metadat a vyvolá chybu, pokud v adresáři neexistuje účet sociální sítě. AAD-UserReadUsingAlternativeSecurityId-NoError toto chování přepíše a zakáže tuto chybovou zprávu.

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

AAD-UserReadUsingAlternativeSecurityId zahrnuje AAD-Common technický profil.

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

AAD-UserReadUsingAlternativeSecurityId-NoError a AAD-UserReadUsingAlternativeSecurityId nezadávají požadovaný element protokolu, protože je zadaný v technickém profilu AAD-Common.

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

Použití technického profilu pro správu relací

Element UseTechnicalProfileForSessionManagement odkazuje na technický profil relace jednotného přihlašování. UseTechnicalProfileForSessionManagement element obsahuje následující atribut:

Atribut Požadováno Popis
ReferenceId Ano Identifikátor technického profilu, který je již definován v souboru zásad nebo nadřazeného souboru zásad.

Povoleno pro cesty uživatelů

ClaimsProviderSelections v cestě uživatele definuje seznam možností výběru zprostředkovatele deklarací a jejich pořadí. S EnabledForUserJourneys element, který zprostředkovatele deklarací je k dispozici pro uživatele. EnabledForUserJourneys element obsahuje jednu z následujících hodnot:

  • Vždy: Spustí technický profil.
  • Nikdy: Přeskočí technický profil.
  • OnClaimsExistence: Provede se pouze v případech, kdy existuje určitá deklarace identity zadaná v technickém profilu.
  • OnItemExistenceInStringCollectionClaim: Provede se pouze v případě, že položka existuje v deklaraci deklarace kolekce řetězců.
  • OnItemAbsenceInStringCollectionClaim: Provede se pouze v případě, že položka v deklaraci identity kolekce řetězců neexistuje.

Použití OnClaimsExistence, OnItemExistenceInStringCollectionClaim nebo OnItemAbsenceInStringCollectionClaim vyžaduje, abyste zadali následující metadata:

  • ClaimTypeOnWhichToEnable: Určuje typ deklarace identity, který se má vyhodnotit.
  • ClaimValueOnWhichToEnable: Určuje hodnotu, která se má porovnat.

Následující technický profil se spustí pouze v případě, že kolekce řetězců identityProviders obsahuje hodnotu 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>