Delen via


Gebruikerskenmerken toevoegen en gebruikersinvoer aanpassen in Azure Active Directory B2C

Belangrijk

Vanaf 1 mei 2025 is Azure AD B2C niet meer beschikbaar voor nieuwe klanten. Meer informatie vindt u in onze veelgestelde vragen.

Voordat u begint, gebruikt u de selector Een beleidstype kiezen boven aan deze pagina om het type beleid te kiezen dat u instelt. U kunt in Azure Active Directory B2C op twee manieren definiëren hoe gebruikers met uw toepassingen communiceren: via vooraf gedefinieerde gebruikersstromen of via volledig configureerbaar aangepast beleid. De stappen die in dit artikel zijn vereist, verschillen voor elke methode.

In dit artikel verzamelt u een nieuw kenmerk, zoals plaats, tijdens uw registratietraject in Azure Active Directory B2C (Azure AD B2C). U verkrijgt de plaats van de gebruikers, configureert deze als een vervolgkeuzelijst en definieert of deze moet worden opgegeven.

Belangrijk

In dit voorbeeld wordt de ingebouwde claim 'plaats' gebruikt. In plaats daarvan kunt u een van de ondersteunde ingebouwde Kenmerken van Azure AD B2C of een aangepast kenmerk kiezen. Als u een aangepast kenmerk wilt gebruiken, schakelt u aangepaste kenmerken in. Als u een ander ingebouwd of aangepast kenmerk wilt gebruiken, vervangt u 'plaats' door het kenmerk van uw keuze, bijvoorbeeld de ingebouwde kenmerk jobTitle of een aangepast kenmerk zoals extension_loyaltyId.

Vereiste voorwaarden

Gebruikerskenmerken toevoegen aan uw gebruikersstroom

  1. Meld u aan bij het Azure-portaal.
  2. Als u toegang hebt tot meerdere tenants, selecteert u het pictogram Instellingen in het hoofdmenu om over te schakelen naar uw Azure AD B2C-tenant vanuit het menu Mappen + abonnementen.
  3. Selecteer azure AD B2C onder Azure-services. Of gebruik het zoekvak om Azure AD B2C te zoeken en te selecteren.
  4. Selecteer gebruikersstromen in uw Azure AD B2C-tenant.
  5. Selecteer uw beleid (bijvoorbeeld 'B2C_1_SignupSignin') om het te openen.
  6. Selecteer Gebruikerskenmerken en selecteer vervolgens het gebruikerskenmerk (bijvoorbeeld 'Plaats').
  7. Selecteer Opslaan.

Geef optionele claims op voor uw app

De toepassingsclaims zijn waarden die worden geretourneerd naar de toepassing. Werk uw gebruikersstroom bij zodat deze de gewenste claims bevat:

  1. Selecteer uw beleid (bijvoorbeeld 'B2C_1_SignupSignin') om het te openen.
  2. Selecteer Toepassingsclaims.
  3. Selecteer kenmerken die u wilt terugsturen naar uw toepassing (bijvoorbeeld 'Plaats').
  4. Selecteer Opslaan.

Configureer invoertype van gebruikerskenmerken

  1. Selecteer uw beleid (bijvoorbeeld 'B2C_1_SignupSignin') om het te openen.

  2. Selecteer Pagina-indelingen.

  3. Selecteer de registratiepagina van het lokale account.

  4. Selecteer Plaats onder Gebruikerskenmerken.

    1. Selecteer Nee in de vervolgkeuzelijst Optioneel.
    2. Selecteer in het invoertype Gebruiker het huidige invoertype van de gebruiker, zoals Tekstvak, om een venster van de editor voor gebruikersinvoertypen te openen.
    3. Selecteer DropdownSingleSelect in de vervolgkeuzelijst Invoertype Gebruiker.
    4. Voer in de tekst en waarden de tekst- en waardeparen in waaruit uw set antwoorden voor het kenmerk bestaat. De tekst wordt weergegeven in de webinterface voor uw stroom en de waarden worden opgeslagen in Azure AD B2C voor geselecteerde tekst. Optioneel: Gebruik de knoppen Omhoog/omlaag om vervolgkeuzelijsten opnieuw te ordenen.
  5. Klik op OK. Optioneel: Gebruik de knoppen Omhoog/omlaag om gebruikerskenmerken opnieuw te ordenen op de registratiepagina.

  6. Selecteer Opslaan.

    Webpagina roept groene API aan.

Een lijst met waarden opgeven met behulp van gelokaliseerde verzamelingen

Een set waarden opgeven voor het plaatskenmerk:

  1. Taalaanpassing inschakelen voor de gebruikersstroom
  2. Selecteer uw beleid (bijvoorbeeld 'B2C_1_SignupSignin') om het te openen.
  3. Selecteer op de pagina Talen voor de gebruikersstroom de taal die u wilt aanpassen.
  4. Selecteer onder Resources op paginaniveau de registratiepagina van het lokale account.
  5. Selecteer Standaardinstellingen downloaden (of Onderdrukkingen downloaden als u deze taal eerder hebt bewerkt).
  6. Maak een LocalizedCollections kenmerk.

Het LocalizedCollections is een matrix van Name en Value paren. De volgorde voor de items is de volgorde die ze weergeven.

  • ElementId is het gebruikerskenmerk waarop dit LocalizedCollections-kenmerk een antwoord is.
  • Name is de waarde die aan de gebruiker wordt weergegeven.
  • Value is wat wordt geretourneerd in de claim wanneer deze optie is geselecteerd.
{
  "LocalizedStrings": [...],
  "LocalizedCollections": [
    {
      "ElementType": "ClaimType",
      "ElementId": "city",
      "TargetCollection": "Restriction",
      "Override": true,
      "Items": [
        {
          "Name": "Berlin",
          "Value": "Berlin"
        },
        {
          "Name": "London",
          "Value": "London"
        },
        {
          "Name": "Seattle",
          "Value": "Seattle"
        }
      ]
    }
  ]
}

Uw wijzigingen uploaden

  1. Nadat u de wijzigingen in uw JSON-bestand hebt voltooid, gaat u terug naar uw B2C-tenant.
  2. Selecteer Gebruikersstromen en selecteer uw beleid (bijvoorbeeld 'B2C_1_SignupSignin') om het te openen.
  3. Selecteer Talen.
  4. Selecteer de taal waarin u wilt vertalen.
  5. Selecteer onder Bestanden met resources op paginaniveau de registratiepagina van het lokale account.
  6. Selecteer het mappictogram en vervolgens het JSON-bestand dat u wilt uploaden. De wijzigingen worden automatisch opgeslagen in uw gebruikersstroom.

Uw gebruikersstroom testen

  1. Selecteer uw beleid (bijvoorbeeld 'B2C_1_SignupSignin') om het te openen.
  2. Selecteer Gebruikersstroom uitvoeren om uw beleid te testen.
  3. Selecteer voor Toepassing de webtoepassing met de naam testapp1 die u eerder hebt geregistreerd. De antwoord-URL moet https://jwt.ms weergeven.
  4. Selecteer gebruikersstroom uitvoeren

Overzicht

U kunt initiële gegevens van uw gebruikers verzamelen met behulp van het gebruikerstraject voor registratie of aanmelding. U kunt later meer claims verzamelen met behulp van een gebruikerstraject voor het bewerken van een profiel. Telkens wanneer Azure AD B2C interactief gegevens verzamelt van de gebruiker, wordt het zelfverklaard technisch profiel gebruikt. In dit voorbeeld gaat u als volgt te werk:

  1. Definieer een 'plaats'-claim.
  2. Vraag de gebruiker om zijn plaats.
  3. Behoud de stad in het gebruikersprofiel van de Azure AD B2C-directory.
  4. Lees de plaatsclaim uit de Azure AD B2C-directory bij elke aanmelding.
  5. Geef de stad terug aan uw reliënde toepassing na inloggen of registreren.

Een claim definiëren

Een claim biedt een tijdelijke opslag van gegevens tijdens de uitvoering van een Azure AD B2C-beleid. Het claimschema is de plaats waar u uw claims declareert. De volgende elementen worden gebruikt om de claim te definiëren:

  • DisplayName : een tekenreeks die het gebruikerslabel definieert.
  • DataType - het type van de claim.
  • UserHelpText : helpt de gebruiker te begrijpen wat er nodig is.
  • UserInputType : het type invoerbesturingselement, zoals tekstvak, keuzerondje, vervolgkeuzelijst of meerdere selecties.

Open het extensiebestand van uw beleid. Bijvoorbeeld: SocialAndLocalAccounts/TrustFrameworkExtensions.xml.

  1. Zoek het element BuildingBlocks . Als het element niet bestaat, voegt u het toe.
  2. Zoek het element ClaimsSchema . Als het element niet bestaat, voegt u het toe.
  3. Voeg de plaatsclaim toe aan het element 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>-->

Voeg het kenmerk SelectByDefault toe aan een Enumeration element om het standaard te selecteren wanneer de pagina voor het eerst wordt geladen. Als u bijvoorbeeld het Londen-item vooraf wilt selecteren, wijzigt u het Enumeration element als het volgende voorbeeld:

<Restriction>
  <Enumeration Text="Berlin" Value="berlin" />
  <Enumeration Text="London" Value="london" SelectByDefault="true" />
  <Enumeration Text="Seattle" Value="seattle" />
</Restriction>

Een claim toevoegen aan de gebruikersinterface

De volgende technische profielen zijn zelf-verklaard en worden aangeroepen wanneer van een gebruiker verwacht wordt dat deze invoer levert:

  • LocalAccountSignUpWithLogonEmail - Aanmeldingsstroom voor lokaal account.
  • SelfAsserted-Social - Eerste keer aanmelden van gebruikers met een federatief account.
  • SelfAsserted-ProfileUpdate - Bewerken van profielproces.

Als u de plaatsclaim wilt verzamelen tijdens de registratie, moet deze worden toegevoegd als een uitvoerclaim aan het LocalAccountSignUpWithLogonEmail technische profiel. Overschrijf dit technische profiel in het extensiebestand. Geef de volledige lijst met uitvoerclaims op om de volgorde te bepalen waarin de claims worden weergegeven op het scherm. Zoek het element ClaimsProviders . Voeg als volgt een nieuwe ClaimsProviders toe:

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

Als u de stadsclaim wilt verzamelen na de eerste aanmelding met een federatief account, moet deze worden toegevoegd als een uitvoerclaim aan het SelfAsserted-Social technische profiel. Als gebruikers van lokale en federatieve accounts hun profielgegevens later kunnen bewerken, voegt u de invoer- en uitvoerclaims toe aan het SelfAsserted-ProfileUpdate technische profiel. Overschrijf deze technische profielen in het extensiebestand. Geef de volledige lijst met de uitvoerclaims op om de volgorde te bepalen waarin de claims worden weergegeven op het scherm. Zoek het element ClaimsProviders . Voeg als volgt een nieuwe ClaimsProviders toe:

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

Een claim lezen en schrijven

De volgende technische profielen zijn Active Directory-technische profielen, die gegevens lezen en schrijven naar Microsoft Entra-id.
Hiermee PersistedClaims schrijft u gegevens naar het gebruikersprofiel en OutputClaims leest u gegevens uit het gebruikersprofiel in de respectieve Technische Active Directory-profielen.

Overschrijf deze technische profielen in het extensiebestand. Zoek het element ClaimsProviders . Voeg als volgt een nieuwe ClaimsProviders toe:

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

Een claim opnemen in het token

Om de stadsclaim terug te sturen naar de relying party-toepassing, voegt u een uitvoerclaim toe aan het SocialAndLocalAccounts/SignUpOrSignIn.xml bestand. De uitvoerclaim wordt toegevoegd aan het token na een geslaagd gebruikerstraject en wordt verzonden naar de toepassing. Wijzig het technische profielelement in de sectie vertrouwende partij om de plaats toe te voegen als een uitvoerclaim.

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

Uw bijgewerkte aangepaste beleid uploaden en testen

  1. Als u toegang hebt tot meerdere tenants, selecteert u het pictogram Instellingen in het hoofdmenu om over te schakelen naar uw Azure AD B2C-tenant vanuit het menu Mappen + abonnementen.
  2. Zoek Azure AD B2C en selecteer deze.
  3. Selecteer onder Beleidde optie Identity Experience Framework.
  4. Selecteer Aangepast beleid uploaden.
  5. Upload de beleidsbestanden die u eerder hebt gewijzigd.

Het aangepaste beleid testen

  1. Selecteer uw relying party-beleid, bijvoorbeeld B2C_1A_signup_signin.
  2. Selecteer voor Toepassing een webtoepassing die u eerder hebt geregistreerd. De antwoord-URL moet https://jwt.ms weergeven.
  3. Selecteer de knop Nu uitvoeren .
  4. Selecteer Nu registreren om u aan te melden op de registratiepagina of aanmeldingspagina. Voltooi het invoeren van de gebruikersgegevens, inclusief de plaatsnaam, en selecteer Vervolgens Maken. U ziet nu de inhoud van het token dat is geretourneerd.

Het aanmeldingsscherm moet er ongeveer uitzien als in de volgende schermopname:

Schermopname van de optie voor gewijzigde registratie

Het token dat naar uw toepassing wordt verzonden, bevat de city claim.

{
  "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"
  ...
}

[Optioneel] De gebruikersinterface lokaliseren

Met Azure AD B2C kunt u uw beleid in verschillende talen aanpassen. Lees voor meer informatie over het aanpassen van de taalervaring. Als u de registratiepagina wilt lokaliseren, stelt u de lijst met ondersteunde talen in en geeft u taalspecifieke labels op.

Opmerking

Wanneer u de LocalizedCollection met de taalspecifieke labels gebruikt, kunt u de Restriction verzameling verwijderen uit de claimdefinitie.

In het volgende voorbeeld ziet u hoe u de lijst met steden voor Engels en Spaans kunt opgeven. Beide stellen de Restriction verzameling van de claimstad in met een lijst met items voor Engels en Spaans. Met SelectByDefault wordt standaard een item geselecteerd wanneer de pagina voor het eerst wordt geladen.

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

Nadat u het lokalisatieelement hebt toegevoegd, bewerkt u de inhoudsdefinitie met de lokalisatie. In het volgende voorbeeld worden Engelse (en) en Spaanse (es) aangepaste lokale middelen toegevoegd aan de registratiepagina:

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

Volgende stappen