Definování technického profilu s vlastním kontrolním výrazem ve vlastních zásadách Azure Active Directory B2C

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.

Všechny interakce ve službě Azure Active Directory B2C (Azure AD B2C), u kterých se očekává, že uživatel poskytne vstup, jsou technické profily s vlastním uplatněním. Například registrační stránku, přihlašovací stránku nebo stránku pro resetování hesla.

Protokol

Atribut Name elementu Protocol musí být nastaven na Proprietary. Atribut obslužné rutiny musí obsahovat plně kvalifikovaný název sestavení obslužné rutiny protokolu, které používá Azure AD B2C pro samoobslužné uplatnění: Web.TPEngine.Providers.SelfAssertedAttributeProvider, Web.TPEngine, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null

Následující příklad ukazuje samoobslužný technický profil pro registraci e-mailu:

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

Vstupní deklarace identity

V samostatném technickém profilu můžete použít elementy InputClaims a InputClaimsTransformations k předběžnému naplnění hodnoty deklarací, které se zobrazí na stránce s vlastním kontrolním výrazem (zobrazení deklarací). Například v zásadách úprav profilu uživatel nejprve načte profil uživatele z adresářové služby Azure AD B2C a pak vlastní kontrolní technický profil nastaví vstupní deklarace identity s uživatelskými daty uloženými v profilu uživatele. Tyto deklarace identity se shromažďují z profilu uživatele a pak se předávají uživateli, který pak může upravovat existující data.

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

Zobrazení deklarací identity

Element DisplayClaims obsahuje seznam deklarací identity, které se mají zobrazit na obrazovce pro shromažďování dat od uživatele. 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.

Pořadí deklarací identity v DisplayClaims určuje pořadí, ve kterém Azure AD B2C vykresluje deklarace na obrazovce. Chcete-li vynutit, aby uživatel poskytnout hodnotu pro konkrétní deklaraci identity, nastavte Required atribut DisplayClaim elementu na true.

Element ClaimType v kolekci DisplayClaims musí nastavit Element UserInputType na libovolný typ vstupu uživatele podporovaný službou Azure AD B2C. Například TextBox nebo DropdownSingleSelect.

Přidání odkazu na DisplayControl

V kolekci deklarací identity zobrazení můžete zahrnout odkaz na DisplayControl , který jste vytvořili. 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. Například ověření e-mailové adresy, telefonního čísla nebo partnerského čísla zákazníka.

Následující příklad TechnicalProfile ukazuje použití zobrazovaných deklarací identity s ovládacími prvky zobrazení.

  • První deklarace identity zobrazení odkazuje na emailVerificationControl ovládací prvek zobrazení, který shromažďuje a ověřuje e-mailovou adresu.
  • Druhá deklarace identity zobrazení odkazuje na captchaChallengeControl ovládací prvek zobrazení, který generuje a ověřuje kód CAPTCHA.
  • Šestá deklarace identity zobrazení odkazuje na phoneVerificationControl ovládací prvek zobrazení, který shromažďuje a ověřuje telefonní číslo.
  • Ostatní zobrazované deklarace identity jsou Deklarace identity, které se mají shromažďovat od uživatele.
<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>

Jak už bylo zmíněno, deklarace identity zobrazení s odkazem na ovládací prvek zobrazení může spustit vlastní ověření, například ověření e-mailové adresy. Kromě toho stránka s vlastním potvrzením podporuje použití technického profilu ověření k ověření celé stránky včetně vstupu uživatele (typů deklarací identity nebo ovládacích prvků zobrazení) před přechodem k dalšímu kroku orchestrace.

Pečlivě zkombinujte použití zobrazovaných deklarací identity a výstupních deklarací identity.

Pokud zadáte jeden nebo více prvků DisplayClaim v samostatném technickém profilu, musíte použít DisplayClaim pro každou deklaraci identity, kterou chcete zobrazit na obrazovce a shromažďovat od uživatele. Žádné výstupní deklarace identity se nezobrazují technickým profilem s vlastním kontrolním výrazem, který obsahuje alespoň jednu deklaraci identity zobrazení.

Podívejte se na následující příklad, ve kterém age je deklarace identity definována jako výstupní deklarace identity v základní zásadě. Před přidáním jakýchkoli zobrazovaných deklarací identity do technického profilu age s vlastním uplatněním se deklarace identity zobrazí na obrazovce pro shromažďování dat od uživatele:

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

Pokud zásada typu list, která dědí tento základ, následně určuje officeNumber jako zobrazovanou deklaraci identity:

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

Deklarace age identity v základní zásadě se už uživateli nezobrazuje na obrazovce – je v podstatě "skrytá". Pokud chcete zobrazit age deklaraci identity a shromáždit věkovou hodnotu od uživatele, musíte přidat ageDisplayClaim.

Výstupní deklarace identity

OutputClaims element obsahuje seznam deklarací identity, které se mají vrátit do dalšího kroku orchestrace. Atribut DefaultValue se projeví pouze v případě, že deklarace identity nebyla nastavena. Pokud byla nastavena v předchozím kroku orchestrace, výchozí hodnota se neprojeví, i když uživatel ponechá hodnotu prázdnou. Chcete-li vynutit použití výchozí hodnoty, nastavte AlwaysUseDefaultValue atribut na true.

Z bezpečnostníchdůvodůchUserInputTypePassword V dalších krocích orchestrace nelze použít deklaraci identity hesla.

Poznámka:

V předchozích verzích rozhraní IEF (Identity Experience Framework) se k shromažďování dat od uživatele použily výstupní deklarace identity. Pokud chcete shromažďovat data od uživatele, použijte místo toho kolekci DisplayClaims .

OutputClaimsTransformations element může obsahovat kolekci OutputClaimsTransformation elementů, které slouží k úpravě výstupních deklarací identity nebo generování nových.

Kdy byste měli použít výstupní deklarace identity

V technickém profilu s vlastním uplatněním vrátí výstupní kolekce deklarací identity deklarace identity dalšímu kroku orchestrace.

Výstupní deklarace identity použijte, když:

  • Deklarace identity jsou výstupem transformace výstupních deklarací identity.
  • Nastavení výchozí hodnoty ve výstupní deklaraci identity bez shromažďování dat od uživatele nebo vrácení dat z technického profilu ověření Technický LocalAccountSignUpWithLogonEmail profil s vlastním uplatněním nastaví deklaraci identity executed-SelfAsserted-Input na true.
  • Technický profil ověření vrátí výstupní deklarace identity – Váš technický profil může volat technický profil ověření, který vrací některé deklarace identity. Deklarace identity můžete chtít bublinovat a vrátit je k dalším krokům orchestrace na cestě uživatele. Například při přihlašování pomocí místního účtu volá technický profil s vlastním potvrzením pojmenovaný SelfAsserted-LocalAccountSignin-Email technický profil ověření s názvem login-NonInteractive. Tento technický profil ověří přihlašovací údaje uživatele a také vrátí profil uživatele. Například userPrincipalName, displayName, givenName a surName.
  • Ovládací prvek zobrazení vrátí výstupní deklarace identity – Váš technický profil může mít odkaz na ovládací prvek zobrazení. Ovládací prvek zobrazení vrátí některé deklarace identity, například ověřenou e-mailovou adresu. Deklarace identity můžete chtít bublinovat a vrátit je k dalším krokům orchestrace na cestě uživatele.

Následující příklad ukazuje použití technického profilu s vlastním uplatněním, který používá zobrazení deklarací identity i výstupní deklarace identity.

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

Poznámka:

Když shromáždíte hodnotu deklarace hesla v technickém profilu s vlastním uplatněním, bude tato hodnota k dispozici pouze ve stejném technickém profilu nebo v rámci ověřovacích technických profilů, na které odkazuje stejný technický profil s vlastním potvrzením. Po dokončení provádění tohoto technického profilu s vlastním uplatněním a přesune se do jiného technického profilu, hodnota hesla se ztratí. Deklarace hesla se proto může uložit pouze v kroku orchestrace, ve kterém se shromažďuje.

Výstupní přihlašovací stránka nebo registrace deklarací identity

V kombinované registrační a přihlašovací stránce si všimněte následující skutečnosti při použití elementu DataUri definice obsahu, který určuje unifiedsspunifiedssd typ stránky:

  • Vykreslí se jenom deklarace identity uživatelského jména a hesla.
  • První dvě výstupní deklarace identity musí být uživatelské jméno a heslo (v tomto pořadí).
  • Žádné jiné deklarace identity se nevykreslí; pro tyto deklarace identity budete muset buď nastavit defaultValue nebo vyvolat technický profil ověření formuláře deklarací identity.

Trvalé deklarace identity

Element PersistedClaims se nepoužívá. Technický profil s vlastním kontrolním výrazem neuchovává data do Azure AD B2C. Místo toho se provede volání ověřovacího technického profilu, který zodpovídá za uchování dat. Zásady registrace například používají LocalAccountSignUpWithLogonEmail k shromáždění nového profilu uživatele technický profil s vlastním uplatněním. Technický LocalAccountSignUpWithLogonEmail profil volá technický profil ověření a vytvoří účet v Azure AD B2C.

Technické profily ověřování

Ověřovací technický profil slouží k ověření některých nebo všech výstupních deklarací identity odkazujícího technického profilu. Vstupní deklarace identity technického profilu ověření se musí zobrazit ve výstupních deklarací identity technického profilu s vlastním potvrzením. Technický profil ověření ověří vstup uživatele a může uživateli vrátit chybu.

Technický profil ověření může být jakýkoliv technický profil v zásadách, například ID Microsoft Entra nebo technické profily rozhraní REST API . V předchozím příkladu LocalAccountSignUpWithLogonEmail technický profil ověří, že v adresáři neexistuje signinName. Pokud ne, technický profil ověření vytvoří místní účet a vrátí objectId, authenticationSource, newUser. Technický SelfAsserted-LocalAccountSignin-Email profil volá login-NonInteractive technický profil ověření k ověření přihlašovacích údajů uživatele.

Můžete také volat technický profil rozhraní REST API s obchodní logikou, přepsat vstupní deklarace identity nebo rozšířit uživatelská data další integrací s podnikovou obchodní aplikací. Další informace najdete v části Technický profil ověření.

Poznámka:

Technický profil ověření se aktivuje jenom v případech, kdy uživatel zadá vstup. Nemůžete vytvořit prázdný technický profil s vlastním kontrolním výrazem pro volání technického profilu ověření pouze pro využití atributu ContinueOnError elementu ValidationTechnicalProfile. Technický profil ověření můžete volat pouze z technického profilu s vlastním potvrzením, který požaduje vstup od uživatele nebo z kroku orchestrace na cestě uživatele.

Metadata

Atribut Požadováno Popis
setting.operatingMode 1 No U přihlašovací stránky tato vlastnost řídí chování pole uživatelského jména, jako je například ověření vstupu a chybové zprávy. Očekávané hodnoty: Username nebo Email. Podívejte se na živou ukázku těchto metadat.
AllowGenerationOfClaimsWithNullValues No Povolit vygenerovat deklaraci identity s hodnotou null. V případě, že uživatel například nezaškrtá políčko.
ContentDefinitionReferenceId Ano Identifikátor definice obsahu přidružené k tomuto technickému profilu.
EnforceEmailVerification No Při úpravách registrace nebo profilu vynucuje ověření e-mailu. Možné hodnoty: true (výchozí) nebo false.
setting.retryLimit No Určuje, kolikrát se uživatel může pokusit zadat data, která jsou zkontrolována na technickém profilu ověření. Uživatel se například pokusí zaregistrovat pomocí účtu, který už existuje, a snaží se to až do dosažení limitu. Podívejte se na živou ukázku těchto metadat.
SignUpTarget 1 No Identifikátor cílové výměny pro registraci. Když uživatel klikne na tlačítko registrace, Azure AD B2C spustí zadaný identifikátor výměny.
setting.showCancelButton No Zobrazí tlačítko zrušit. Možné hodnoty: true (výchozí) nebo false. Podívejte se na živou ukázku těchto metadat.
setting.showContinueButton No Zobrazí tlačítko pokračovat. Možné hodnoty: true (výchozí) nebo false. Podívejte se na živou ukázku těchto metadat.
setting.showSignupLink 2 No Zobrazí tlačítko registrace. Možné hodnoty: true (výchozí) nebo false. Podívejte se na živou ukázku těchto metadat.
setting.forgotPasswordLinkLocation 2 No Zobrazí odkaz zapomenutého hesla. Možné hodnoty: AfterLabel (výchozí) zobrazí odkaz přímo za popiskem nebo za vstupním polem hesla, pokud neexistuje žádný popisek, AfterInput zobrazí odkaz za polem pro zadání hesla, AfterButtons zobrazí odkaz v dolní části formuláře za tlačítky nebo None odebere odkaz zapomenutého hesla. Podívejte se na živou ukázku těchto metadat.
setting.enableRememberMe 2 No Zobrazí zaškrtávací políčko Zůstat přihlášeni. Možné hodnoty: true nebo false (výchozí). Živá ukázka těchto metadat
setting.inputVerificationDelayTimeInMilliseconds 3 No Zlepšuje uživatelské prostředí tím, že čeká, až uživatel přestane psát, a pak hodnotu ověří. Výchozí hodnota 2000 milisekund. Podívejte se na živou ukázku těchto metadat.
IncludeClaimResolvingInClaimsHandling No U vstupních a výstupních deklarací identity určuje, jestli je řešení deklarací identity součástí technického profilu. Možné hodnoty: truenebo false (výchozí). Pokud chcete použít překladač deklarací identity v technickém profilu, nastavte ho na truehodnotu .
setting.forgotPasswordLinkOverride 4 No Výměna deklarací identity resetování hesel, která se má provést. Další informace najdete v tématu Samoobslužné resetování hesla.
setting.enableCaptchaChallenge No Určuje, jestli se má zobrazit kód výzvy CAPTCHA. Možné hodnoty: true nebo false (výchozí). Aby toto nastavení fungovalo, musí být ovládací prvek zobrazení CAPTCHA odkazován v zobrazovaných deklarací identity technického profilu s vlastním kontrolním výrazem. Funkce CAPTCHA je ve verzi Public Preview.

Poznámky:

  1. K dispozici pro typ DataUri definice obsahu nebo unifiedsspunifiedssd.
  2. K dispozici pro typ DataUri definice obsahu nebo unifiedsspunifiedssd. Rozložení stránky verze 1.1.0 a vyšší
  3. K dispozici pro rozložení stránky verze 1.2.0 a vyšší.
  4. K dispozici pro typ unifiedsspDataUri definice obsahu . Rozložení stránky verze 2.1.2 a vyšší

Kryptografické klíče

Element CryptographicKeys se nepoužívá.