Felhasználói attribútumok hozzáadása és felhasználói bemenet testreszabása az Azure Active Directory B2C-ben
Mielőtt hozzákezdene, a Szabályzattípus kiválasztása választóval válassza ki a beállított szabályzat típusát. Az Azure Active Directory B2C két módszert kínál annak meghatározására, hogy a felhasználók hogyan használják az alkalmazásokat: előre definiált felhasználói folyamatokon vagy teljesen konfigurálható egyéni szabályzatokon keresztül. A cikkben szereplő lépések különbözőek az egyes metódusok esetében.
Ebben a cikkben egy új attribútumot gyűjt az Azure Active Directory B2C-ben (Azure AD B2C) való regisztráció során. Beolvashatja a felhasználók városát, legördülő listaként konfigurálhatja, és meghatározhatja, hogy kötelező-e megadni.
Fontos
Ez a minta a beépített "város" jogcímet használja. Ehelyett választhat a támogatott Azure AD B2C beépített attribútumok vagy egyéni attribútumok közül. Egyéni attribútumok használatához engedélyezze az egyéni attribútumokat. Ha másik beépített vagy egyéni attribútumot szeretne használni, cserélje le a "város" kifejezést a választott attribútumra, például a jobTitle beépített attribútumra vagy egy egyéni attribútumra, például extension_loyaltyId.
Előfeltételek
- Hozzon létre egy felhasználói folyamatot , hogy a felhasználók regisztrálhassák és bejelentkezhessenek az alkalmazásba.
- Webalkalmazás regisztrálása.
- Az Egyéni szabályzatok használatának első lépései az Active Directory B2C-ben
- Webalkalmazás regisztrálása.
Felhasználói attribútumok hozzáadása a felhasználói folyamathoz
- Jelentkezzen be az Azure Portalra.
- Ha több bérlőhöz is hozzáfér, a felső menüben válassza a Gépház ikont az Azure AD B2C-bérlőre való váltáshoz a Címtárak + előfizetések menüből.
- Az Azure-szolgáltatások területen válassza az Azure AD B2C-t. Vagy a keresőmezővel megkeresheti és kiválaszthatja az Azure AD B2C-t.
- Az Azure AD B2C-bérlőben válassza a Felhasználói folyamatok lehetőséget.
- Válassza ki a szabályzatot (például "B2C_1_SignupSignin") a megnyitásához.
- Válassza ki a Felhasználói attribútumokat , majd válassza ki a felhasználói attribútumot (például "Város").
- Válassza a Mentés parancsot.
Opcionális jogcímek megadása az alkalmazáshoz
Az alkalmazásjogcímek az alkalmazásnak visszaadott értékek. Frissítse a felhasználói folyamatot, hogy tartalmazza a kívánt jogcímeket.
- Válassza ki a szabályzatot (például "B2C_1_SignupSignin") a megnyitásához.
- Válassza az Alkalmazásjogcímek lehetőséget.
- Válassza ki azokat az attribútumokat, amelyeket vissza szeretne küldeni az alkalmazásnak (például "Város").
- Válassza a Mentés parancsot.
Felhasználói attribútumok bemeneti típusának konfigurálása
Válassza ki a szabályzatot (például "B2C_1_SignupSignin") a megnyitásához.
Válassza a Lapelrendezések lehetőséget.
Válassza a Helyi fiók regisztrációs oldalát.
A Felhasználói attribútumok területen válassza a Város lehetőséget.
- A Választható legördülő listában válassza a Nem lehetőséget.
- A Felhasználó beviteli típusában válassza ki az aktuális felhasználói beviteli típust (például TextBox) a Felhasználói beviteli típus szerkesztő ablakpaneljének megnyitásához.
- A Felhasználói beviteli típus legördülő listában válassza a DropdownSingleSelect lehetőséget.
- A Szöveg és értékek mezőbe írja be az attribútumra adott válaszok készletét alkotó szöveg- és értékpárokat. A szöveg megjelenik a folyamat webes felületén, és az értékek a kijelölt szöveghez az Azure AD B2C-ben lesznek tárolva. Nem kötelező: A legördülő elemek átrendezéséhez használja az "Áthelyezés fel/le" gombot.
Kattintson az OK gombra. Nem kötelező: A "Fel/le" gombokkal átrendezheti a felhasználói attribútumokat a regisztrációs lapon.
Válassza a Mentés parancsot.
Értékek listájának megadása honosított gyűjtemények használatával
A városattribútum értékeinek készletlistájának megadása:
- Nyelvi testreszabás engedélyezése a felhasználói folyamaton
- Válassza ki a szabályzatot (például "B2C_1_SignupSignin") a megnyitásához.
- A felhasználói folyamat Nyelv lapján válassza ki a testreszabni kívánt nyelvet.
- A Lapszintű erőforrásfájlok területen válassza a Helyi fiók regisztrációs lapja lehetőséget.
- Válassza az alapértelmezett letöltési beállításokat (vagy a felülbírálások letöltését , ha korábban már szerkesztette ezt a nyelvet).
- Hozzon létre egy attribútumot
LocalizedCollections
.
Ez LocalizedCollections
egy tömb Name
és Value
pár. Az elemek sorrendje a megjelenített sorrend lesz.
ElementId
az a felhasználói attribútum, amelyre ezLocalizedCollections
az attribútum válasz.Name
A felhasználó számára megjelenített érték.Value
ez a lehetőség a jogcímben visszaadott érték.
{
"LocalizedStrings": [...],
"LocalizedCollections": [
{
"ElementType": "ClaimType",
"ElementId": "city",
"TargetCollection": "Restriction",
"Override": true,
"Items": [
{
"Name": "Berlin",
"Value": "Berlin"
},
{
"Name": "London",
"Value": "London"
},
{
"Name": "Seattle",
"Value": "Seattle"
}
]
}
]
}
Módosítások feltöltése
- Miután elvégezte a JSON-fájl módosításait, térjen vissza a B2C-bérlőhöz.
- Válassza ki a Felhasználói folyamatokat , és válassza ki a szabályzatot (például "B2C_1_SignupSignin") a megnyitásához.
- Nyelvek kiválasztása.
- Válassza ki a lefordítani kívánt nyelvet.
- A Lapszintű erőforrások fájlok területen válassza a Helyi fiók regisztrációs lapja lehetőséget.
- Válassza ki a mappa ikont, és válassza ki a feltölteni kívánt JSON-fájlt. A rendszer automatikusan menti a módosításokat a felhasználói folyamatba.
A felhasználói folyamat tesztelése
- Válassza ki a szabályzatot (például "B2C_1_SignupSignin") a megnyitásához.
- A szabályzat teszteléséhez válassza a Felhasználói folyamat futtatása lehetőséget.
- Alkalmazás esetén válassza ki a korábban regisztrált testapp1 nevű webalkalmazást. A Válasz URL-címnek meg kell jelennie
https://jwt.ms
. - Kattintson a Felhasználói folyamat futtatása elemre
Áttekintés
A kezdeti adatokat a felhasználóktól a regisztrációs vagy bejelentkezési felhasználói folyamattal gyűjtheti. Később további jogcímek gyűjthetők a profil szerkesztési felhasználói folyamatával. Amikor az Azure AD B2C közvetlenül a felhasználótól gyűjt adatokat interaktívan, az önazonos műszaki profilt használja. Ebben a mintában a következőt kell adnia:
- Adjon meg egy "város" jogcímet.
- Kérdezze meg a felhasználót a városukról.
- Őrizze meg a várost a felhasználói profilban az Azure AD B2C könyvtárban.
- Olvassa el a városi jogcímet az Azure AD B2C könyvtárból minden bejelentkezésnél.
- Adja vissza a várost a függő entitásalkalmazásnak a bejelentkezés vagy a regisztráció után.
Jogcím definiálása
A jogcímek ideiglenes adattárolást biztosítanak egy Azure AD B2C-szabályzat végrehajtása során. A jogcímséma az a hely, ahol a jogcímeket deklarálja. A jogcím meghatározásához a következő elemek használhatók:
- DisplayName – A felhasználóhoz tartozó címkét meghatározó sztring.
- DataType – A jogcím típusa.
- UserHelpText – Segít a felhasználónak megérteni a szükséges elemet.
- UserInputType – A beviteli vezérlő típusa, például szövegdoboz, választógomb, legördülő lista vagy több kijelölés.
Nyissa meg a szabályzat bővítményfájlját. For example, SocialAndLocalAccounts/
TrustFrameworkExtensions.xml
.
- Keresse meg a BuildingBlocks elemet. Ha az elem nem létezik, adja hozzá.
- Keresse meg a ClaimsSchema elemet. Ha az elem nem létezik, adja hozzá.
- Adja hozzá a városi jogcímet a ClaimsSchema elemhez.
<!--
<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>-->
Adja hozzá a SelectByDefault attribútumot egy Enumeration
elemhez, hogy alapértelmezés szerint ki legyen jelölve az oldal első betöltésekor. A Londoni elem előzetes kiválasztásához például módosítsa az Enumeration
elemet a következő példában:
<Restriction>
<Enumeration Text="Berlin" Value="berlin" />
<Enumeration Text="London" Value="london" SelectByDefault="true" />
<Enumeration Text="Seattle" Value="seattle" />
</Restriction>
Jogcím hozzáadása a felhasználói felülethez
A rendszer a következő technikai profilokat saját maga állítja be, és meghívja, amikor egy felhasználótól elvárják, hogy adjon meg bemenetet:
- LocalAccountSignUpWithLogonEmail – Helyi fiók regisztrációs folyamata.
- SelfAsserted-Social – Összevont fiók első bejelentkezése.
- SelfAsserted-ProfileUpdate – Profilfolyamat szerkesztése.
Ahhoz, hogy a regisztráció során összegyűjtse a városi jogcímet, kimeneti jogcímként hozzá kell adni a LocalAccountSignUpWithLogonEmail
műszaki profilhoz. Bírálja felül ezt a műszaki profilt a bővítményfájlban. Adja meg a kimeneti jogcímek teljes listáját a jogcímek képernyőn való megjelenítési sorrendjének szabályozásához. Keresse meg a ClaimsProviders elemet. Adjon hozzá egy új ClaimsProviderst az alábbiak szerint:
<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>
Ahhoz, hogy összegyűjtse a városi jogcímet az összevont fiókkal való kezdeti bejelentkezés után, kimeneti jogcímként hozzá kell adni a SelfAsserted-Social
műszaki profilhoz. Ahhoz, hogy a helyi és összevont fiók felhasználói később szerkeszthessék profiladataikat, adja hozzá a bemeneti és kimeneti jogcímeket a SelfAsserted-ProfileUpdate
műszaki profilhoz. Felülbírálja ezeket a technikai profilokat a bővítményfájlban. Adja meg a kimeneti jogcímek teljes listáját a jogcímek képernyőn való megjelenítési sorrendjének szabályozásához. Keresse meg a ClaimsProviders elemet. Adjon hozzá egy új ClaimsProviderst az alábbiak szerint:
<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>
Jogcím olvasása és írása
A következő technikai profilok az Active Directory technikai profiljai, amelyek adatokat olvasnak és írnak a Microsoft Entra-azonosítóba.
Adatok PersistedClaims
írása a felhasználói profilba, valamint OutputClaims
adatok beolvasása a felhasználói profilból a megfelelő Active Directory technikai profilon belül.
Felülbírálja ezeket a technikai profilokat a bővítményfájlban. Keresse meg a ClaimsProviders elemet. Adjon hozzá egy új ClaimsProviderst az alábbiak szerint:
<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>
Jogcím belefoglalása a jogkivonatba
Ha vissza szeretné adni a városi jogcímet a függő entitás alkalmazásának, adjon hozzá egy kimeneti jogcímet a SocialAndLocalAccounts/
SignUpOrSignIn.xml
fájlhoz. A kimeneti jogcímet a rendszer egy sikeres felhasználói folyamat után hozzáadja a jogkivonathoz, és elküldi az alkalmazásnak. Módosítsa a műszaki profil elemet a függő entitás szakaszában, hogy kimeneti jogcímként adja hozzá a várost.
<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>
A frissített egyéni szabályzat feltöltése és tesztelése
- Ha több bérlőhöz is hozzáfér, a felső menüben válassza a Gépház ikont az Azure AD B2C-bérlőre való váltáshoz a Címtárak + előfizetések menüből.
- Keresse meg és válassza ki az Azure AD B2C-t.
- A Szabályzatok területen válassza az Identity Experience Framework lehetőséget.
- Válassza az Egyéni szabályzat feltöltése lehetőséget.
- Töltse fel a korábban módosított szabályzatfájlokat.
Az egyéni szabályzat tesztelése
- Válassza ki például
B2C_1A_signup_signin
a függő entitás szabályzatát. - Alkalmazás esetén válasszon ki egy korábban regisztrált webalkalmazást. A Válasz URL-címnek meg kell jelennie
https://jwt.ms
. - Válassza a Futtatás most gombot.
- A regisztráció vagy a bejelentkezési oldalon válassza a Regisztráció most lehetőséget a regisztrációhoz. Fejezze be a felhasználói adatok megadását a városnévvel együtt, majd kattintson a Létrehozás gombra. Látnia kell a visszaadott jogkivonat tartalmát.
A regisztrációs képernyőnek az alábbi képernyőképhez hasonlóan kell kinéznie:
Az alkalmazásnak visszaküldött jogkivonat tartalmazza a jogcímet city
.
{
"typ": "JWT",
"alg": "RS256",
"kid": "X5eXk4xyojNFum1kl2Ytv8dlNP4-c57dO6QGTVBwaNk"
}.{
"exp": 1583500140,
"nbf": 1583496540,
"ver": "1.0",
"iss": "https://contoso.b2clogin.com/f06c2fe8-709f-4030-85dc-38a4bfd9e82d/v2.0/",
"aud": "e1d2612f-c2bc-4599-8e7b-d874eaca1ee1",
"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"
...
}
[Nem kötelező] A felhasználói felület honosítása
Az Azure AD B2C lehetővé teszi a szabályzat különböző nyelvekre való elhelyezését. További információ a nyelvi élmény testreszabásáról. A regisztrációs oldal honosításához állítsa be a támogatott nyelvek listáját, és adjon meg nyelvspecifikus címkéket.
Megjegyzés:
A nyelvspecifikus címkék használata LocalizedCollection
esetén eltávolíthatja a gyűjteményt a Restriction
jogcímdefinícióból.
Az alábbi példa bemutatja, hogyan lehet megadni a városok listáját angol és spanyol nyelven. Mindkettő beállítja a Restriction
jogcím város gyűjteményét az angol és a spanyol elemek listájával. A SelectByDefault alapértelmezés szerint kijelöl egy elemet az oldal első betöltésekor.
<!--
<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>-->
A honosítási elem hozzáadása után szerkessze a tartalomdefiníciót a honosítással. Az alábbi példában angol (en) és spanyol (es) egyéni honosított erőforrásokat adunk hozzá a regisztrációs oldalhoz:
<!--
<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>-->
Következő lépések
- További információ az IEF-referencia ClaimsSchema eleméről.
- Megtudhatja, hogyan használhat egyéni attribútumokat az Azure AD B2C-ben.