Poznámka:
Přístup k této stránce vyžaduje autorizaci. Můžete se zkusit přihlásit nebo změnit adresáře.
Přístup k této stránce vyžaduje autorizaci. Můžete zkusit změnit adresáře.
Důležité
Od 1. května 2025 už nebude Azure AD B2C k dispozici k nákupu pro nové zákazníky. Další informace najdete v našich nejčastějších dotazech.
Než začnete, pomocí selektoru Zvolit typ zásady v horní části této stránky zvolte typ zásady, kterou nastavujete. Azure Active Directory B2C nabízí dvě metody pro definování způsobu interakce uživatelů s vašimi aplikacemi: prostřednictvím předdefinovaných toků uživatelů nebo prostřednictvím plně konfigurovatelných vlastních zásad. Kroky vyžadované v tomto článku se pro každou metodu liší.
V tomto článku shromáždíte během vaší registrační cesty v Azure Active Directory B2C (Azure AD B2C) nový atribut, například město. Získáte město uživatelů, nakonfigurujete ho jako rozevírací seznam a definujete, jestli se má zadat.
Důležité
Tato ukázka používá vestavěný nárok 'city'. Místo toho můžete zvolit některý z podporovaných předdefinovaných atributů Azure AD B2C nebo vlastního atributu. Pokud chcete použít vlastní atribut, povolte vlastní atributy. Pokud chcete použít jiný předdefinovaný nebo vlastní atribut, nahraďte "city" atributem podle vašeho výběru, například předdefinovaný jobTitle nebo vlastní atribut, jako extension_loyaltyId.
Požadavky
- Vytvořte tok uživatele, aby se uživatelé mohli zaregistrovat a přihlásit k vaší aplikaci.
- Zaregistrujte webovou aplikaci.
- Dokončete kroky v Začněte s vlastními zásadami ve službě Azure Active Directory B2C. V tomto kurzu se dozvíte, jak aktualizovat soubory vlastních zásad tak, aby používaly konfiguraci tenanta Azure AD B2C.
- Zaregistrujte webovou aplikaci.
Přidejte atributy uživatele do vašeho uživatelského toku
- Přihlaste se do Azure Portalu.
- Pokud máte přístup k více tenantům, vyberte ikonu Nastavení v horní nabídce a přepněte se do svého tenanta Azure AD B2C z nabídky Adresáře + předplatná.
- V části Služby Azure vyberte Azure AD B2C. Nebo pomocí vyhledávacího pole vyhledejte a vyberte Azure AD B2C.
- V tenantovi Azure AD B2C vyberte Toky uživatelů.
- Vyberte zásadu (například "B2C_1_SignupSignin") a otevřete ji.
- Vyberte Atributy uživatele a pak vyberte atribut uživatele (například Město).
- Vyberte Uložit.
Zadání volitelných deklarací identity do aplikace
Požadavky aplikace jsou hodnoty, které se vrátí do aplikace. Aktualizujte tok uživatele, aby obsahoval požadované nároky.
- Vyberte zásadu (například "B2C_1_SignupSignin") a otevřete ji.
- Vyberte Nároky aplikace.
- Vyberte atributy, které chcete odeslat zpět do aplikace (například Město).
- Vyberte Uložit.
Konfigurace vstupního typu atributů uživatele
Vyberte zásadu (například "B2C_1_SignupSignin") a otevřete ji.
Vyberte rozložení stránky.
Vyberte přihlašovací stránku místního účtu.
V části Atributy uživatele vyberte Město.
- V rozevíracím seznamu Volitelné vyberte Ne.
- V poli Typ vstupu uživatele vyberte aktuální typ vstupu uživatele, například Textové pole, a otevřete tak podokno editoru typů uživatelských vstupů .
- V rozevíracím seznamu Typ vstupu uživatele vyberte Jednotlivý výběr z rozevíracího seznamu.
- Do pole Text a Hodnoty zadejte páry textu a hodnoty, které tvoří vaši sadu odpovědí pro atribut. Text se zobrazí ve webovém rozhraní pro váš tok a hodnoty se uloží do Azure AD B2C pro vybraný text. Volitelné: Pomocí tlačítek Přesunout nahoru nebo dolů můžete změnit pořadí rozevíracích položek.
Vyberte OK. Volitelné: Pomocí tlačítek "Přesunout nahoru/dolů" můžete změnit pořadí atributů uživatele na registrační stránce.
Vyberte Uložit.
Poskytnutí seznamu hodnot pomocí lokalizovaných kolekcí
Zadání seznamu hodnot pro atribut město:
- Povolení přizpůsobení jazyka v toku uživatele
- Vyberte zásadu (například "B2C_1_SignupSignin") a otevřete ji.
- Na stránce Jazyky pro tok uživatele vyberte jazyk, který chcete přizpůsobit.
- V části Soubory prostředků na úrovni stránky vyberte registrační stránku místního účtu.
- Vyberte Stáhnout výchozí hodnoty (nebo Stáhnout přepsání, pokud jste tento jazyk upravili dříve).
- Vytvořte
LocalizedCollectionsatribut.
Jedná se o pole LocalizedCollections dvojic Name a Value. Pořadí položek je pořadí, ve kterém se zobrazují.
-
ElementIdje atribut uživatele, na který tentoLocalizedCollectionsatribut odpovídá. -
Nameje hodnota, která se uživateli zobrazí. -
Valueje to, co se vrátí v deklaraci identity při výběru této možnosti.
{
"LocalizedStrings": [...],
"LocalizedCollections": [
{
"ElementType": "ClaimType",
"ElementId": "city",
"TargetCollection": "Restriction",
"Override": true,
"Items": [
{
"Name": "Berlin",
"Value": "Berlin"
},
{
"Name": "London",
"Value": "London"
},
{
"Name": "Seattle",
"Value": "Seattle"
}
]
}
]
}
Nahrání změn
- Po dokončení změn v souboru JSON se vraťte do tenanta B2C.
- Vyberte Toky uživatelů a vyberte zásady (například "B2C_1_SignupSignin") a otevřete je.
- Vyberte jazyky.
- Vyberte jazyk, na který chcete přeložit.
- V části Soubory prostředků na úrovni stránky vyberte registrační stránku místního účtu.
- Vyberte ikonu složky a vyberte soubor JSON, který chcete nahrát. Změny se automaticky uloží do toku uživatele.
Testování toku uživatele
- Vyberte zásadu (například "B2C_1_SignupSignin") a otevřete ji.
- Pokud chcete zásady otestovat, vyberte Spustit uživatelský průběh.
- V části Aplikace vyberte webovou aplikaci s názvem testapp1 , kterou jste předtím zaregistrovali. Adresa URL odpovědi by se měla zobrazit
https://jwt.ms. - Vybrat Spustit tok uživatele
Přehled
Počáteční data od uživatelů můžete shromažďovat pomocí cesty k registraci nebo přihlášení uživatele. Další požadavky můžete později shromáždit uživatelskou cestou úprav profilu. Kdykoli Azure AD B2C shromažďuje informace přímo od uživatele interaktivně, používá samoobslužný technický profil. V této ukázce:
- Definujte nárok na "město".
- Požádejte uživatele o své město.
- Uložte město do profilu uživatele v adresáři Azure AD B2C.
- Při každém přihlášení si přečtěte deklaraci města z adresáře Azure AD B2C.
- Po přihlášení nebo registraci vraťte město do aplikace důvěryhodné strany.
Definovat nárok
Deklarace identity poskytuje dočasné úložiště dat během provádění zásad Azure AD B2C. Schéma nároků je místo, kde deklarujete své nároky. K definování nároku se používají následující prvky:
- DisplayName – řetězec, který definuje popisek určený uživatelem.
- Datový typ – typ nároku.
- UserHelpText – pomáhá uživateli pochopit, co je potřeba.
- UserInputType – typ ovládacího prvku zadávání, například textové pole, výběr rádia, rozevírací seznam nebo více výběrů.
Otevřete soubor s rozšířeními zásad. Například: SocialAndLocalAccounts/TrustFrameworkExtensions.xml.
- Vyhledejte prvek BuildingBlocks. Pokud prvek neexistuje, přidejte ho.
- Vyhledejte prvek ClaimsSchema. Pokud prvek neexistuje, přidejte ho.
- Přidejte deklaraci města do elementu ClaimsSchema .
<!--
<BuildingBlocks>
<ClaimsSchema> -->
<ClaimType Id="city">
<DisplayName>City where you work</DisplayName>
<DataType>string</DataType>
<UserInputType>DropdownSingleSelect</UserInputType>
<Restriction>
<Enumeration Text="Berlin" Value="berlin" />
<Enumeration Text="London" Value="london" />
<Enumeration Text="Seattle" Value="seattle" />
</Restriction>
</ClaimType>
<!--
</ClaimsSchema>
</BuildingBlocks>-->
Při prvním načtení stránky zahrňte atribut SelectByDefault do Enumeration elementu, aby byl ve výchozím nastavení vybrán. Pokud například chcete položku Londýna předem vybrat, změňte Enumeration prvek jako následující příklad:
<Restriction>
<Enumeration Text="Berlin" Value="berlin" />
<Enumeration Text="London" Value="london" SelectByDefault="true" />
<Enumeration Text="Seattle" Value="seattle" />
</Restriction>
Přidání nároku do uživatelského rozhraní
Následující technické profily jsou samostatně potvrzené a aktivují se, když se očekává, že uživatel poskytne vstup:
- LocalAccountSignUpWithLogonEmail – tok registrace místního účtu.
- SelfAsserted-Social – Federovaný účet pro první přihlášení uživatele
- SelfAsserted-ProfileUpdate – Upravit tok profilu
Aby bylo možné během registrace získat deklaraci města, musí být přidána jako výstupní deklarace do technického profilu LocalAccountSignUpWithLogonEmail. Přepište tento technický profil v souboru rozšíření. Zadejte celý seznam výstupních deklarací identity pro řízení pořadí, ve kterém se deklarace identity zobrazují na obrazovce. Vyhledejte element ClaimsProviders . Přidejte nové poskytovatele nároků takto:
<ClaimsProvider>
<DisplayName>Local Account</DisplayName>
<TechnicalProfiles>
<!--Local account sign-up page-->
<TechnicalProfile Id="LocalAccountSignUpWithLogonEmail">
<OutputClaims>
<OutputClaim ClaimTypeReferenceId="email" PartnerClaimType="Verified.Email" Required="true" />
<OutputClaim ClaimTypeReferenceId="newPassword" Required="true" />
<OutputClaim ClaimTypeReferenceId="reenterPassword" Required="true" />
<OutputClaim ClaimTypeReferenceId="displayName" />
<OutputClaim ClaimTypeReferenceId="givenName" />
<OutputClaim ClaimTypeReferenceId="surName" />
<OutputClaim ClaimTypeReferenceId="city"/>
</OutputClaims>
</TechnicalProfile>
</TechnicalProfiles>
</ClaimsProvider>
Pokud chcete po počátečním přihlášení pomocí federovaného účtu shromáždit nárok města, musíte jej přidat jako výstupní nárok do technického SelfAsserted-Social profilu. Aby uživatelé místních a federovaných účtů mohli později upravovat data svého profilu, přidejte do technického profilu SelfAsserted-ProfileUpdate vstupní a výstupní nároky. Přepište tyto technické profily v konfiguračním souboru rozšíření. Zadejte celý seznam výstupních deklarací identity pro řízení pořadí, ve kterém se deklarace identity zobrazují na obrazovce. Vyhledejte element ClaimsProviders . Přidejte nové poskytovatele nároků takto:
<ClaimsProvider>
<DisplayName>Self Asserted</DisplayName>
<TechnicalProfiles>
<!--Federated account first-time sign-in page-->
<TechnicalProfile Id="SelfAsserted-Social">
<InputClaims>
<InputClaim ClaimTypeReferenceId="city" />
</InputClaims>
<OutputClaims>
<OutputClaim ClaimTypeReferenceId="displayName"/>
<OutputClaim ClaimTypeReferenceId="givenName"/>
<OutputClaim ClaimTypeReferenceId="surname"/>
<OutputClaim ClaimTypeReferenceId="city"/>
</OutputClaims>
</TechnicalProfile>
<!--Edit profile page-->
<TechnicalProfile Id="SelfAsserted-ProfileUpdate">
<InputClaims>
<InputClaim ClaimTypeReferenceId="city" />
</InputClaims>
<OutputClaims>
<OutputClaim ClaimTypeReferenceId="displayName"/>
<OutputClaim ClaimTypeReferenceId="givenName" />
<OutputClaim ClaimTypeReferenceId="surname" />
<OutputClaim ClaimTypeReferenceId="city"/>
</OutputClaims>
</TechnicalProfile>
</TechnicalProfiles>
</ClaimsProvider>
Čtení a zápis nároku
Následující technické profily jsou technické profily služby Active Directory, které čtou a zapisují data do Microsoft Entra ID.
Slouží PersistedClaims k zápisu dat do profilu uživatele a OutputClaims ke čtení dat z profilu uživatele v příslušných technických profilech služby Active Directory.
Přepište tyto technické profily v konfiguračním souboru rozšíření. Vyhledejte element ClaimsProviders . Přidejte nové poskytovatele nároků takto:
<ClaimsProvider>
<DisplayName>Azure Active Directory</DisplayName>
<TechnicalProfiles>
<!-- Write data during a local account sign-up flow. -->
<TechnicalProfile Id="AAD-UserWriteUsingLogonEmail">
<PersistedClaims>
<PersistedClaim ClaimTypeReferenceId="city"/>
</PersistedClaims>
</TechnicalProfile>
<!-- Write data during a federated account first-time sign-in flow. -->
<TechnicalProfile Id="AAD-UserWriteUsingAlternativeSecurityId">
<PersistedClaims>
<PersistedClaim ClaimTypeReferenceId="city"/>
</PersistedClaims>
</TechnicalProfile>
<!-- Write data during edit profile flow. -->
<TechnicalProfile Id="AAD-UserWriteProfileUsingObjectId">
<PersistedClaims>
<PersistedClaim ClaimTypeReferenceId="city"/>
</PersistedClaims>
</TechnicalProfile>
<!-- Read data after user resets the password. -->
<TechnicalProfile Id="AAD-UserReadUsingEmailAddress">
<OutputClaims>
<OutputClaim ClaimTypeReferenceId="city" />
</OutputClaims>
</TechnicalProfile>
<!-- Read data after user authenticates with a local account. -->
<TechnicalProfile Id="AAD-UserReadUsingObjectId">
<OutputClaims>
<OutputClaim ClaimTypeReferenceId="city" />
</OutputClaims>
</TechnicalProfile>
<!-- Read data after user authenticates with a federated account. -->
<TechnicalProfile Id="AAD-UserReadUsingAlternativeSecurityId">
<OutputClaims>
<OutputClaim ClaimTypeReferenceId="city" />
</OutputClaims>
</TechnicalProfile>
</TechnicalProfiles>
</ClaimsProvider>
Zahrnutí deklarace identity do tokenu
Chcete-li vrátit atribut města zpět do důvěřující aplikace, přidejte do souboru SocialAndLocalAccounts/SignUpOrSignIn.xml výstupní atribut. Po úspěšné cestě uživatele bude výstupní nárok přidán do tokenu a poté odeslán do aplikace. Upravte prvek technického profilu v části důvěřující strany tak, aby se město přidalo jako výstupní deklarace.
<RelyingParty>
<DefaultUserJourney ReferenceId="SignUpOrSignIn" />
<TechnicalProfile Id="PolicyProfile">
<DisplayName>PolicyProfile</DisplayName>
<Protocol Name="OpenIdConnect" />
<OutputClaims>
<OutputClaim ClaimTypeReferenceId="displayName" />
<OutputClaim ClaimTypeReferenceId="givenName" />
<OutputClaim ClaimTypeReferenceId="surname" />
<OutputClaim ClaimTypeReferenceId="email" />
<OutputClaim ClaimTypeReferenceId="objectId" PartnerClaimType="sub"/>
<OutputClaim ClaimTypeReferenceId="identityProvider" />
<OutputClaim ClaimTypeReferenceId="tenantId" AlwaysUseDefaultValue="true" DefaultValue="{Policy:TenantObjectId}" />
<OutputClaim ClaimTypeReferenceId="city" DefaultValue="" />
</OutputClaims>
<SubjectNamingInfo ClaimType="sub" />
</TechnicalProfile>
</RelyingParty>
Nahrajte a otestujte svou aktualizovanou vlastní zásadu
- Pokud máte přístup k více tenantům, vyberte ikonu Nastavení v horní nabídce a přepněte se do svého tenanta Azure AD B2C z nabídky Adresáře + předplatná.
- Vyhledejte a vyberte Azure AD B2C.
- V části Zásady vyberte Architekturu prostředí identit.
- Vyberte Nahrát vlastní zásady.
- Nahrajte soubory zásad, které jste předtím změnili.
Otestujte vlastní zásady
- Vyberte zásady důvěřující strany, například
B2C_1A_signup_signin. - Pro aplikaci vyberte webovou aplikaci, kterou jste dříve zaregistrovali. Adresa URL odpovědi by se měla zobrazit
https://jwt.ms. - Vyberte tlačítko Spustit nyní.
- Na registrační nebo přihlašovací stránce vyberte Zaregistrovat se. Dokončete zadávání informací o uživateli včetně názvu města a pak vyberte Vytvořit. Měl by se zobrazit obsah vráceného tokenu.
Obrazovka registrace by měla vypadat podobně jako na následujícím snímku obrazovky:
Token odeslaný zpět do vaší aplikace obsahuje nárok city.
{
"typ": "JWT",
"alg": "RS256",
"kid": "X5eXk4xyojNFum1kl2Ytv8dlNP4-c57dO6QGTVBwaNk"
}.{
"exp": 1583500140,
"nbf": 1583496540,
"ver": "1.0",
"iss": "https://contoso.b2clogin.com/aaaabbbb-0000-cccc-1111-dddd2222eeee/v2.0/",
"aud": "00001111-aaaa-2222-bbbb-3333cccc4444",
"acr": "b2c_1a_signup_signin",
"nonce": "defaultNonce",
"iat": 1583496540,
"auth_time": 1583496540,
"name": "Emily Smith",
"email": "joe@outlook.com",
"given_name": "Emily",
"family_name": "Smith",
"city": "Berlin"
...
}
[Volitelné] Lokalizace uživatelského rozhraní
Azure AD B2C umožňuje přizpůsobit zásady různým jazykům. Další informace najdete v tématu přizpůsobení jazyka. Pokud chcete lokalizovat registrační stránku, nastavte seznam podporovaných jazyků a zadejte popisky specifické pro konkrétní jazyk.
Poznámka:
Při použití LocalizedCollection popisků specifických pro jazyk můžete Restriction kolekci odebrat z definice nároku.
Následující příklad ukazuje, jak poskytnout seznam měst pro angličtinu a španělštinu. Obě nastaví Restriction kolekci města deklarace identity se seznamem položek pro angličtinu a španělštinu. Položka SelectByDefault je vybrána automaticky, když se stránka poprvé načte.
<!--
<BuildingBlocks>-->
<Localization Enabled="true">
<SupportedLanguages DefaultLanguage="en" MergeBehavior="Append">
<SupportedLanguage>en</SupportedLanguage>
<SupportedLanguage>es</SupportedLanguage>
</SupportedLanguages>
<LocalizedResources Id="api.localaccountsignup.en">
<LocalizedCollections>
<LocalizedCollection ElementType="ClaimType" ElementId="city" TargetCollection="Restriction">
<Item Text="Berlin" Value="Berlin"></Item>
<Item Text="London" Value="London" SelectByDefault="true"></Item>
<Item Text="Seattle" Value="Seattle"></Item>
</LocalizedCollection>
</LocalizedCollections>
</LocalizedResources>
<LocalizedResources Id="api.localaccountsignup.es">
<LocalizedCollections>
<LocalizedCollection ElementType="ClaimType" ElementId="city" TargetCollection="Restriction">
<Item Text="Berlina" Value="Berlin"></Item>
<Item Text="Londres" Value="London" SelectByDefault="true"></Item>
<Item Text="Seattle" Value="Seattle"></Item>
</LocalizedCollection>
</LocalizedCollections>
</LocalizedResources>
</Localization>
<!--
</BuildingBlocks>-->
Po přidání lokalizačního prvku upravte definici obsahu lokalizací. V následujícím příkladu se na registrační stránku přidají vlastní lokalizované prostředky pro angličtinu (en) a španělštinu (es):
<!--
<BuildingBlocks>
<ContentDefinitions> -->
<ContentDefinition Id="api.localaccountsignup">
<LocalizedResourcesReferences MergeBehavior="Prepend">
<LocalizedResourcesReference Language="en" LocalizedResourcesReferenceId="api.localaccountsignup.en" />
<LocalizedResourcesReference Language="es" LocalizedResourcesReferenceId="api.localaccountsignup.es" />
</LocalizedResourcesReferences>
</ContentDefinition>
<!--
</ContentDefinitions>
</BuildingBlocks>-->
Další kroky
- Přečtěte si další informace o elementu ClaimsSchema v referenčních informacích IEF.
- Naučte se používat vlastní atributy v Azure AD B2C.