Uwaga
Dostęp do tej strony wymaga autoryzacji. Może 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.
W tym artykule opisano sposób włączania, dostosowywania i ulepszania środowiska uwierzytelniania usługi Azure Active Directory B2C (Azure AD B2C) dla aplikacji systemu Android.
Przed rozpoczęciem zapoznaj się z następującymi artykułami:
- Konfigurowanie uwierzytelniania w przykładowej aplikacji systemu Android przy użyciu usługi Azure AD B2C
- Włączanie uwierzytelniania we własnej aplikacji systemu Android przy użyciu usługi Azure AD B2C
Korzystanie z domeny niestandardowej
Za pomocą domeny niestandardowej można w pełni oznaczyć adres URL uwierzytelniania. Z perspektywy użytkownika użytkownicy pozostają w twojej domenie podczas procesu uwierzytelniania, a nie są przekierowywani do nazwy domeny b2clogin.com usługi Azure AD B2C.
Aby usunąć wszystkie odwołania do b2c w adresie URL, możesz również zastąpić nazwę dzierżawy B2C, np. contoso.onmicrosoft.com, w adresie URL żądania uwierzytelniania identyfikatorem GUID dzierżawy. Możesz na przykład zmienić wartość https://fabrikamb2c.b2clogin.com/contoso.onmicrosoft.com/
na https://account.contosobank.co.uk/<tenant ID GUID>/
.
Aby użyć domeny niestandardowej i identyfikatora dzierżawy w adresie URL uwierzytelniania, postępuj zgodnie ze wskazówkami w temacie Włączanie domen niestandardowych. Poszukaj biblioteki Microsoft Authentication Library (obiektu konfiguracji biblioteki MSAL, a następnie zaktualizuj urzędy przy użyciu niestandardowej nazwy domeny i identyfikatora dzierżawy).
Poniższy kod Kotlin przedstawia obiekt konfiguracji biblioteki MSAL przed zmianą:
val parameters = AcquireTokenParameters.Builder()
.startAuthorizationFromActivity(activity)
.fromAuthority("https://contoso.b2clogin.com/fabrikamb2c.contoso.com/B2C_1_susi")
// More settings here
.build()
b2cApp!!.acquireToken(parameters)
Poniższy kod Kotlin pokazuje obiekt konfiguracji biblioteki MSAL po zmianie:
val parameters = AcquireTokenParameters.Builder()
.startAuthorizationFromActivity(activity)
.fromAuthority("https://custom.domain.com/00000000-0000-0000-0000-000000000000/B2C_1_susi")
// More settings here
.build()
b2cApp!!.acquireToken(parameters)
Wstępne wypełnianie nazwy logowania
Podczas procesu logowania użytkownika, aplikacja może być skierowana do określonego użytkownika. Gdy aplikacja jest przeznaczona dla użytkownika, może określić w żądaniu login_hint
autoryzacji parametr zapytania z nazwą logowania użytkownika. Usługa Azure AD B2C automatycznie wypełnia nazwę logowania, a użytkownik musi podać tylko hasło.
Aby wstępnie uzupełnić nazwę użytkownika, wykonaj następujące czynności:
- Jeśli używasz zasad niestandardowych, dodaj wymagane oświadczenie wejściowe zgodnie z opisem w temacie Konfigurowanie logowania bezpośredniego.
- Poszukaj obiektu konfiguracji biblioteki MSAL, a następnie dodaj metodę
withLoginHint()
za pomocą wskazówki logowania.
val parameters = AcquireTokenParameters.Builder()
.startAuthorizationFromActivity(activity)
.withLoginHint("bob@contoso.com")
// More settings here
.build()
b2cApp!!.acquireToken(parameters)
Przeselekcjonować dostawcę tożsamości
Jeśli skonfigurowałeś proces logowania dla swojej aplikacji, aby obejmował integrację kont społecznościowych, takich jak Facebook, LinkedIn lub Google, możesz określić parametr domain_hint
. Ten parametr zapytania zawiera wskazówkę dotyczącą dostawcy tożsamości społecznościowych usługi Azure AD B2C, który powinien być używany do logowania. Jeśli na przykład aplikacja określa domain_hint=facebook.com
, przepływ logowania przechodzi bezpośrednio do strony logowania w serwisie Facebook.
Aby przekierować użytkowników do zewnętrznego dostawcy tożsamości, wykonaj następujące czynności:
- Sprawdź nazwę domeny zewnętrznego dostawcy tożsamości. Aby uzyskać więcej informacji, zobacz Przekierowanie logowania do dostawcy społecznościowego.
- Utwórz lub użyj istniejącego obiektu listy do przechowywania dodatkowych parametrów zapytania.
-
domain_hint
Dodaj parametr z odpowiednią nazwą domeny do listy (na przykładfacebook.com
). - Przekaż listę dodatkowych parametrów zapytania do metody obiektu konfiguracji biblioteki
withAuthorizationQueryStringParameters
MSAL.
val extraQueryParameters: MutableList<Pair<String, String>> = ArrayList()
extraQueryParameters.add(Pair("domain_hint", "facebook.com"))
val parameters = AcquireTokenParameters.Builder()
.startAuthorizationFromActivity(activity)
.withAuthorizationQueryStringParameters(extraQueryParameters)
// More settings here
.build()
b2cApp!!.acquireToken(parameters)
Określanie języka interfejsu użytkownika
Dostosowywanie języka w usłudze Azure AD B2C umożliwia przepływowi użytkownika dostosowanie różnych języków do potrzeb klientów. Aby uzyskać więcej informacji, zobacz Dostosowywanie języka.
Aby ustawić preferowany język, wykonaj następujące czynności:
- Konfigurowanie dostosowywania języka.
- Utwórz lub użyj istniejącego obiektu listy do przechowywania dodatkowych parametrów zapytania.
-
ui_locales
Dodaj parametr z odpowiednim kodem języka do listy (na przykładen-us
). - Przekaż listę dodatkowych parametrów zapytania do metody obiektu konfiguracji biblioteki
withAuthorizationQueryStringParameters
MSAL.
val extraQueryParameters: MutableList<Map.Entry<String, String>> = ArrayList()
val mapEntry = object : Map.Entry<String, String> {
override val key: String = "ui_locales"
override val value: String = "en-us"
}
extraQueryParameters.add(mapEntry )
val parameters = AcquireTokenParameters.Builder()
.startAuthorizationFromActivity(activity)
.withAuthorizationQueryStringParameters(extraQueryParameters)
// More settings here
.build()
b2cApp!!.acquireToken(parameters)
Przekazywanie niestandardowego parametru ciągu zapytania
Za pomocą zasad niestandardowych można przekazać niestandardowy parametr ciągu zapytania. Dobrym przykładem przypadku użycia jest dynamiczna zmiana zawartości strony.
Aby przekazać niestandardowy parametr ciągu zapytania, wykonaj następujące czynności:
- Skonfiguruj element ContentDefinitionParameters .
- Utwórz lub użyj istniejącego obiektu listy do przechowywania dodatkowych parametrów zapytania.
- Dodaj niestandardowy parametr ciągu zapytania, taki jak
campaignId
. Ustaw wartość parametru (na przykładgermany-promotion
). - Przekaż listę dodatkowych parametrów zapytania do metody obiektu konfiguracji biblioteki
withAuthorizationQueryStringParameters
MSAL.
val extraQueryParameters: MutableList<Pair<String, String>> = ArrayList()
extraQueryParameters.add(Pair("campaignId", "germany-promotion"))
val parameters = AcquireTokenParameters.Builder()
.startAuthorizationFromActivity(activity)
.withAuthorizationQueryStringParameters(extraQueryParameters)
// More settings here
.build()
b2cApp!!.acquireToken(parameters)
Przekaż wskazówkę dotyczącą tokenu identyfikatora
Aplikacja jednostki uzależnionej może wysyłać przychodzący token internetowy JSON (JWT) w ramach żądania autoryzacji OAuth2. Token przychodzący to wskazówka dotycząca użytkownika lub żądania autoryzacji. Usługa Azure AD B2C weryfikuje token, a następnie wyodrębnia oświadczenie.
Aby uwzględnić wskazówkę tokenu identyfikatora w żądaniu uwierzytelniania, wykonaj następujące czynności:
- W zasadach niestandardowych zdefiniuj profil techniczny wskazówki dotyczącej tokenu identyfikatora.
- W kodzie wygeneruj lub uzyskaj token identyfikatora, a następnie ustaw token na zmienną (na przykład
idToken
). - Utwórz lub użyj istniejącego obiektu listy do przechowywania dodatkowych parametrów zapytania.
-
id_token_hint
Dodaj parametr z odpowiednią zmienną, która przechowuje token identyfikatora. - Przekaż listę dodatkowych parametrów zapytania do metody obiektu konfiguracji biblioteki
withAuthorizationQueryStringParameters
MSAL.
val extraQueryParameters: MutableList<Pair<String, String>> = ArrayList()
extraQueryParameters.add(Pair("id_token_hint", idToken))
val parameters = AcquireTokenParameters.Builder()
.startAuthorizationFromActivity(activity)
.withAuthorizationQueryStringParameters(extraQueryParameters)
// More settings here
.build()
b2cApp!!.acquireToken(parameters)
Doświadczenie osadzonego widoku internetowego
Przeglądarki internetowe są wymagane do uwierzytelniania interakcyjnego. Domyślnie biblioteka MSAL używa systemowego widoku internetowego. Podczas logowania biblioteka MSAL wyświetla widok internetowy systemu Android z interfejsem użytkownika usługi Azure AD B2C.
Aby uzyskać więcej informacji, zobacz artykuł Włączanie logowania jednokrotnego między aplikacjami w systemie Android przy użyciu biblioteki MSAL .
W zależności od wymagań można użyć osadzonego widoku internetowego. Istnieją różnice w zachowaniu wizualnym i logowaniu jednokrotnym między osadzonym widokiem sieciowym a systemowym widokiem sieciowym w MSAL.
Ważne
Zalecamy użycie domyślnej platformy, która jest zwykle przeglądarką systemową. Przeglądarka systemowa lepiej zapamiętuje użytkowników, którzy się wcześniej zalogowali. Niektórzy dostawcy tożsamości, tacy jak Google, nie obsługują osadzonego środowiska wyświetlania.
Aby zmienić to zachowanie, otwórz plik app/src/main/res/raw/auth_config_b2c.json . Następnie dodaj authorization_user_agent
atrybut z wartością WEBVIEW
. W poniższym przykładzie pokazano, jak zmienić typ widoku internetowego na widok osadzony:
{
"authorization_user_agent": "WEBVIEW"
}
Dalsze kroki
- Aby dowiedzieć się więcej na temat konfiguracji systemu Android, zobacz MSAL for Android configuration options (Opcje konfiguracji biblioteki MSAL dla systemu Android).