Nuta
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zalogować się lub zmienić katalogi.
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zmienić katalogi.
Ważne
Od 1 maja 2025 r. usługa Azure AD B2C nie będzie już dostępna do zakupu dla nowych klientów. Dowiedz się więcej w naszych często zadawanych pytaniach.
Przed rozpoczęciem użyj selektora Wybierz typ zasad w górnej części tej strony, aby wybrać typ konfigurowanych zasad. Usługa Azure Active Directory B2C oferuje dwie metody definiowania sposobu interakcji użytkowników z aplikacjami: za pomocą wstępnie zdefiniowanych przepływów użytkowników lub w pełni konfigurowalnych zasad niestandardowych. Kroki wymagane w tym artykule są różne dla każdej metody.
W tym artykule zbierzesz nowy atrybut, taki jak miasto, podczas podróży do rejestracji w usłudze Azure Active Directory B2C (Azure AD B2C). Możesz uzyskać miasto użytkowników, skonfigurować je jako listę rozwijaną i określić, czy jest to wymagane do podania.
Ważne
W tym przykładzie użyto wbudowanego twierdzenia „city”. Zamiast tego możesz wybrać jeden z obsługiwanych wbudowanych atrybutów usługi Azure AD B2C lub atrybutu niestandardowego. Aby użyć atrybutu niestandardowego, włącz atrybuty niestandardowe. Aby użyć innego wbudowanego lub niestandardowego atrybutu, zastąp wartość "city" wybranym atrybutem, na przykład wbudowanym atrybutem JobTitle lub atrybutem niestandardowym, na przykład extension_loyaltyId.
Wymagania wstępne
- Utwórz przepływ użytkownika, aby użytkownicy mogli zarejestrować się i zalogować do aplikacji.
- Rejestrowanie aplikacji internetowej.
- Wykonaj kroki opisane w Jak rozpocząć z zasadami niestandardowymi w usłudze Active Directory B2C. W tym samouczku przedstawiono sposób aktualizowania niestandardowych plików zasad, aby korzystać z konfiguracji kont usługi Azure AD B2C.
- Rejestrowanie aplikacji internetowej.
Dodaj atrybuty użytkownika do przepływu użytkownika
- Zaloguj się do witryny Azure Portal.
- Jeśli masz dostęp do wielu dzierżaw, wybierz ikonę Ustawienia w górnym menu, aby przełączyć się na dzierżawę Azure AD B2C z menu Katalogi + subskrypcje.
- W obszarze usługi Azurewybierz Azure AD B2C. Możesz też użyć pola wyszukiwania, aby znaleźć i wybrać Azure AD B2C.
- W dzierżawie Azure AD B2C wybierz opcję Przepływy użytkownika.
- Wybierz swoją politykę (na przykład "B2C_1_SignupSignin"), aby ją otworzyć.
- Wybierz pozycję Atrybuty użytkownika , a następnie wybierz atrybut użytkownika (na przykład "Miasto").
- Wybierz Zapisz.
Podaj opcjonalne oświadczenia do aplikacji
Żądania aplikacji to wartości zwracane do aplikacji. Zaktualizuj przepływ użytkownika, aby zawierał żądane oświadczenia:
- Wybierz swoją politykę (na przykład "B2C_1_SignupSignin"), aby ją otworzyć.
- Wybierz pozycję Oświadczenia aplikacji.
- Wybierz atrybuty, które chcesz wysłać z powrotem do aplikacji (na przykład "Miasto").
- Wybierz Zapisz.
Konfigurowanie typu wejściowego atrybutów użytkownika
Wybierz swoją politykę (na przykład "B2C_1_SignupSignin"), aby ją otworzyć.
Wybierz pozycję Układy stron.
Wybierz stronę rejestracji konta lokalnego.
W obszarze Atrybuty użytkownika wybierz pozycję Miasto.
- Z listy rozwijanej Opcjonalne wybierz pozycję Nie.
- W polu Typ danych wejściowych użytkownika wybierz bieżący typ danych wejściowych użytkownika, taki jak TextBox, aby otworzyć okienko Edytor typów danych wejściowych użytkownika .
- Z listy rozwijanej Typ danych wejściowych użytkownika wybierz DropdownSingleSelect.
- W polach Tekst i Wartości wprowadź pary tekstowe i wartości, które składają się na zestaw odpowiedzi dla atrybutu. Tekst jest wyświetlany w interfejsie internetowym dla przepływu, a wartości są przechowywane w usłudze Azure AD B2C dla wybranego tekstu. Opcjonalnie: użyj przycisków "Przenieś w górę/w dół", aby zmienić kolejność elementów na liście rozwijanej.
Wybierz OK Opcjonalnie: użyj przycisków "Przesuń w górę/w dół", aby zmienić kolejność atrybutów użytkownika na stronie zapisu.
Wybierz Zapisz.
Podaj listę wartości przy użyciu zlokalizowanych kolekcji
Aby podać listę zestawów wartości atrybutu miasta:
- Włączanie dostosowywania języka w przepływie użytkownika
- Wybierz swoją politykę (na przykład "B2C_1_SignupSignin"), aby ją otworzyć.
- Na stronie przepływu użytkownika Języki wybierz język, który chcesz dostosować.
- W obszarze Pliki zasobów na poziomie strony wybierz pozycję Strona rejestracji konta lokalnego.
- Wybierz pozycję Pobierz wartości domyślne (lub Pobierz nadpisania, jeśli wcześniej edytowano ten język).
- Utwórz
LocalizedCollectionsatrybut.
LocalizedCollections to tablica par Name i Value. Kolejność elementów to kolejność ich wyświetlania.
-
ElementIdjest atrybutem użytkownika, do którego tenLocalizedCollectionsatrybut jest odpowiedzią. -
Nameto wartość wyświetlana użytkownikowi. -
Valueto, co jest zwracane w oświadczeniu po wybraniu tej opcji.
{
"LocalizedStrings": [...],
"LocalizedCollections": [
{
"ElementType": "ClaimType",
"ElementId": "city",
"TargetCollection": "Restriction",
"Override": true,
"Items": [
{
"Name": "Berlin",
"Value": "Berlin"
},
{
"Name": "London",
"Value": "London"
},
{
"Name": "Seattle",
"Value": "Seattle"
}
]
}
]
}
Przekazywanie zmian
- Po zakończeniu zmian w pliku JSON wróć do dzierżawy usługi B2C.
- Wybierz Przepływy użytkownika i wybierz swoją politykę (na przykład "B2C_1_SignupSignin"), aby ją otworzyć.
- Wybierz pozycję Języki.
- Wybierz język, na który chcesz przetłumaczyć.
- W obszarze Pliki zasobów na poziomie strony wybierz pozycję Strona rejestracji konta lokalnego.
- Wybierz ikonę folderu i wybierz plik JSON do przekazania. Zmiany są automatycznie zapisywane w przepływie użytkownika.
Testowanie przepływu użytkownika
- Wybierz swoją politykę (na przykład "B2C_1_SignupSignin"), aby ją otworzyć.
- Aby przetestować politykę, wybierz pozycję Uruchom przepływ użytkownika.
- W polu Aplikacja wybierz aplikację internetową o nazwie testapp1 , która została wcześniej zarejestrowana. Adres URL odpowiedzi powinien zawierać wartość
https://jwt.ms. - Wybierz pozycję Uruchom przepływ użytkownika
Przegląd
Możesz zebrać początkowe dane od użytkowników, korzystając ze ścieżki użytkownika rejestracji lub logowania. Można zebrać więcej zgłoszeń później, korzystając z funkcji edycji profilu użytkownika. Za każdym razem, gdy usługa Azure AD B2C wchodzi w interaktywną relację z użytkownikiem, zbierając informacje, korzysta z samodzielnie zadeklarowanego profilu technicznego. W tym przykładzie wykonasz następujące elementy:
- Zdefiniuj twierdzenie "miasto".
- Poproś użytkownika o swoje miasto.
- Utrwalij miasto w profilu użytkownika w katalogu usługi Azure AD B2C.
- Przeczytaj oświadczenie miasta z katalogu usługi Azure AD B2C przy każdym logowaniu.
- Po zalogowaniu lub rejestracji wróć do aplikacji jednostki uzależnionej.
Definiowanie oświadczenia
Oświadczenie zapewnia tymczasowe przechowywanie danych podczas wykonywania polityki w usłudze Azure AD B2C. Schemat oświadczeń to miejsce, w którym zadeklarowane są oświadczenia. Do zdefiniowania oświadczenia służą następujące elementy:
- DisplayName — ciąg definiujący etykietę skierowaną do użytkownika.
- DataType — typ oświadczenia.
- UserHelpText — pomaga użytkownikowi zrozumieć, co jest wymagane.
- UserInputType — typ kontrolki wprowadzania, na przykład pole tekstowe, wybór radiowy, lista rozwijana lub wiele zaznaczeń.
Otwórz plik rozszerzeń zasad. Na przykład SocialAndLocalAccounts/TrustFrameworkExtensions.xml.
- Wyszukaj element BuildingBlocks . Jeśli element nie istnieje, dodaj go.
- Znajdź element ClaimsSchema . Jeśli element nie istnieje, dodaj go.
- Dodaj oświadczenie miasta 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>-->
Dołącz atrybut SelectByDefault do Enumeration elementu, aby ustawić go domyślnie po pierwszym załadowaniu strony. Aby na przykład wstępnie wybrać element London, zmień element Enumeration zgodnie z następującym przykładem:
<Restriction>
<Enumeration Text="Berlin" Value="berlin" />
<Enumeration Text="London" Value="london" SelectByDefault="true" />
<Enumeration Text="Seattle" Value="seattle" />
</Restriction>
Dodawanie oświadczenia do interfejsu użytkownika
Następujące profile techniczne są automatycznie złożone, wywoływane, gdy użytkownik ma podać dane:
- LocalAccountSignUpWithLogonEmail — przepływ rejestracji konta lokalnego.
- SelfAsserted-Social — konto federacyjne podczas pierwszego logowania użytkownika.
- SelfAsserted-ProfileUpdate — aktualizacja profilu.
Aby zebrać roszczenie miasta podczas rejestracji, należy je dodać jako oświadczenie wyjściowe do profilu technicznego LocalAccountSignUpWithLogonEmail. Zastąp ten profil techniczny w pliku rozszerzenia. Określ całą listę oświadczeń wyjściowych, aby kontrolować kolejność prezentowania oświadczeń na ekranie. Znajdź element ClaimsProviders . Dodaj nowy element ClaimsProviders w następujący sposób:
<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>
Aby zebrać oświadczenie miasta po początkowym zalogowaniu się przy użyciu konta federacyjnego, należy dodać je jako oświadczenie wyjściowe do profilu technicznego SelfAsserted-Social . Aby użytkownicy kont lokalnych i federacyjnych mogli później edytować swoje dane profilu, dodaj oświadczenia wejściowe i wyjściowe do profilu technicznego SelfAsserted-ProfileUpdate . Zastąp te profile techniczne w pliku rozszerzenia. Określ całą listę oświadczeń wyjściowych, aby kontrolować kolejność prezentowania oświadczeń na ekranie. Znajdź element ClaimsProviders . Dodaj nowy element ClaimsProviders w następujący sposób:
<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>
Odczytywanie i zapisywanie oświadczenia
Poniższe profile techniczne to profile techniczne usługi Active Directory, które odczytują i zapisują dane w identyfikatorze Entra firmy Microsoft.
Użyj PersistedClaims do zapisania danych w profilu użytkownika i OutputClaims do odczytania danych z profilu użytkownika w odpowiednich profilach technicznych Active Directory.
Zastąp te profile techniczne w pliku rozszerzenia. Znajdź element ClaimsProviders . Dodaj nowy element ClaimsProviders w następujący sposób:
<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>
Dołączanie oświadczenia do tokenu
Aby zwrócić oświadczenie miasta z powrotem do aplikacji jednostki uzależnionej, dodaj oświadczenie wyjściowe do SocialAndLocalAccounts/SignUpOrSignIn.xml pliku. Oświadczenie wyjściowe zostanie dodane do tokenu po pomyślnej podróży użytkownika i zostanie wysłane do aplikacji. Zmodyfikuj element profilu technicznego w sekcji jednostki uzależnionej, aby dodać miasto jako oświadczenie wyjściowe.
<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>
Prześlij i przetestuj swoje zaktualizowane zasady niestandardowe
- Jeśli masz dostęp do wielu dzierżaw, wybierz ikonę Ustawienia w górnym menu, aby przełączyć się na dzierżawę Azure AD B2C z menu Katalogi + subskrypcje.
- Wyszukaj i wybierz Azure AD B2C.
- W obszarze Policieswybierz pozycję Identity Experience Framework.
- Wybierz Prześlij zasady niestandardowe.
- Przekaż wcześniej zmienione pliki zasad.
Przetestuj politykę niestandardową
- Wybierz zasady zaufanej strony, na przykład
B2C_1A_signup_signin. - W polu Aplikacja wybierz wcześniej zarejestrowaną aplikację internetową. Adres URL odpowiedzi powinien zawierać wartość
https://jwt.ms. - Wybierz przycisk Uruchom teraz .
- Na stronie rejestracji lub logowania wybierz pozycję Zarejestruj się teraz , aby się zarejestrować. Zakończ wprowadzanie informacji o użytkowniku, w tym nazwę miasta, a następnie wybierz pozycję Utwórz. Powinna zostać wyświetlona zawartość zwróconego tokenu.
Ekran rejestracji powinien wyglądać podobnie do poniższego zrzutu ekranu:
Token wysłany z powrotem do twojej aplikacji zawiera roszczenie 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"
...
}
[Opcjonalnie] Lokalizowanie interfejsu użytkownika
Usługa Azure AD B2C umożliwia dostosowanie zasad do różnych języków. Aby uzyskać więcej informacji, dowiedz się więcej na temat dostosowywania środowiska językowego. Aby zlokalizować stronę rejestracji, skonfiguruj listę obsługiwanych języków i podaj etykiety specyficzne dla języka.
Uwaga / Notatka
Gdy używasz LocalizedCollection z etykietami specyficznymi dla danego języka, możesz usunąć kolekcję Restriction z definicji oświadczenia.
W poniższym przykładzie pokazano, jak podać listę miast dla języka angielskiego i hiszpańskiego. Obie ustawiają Restriction kolekcję miasta oświadczeń z listą elementów dla języka angielskiego i hiszpańskiego. Funkcja SelectByDefault domyślnie wybiera element po pierwszym załadowaniu strony.
<!--
<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 dodaniu elementu lokalizacji zmodyfikuj definicję zawartości przy użyciu lokalizacji. W poniższym przykładzie do strony rejestracji dodawane są niestandardowe zasoby w językach angielskim (en) i hiszpańskim (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>-->
Dalsze kroki
- Dowiedz się więcej o elemencie ClaimsSchema w dokumentacji IEF.
- Dowiedz się, jak używać atrybutów niestandardowych w usłudze Azure AD B2C.