Megosztás a következőn keresztül:


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

Felhasználói attribútumok hozzáadása a felhasználói folyamathoz

  1. Jelentkezzen be az Azure Portalra.
  2. 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.
  3. 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.
  4. Az Azure AD B2C-bérlőben válassza a Felhasználói folyamatok lehetőséget.
  5. Válassza ki a szabályzatot (például "B2C_1_SignupSignin") a megnyitásához.
  6. Válassza ki a Felhasználói attribútumokat , majd válassza ki a felhasználói attribútumot (például "Város").
  7. 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.

  1. Válassza ki a szabályzatot (például "B2C_1_SignupSignin") a megnyitásához.
  2. Válassza az Alkalmazásjogcímek lehetőséget.
  3. Válassza ki azokat az attribútumokat, amelyeket vissza szeretne küldeni az alkalmazásnak (például "Város").
  4. Válassza a Mentés parancsot.

Felhasználói attribútumok bemeneti típusának konfigurálása

  1. Válassza ki a szabályzatot (például "B2C_1_SignupSignin") a megnyitásához.

  2. Válassza a Lapelrendezések lehetőséget.

  3. Válassza a Helyi fiók regisztrációs oldalát.

  4. A Felhasználói attribútumok területen válassza a Város lehetőséget.

    1. A Választható legördülő listában válassza a Nem lehetőséget.
    2. 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.
    3. A Felhasználói beviteli típus legördülő listában válassza a DropdownSingleSelect lehetőséget.
    4. 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.
  5. Kattintson az OK gombra. Nem kötelező: A "Fel/le" gombokkal átrendezheti a felhasználói attribútumokat a regisztrációs lapon.

  6. Válassza a Mentés parancsot.

    Web page call green API.

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

  1. Nyelvi testreszabás engedélyezése a felhasználói folyamaton
  2. Válassza ki a szabályzatot (például "B2C_1_SignupSignin") a megnyitásához.
  3. A felhasználói folyamat Nyelv lapján válassza ki a testreszabni kívánt nyelvet.
  4. A Lapszintű erőforrásfájlok területen válassza a Helyi fiók regisztrációs lapja lehetőséget.
  5. 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).
  6. 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 ez LocalizedCollections 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

  1. Miután elvégezte a JSON-fájl módosításait, térjen vissza a B2C-bérlőhöz.
  2. 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.
  3. Nyelvek kiválasztása.
  4. Válassza ki a lefordítani kívánt nyelvet.
  5. A Lapszintű erőforrások fájlok területen válassza a Helyi fiók regisztrációs lapja lehetőséget.
  6. 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

  1. Válassza ki a szabályzatot (például "B2C_1_SignupSignin") a megnyitásához.
  2. A szabályzat teszteléséhez válassza a Felhasználói folyamat futtatása lehetőséget.
  3. 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.
  4. 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:

  1. Adjon meg egy "város" jogcímet.
  2. Kérdezze meg a felhasználót a városukról.
  3. Őrizze meg a várost a felhasználói profilban az Azure AD B2C könyvtárban.
  4. Olvassa el a városi jogcímet az Azure AD B2C könyvtárból minden bejelentkezésnél.
  5. 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.

  1. Keresse meg a BuildingBlocks elemet. Ha az elem nem létezik, adja hozzá.
  2. Keresse meg a ClaimsSchema elemet. Ha az elem nem létezik, adja hozzá.
  3. 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

  1. 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.
  2. Keresse meg és válassza ki az Azure AD B2C-t.
  3. A Szabályzatok területen válassza az Identity Experience Framework lehetőséget.
  4. Válassza az Egyéni szabályzat feltöltése lehetőséget.
  5. Töltse fel a korábban módosított szabályzatfájlokat.

Az egyéni szabályzat tesztelése

  1. Válassza ki például B2C_1A_signup_signina függő entitás szabályzatát.
  2. 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.
  3. Válassza a Futtatás most gombot.
  4. 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:

Screenshot of modified sign-up option

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