Примечание
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
Это важно
Начиная с 1 мая 2025 г. Azure AD B2C больше не будет доступен для приобретения для новых клиентов. Дополнительные сведения см. в разделе "Вопросы и ответы".
В этой статье описывается, как включить, настроить и улучшить возможности проверки подлинности Azure Active Directory B2C (Azure AD B2C) для приложения Android.
Прежде чем начать, ознакомьтесь со следующими статьями:
- Настройка проверки подлинности в примере приложения Android с помощью Azure AD B2C
- Включение проверки подлинности в собственном приложении Android с помощью Azure AD B2C
Использование личного домена
Используя пользовательский домен, вы можете полностью оформить URL-адрес проверки подлинности в соответствии с вашим брендом. С точки зрения пользователя пользователи остаются в домене во время процесса проверки подлинности, а не перенаправляются в домен azure AD B2C b2clogin.com.
Чтобы удалить все ссылки на "b2c" в URL-адресе, вы также можете заменить имя клиента B2C, contoso.onmicrosoft.com, в URL-адресе запроса проверки подлинности идентификатором GUID вашего контрагента. Например, можно изменить https://fabrikamb2c.b2clogin.com/contoso.onmicrosoft.com/
на https://account.contosobank.co.uk/<tenant ID GUID>/
.
Чтобы использовать личный домен и идентификатор клиента в URL-адресе проверки подлинности, следуйте инструкциям в разделе "Включить пользовательские домены". Найдите библиотеку проверки подлинности Майкрософт (объект конфигурации MSAL, а затем обновите центры с помощью имени личного домена и идентификатора клиента.
В следующем коде Kotlin показан объект конфигурации MSAL перед изменением:
val parameters = AcquireTokenParameters.Builder()
.startAuthorizationFromActivity(activity)
.fromAuthority("https://contoso.b2clogin.com/fabrikamb2c.contoso.com/B2C_1_susi")
// More settings here
.build()
b2cApp!!.acquireToken(parameters)
В следующем коде Kotlin показан объект конфигурации MSAL после изменения:
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)
Предварительное заполнение имени входа
Во время процесса входа пользователя ваше приложение может быть ориентировано на определенного пользователя. Когда приложение предназначено для пользователя, оно может указать в запросе авторизации параметр запроса login_hint
с именем входа пользователя. Azure AD B2C автоматически заполняет имя входа, а пользователь должен указать только пароль.
Чтобы предварительно заполнить имя входа, сделайте следующее:
- Если вы используете настраиваемую политику, добавьте необходимое входное утверждение, как описано в разделе "Настройка прямого входа".
- Найдите объект конфигурации MSAL, а затем добавьте
withLoginHint()
метод с указанием входа.
val parameters = AcquireTokenParameters.Builder()
.startAuthorizationFromActivity(activity)
.withLoginHint("bob@contoso.com")
// More settings here
.build()
b2cApp!!.acquireToken(parameters)
Предварительно выберите поставщика удостоверений
Если вы настроили процесс входа приложения, чтобы включить социальные учетные записи, такие как Facebook, LinkedIn или Google, вы можете указать domain_hint
параметр. Этот параметр запроса содержит указание Azure AD B2C о социальном поставщике удостоверений, который следует использовать для входа в систему. Например, если приложение указывает domain_hint=facebook.com
, поток входа переходит непосредственно на страницу входа в Facebook.
Чтобы перенаправить пользователей к внешнему поставщику удостоверений, сделайте следующее:
- Проверьте доменное имя внешнего поставщика удостоверений. Для получения дополнительных сведений см. Перенаправление входа к социальному провайдеру.
- Создайте или используйте существующий объект списка для хранения дополнительных параметров запроса.
-
domain_hint
Добавьте параметр с соответствующим доменным именем в список (например,facebook.com
). - Передайте список дополнительных параметров запроса в метод объекта
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)
Указание языка пользовательского интерфейса
Настройка языка в Azure AD B2C позволяет потоку пользователей соответствовать различным языкам в соответствии с потребностями клиентов. Дополнительные сведения см. в разделе "Настройка языка".
Чтобы задать предпочтительный язык, сделайте следующее:
- Настройте настройку языка.
- Создайте или используйте существующий объект списка для хранения дополнительных параметров запроса.
-
ui_locales
Добавьте параметр с соответствующим кодом языка в список (например,en-us
). - Передайте список дополнительных параметров запроса в метод объекта
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)
Передача настраиваемого параметра строки запроса
С помощью настраиваемых политик можно передать настраиваемый параметр строки запроса. Хорошим примером использования является динамическое изменение содержимого страницы.
Чтобы передать настраиваемый параметр строки запроса, сделайте следующее:
- Настройте элемент ContentDefinitionParameters .
- Создайте или используйте существующий объект списка для хранения дополнительных параметров запроса.
- Добавьте настраиваемый параметр строки запроса, например
campaignId
. Задайте значение параметра (например,germany-promotion
). - Передайте список дополнительных параметров запроса в метод объекта
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)
Передайте подсказку по токену идентификатора
Приложение проверяющей стороны может отправить входящий веб-токен JSON (JWT) в рамках запроса авторизации OAuth2. Входящий маркер — это указание о пользователе или запросе авторизации. Azure AD B2C проверяет токен, а затем извлекает утверждение.
Чтобы включить идентификационный токен в запрос аутентификации, сделайте следующее:
- В пользовательской политике определите технический профиль указания маркера идентификатора.
- В коде создайте или приобретите маркер идентификатора, а затем задайте маркер переменной (например,
idToken
). - Создайте или используйте существующий объект списка для хранения дополнительных параметров запроса.
-
id_token_hint
Добавьте параметр с соответствующей переменной, в которой хранится маркер идентификатора. - Передайте список дополнительных параметров запроса в метод объекта
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)
Встроенный интерфейс веб-представления
Веб-браузеры необходимы для интерактивной проверки подлинности. По умолчанию библиотека MSAL использует системное веб-представление. Во время входа библиотека MSAL всплывает в веб-представлении системы Android с пользовательским интерфейсом Azure AD B2C.
Дополнительные сведения см. в статье "Включение единого входа между приложениями в Android" с помощью статьи MSAL .
В зависимости от требований можно использовать внедренное веб-представление. Существуют различия в поведении визуальных элементов и единого входа между встроенным веб-интерфейсом и системным веб-интерфейсом в MSAL.
Это важно
Рекомендуется использовать платформу по умолчанию, которая обычно является системным браузером. Системный браузер лучше запоминает пользователей, которые уже входили в систему. Некоторые поставщики удостоверений, такие как Google, не поддерживают встроенный интерфейс просмотра.
Чтобы изменить это поведение, откройте файл приложения/src/main/res/raw/auth_config_b2c.json . Затем добавьте authorization_user_agent
атрибут со значением WEBVIEW
. В следующем примере показано, как изменить тип веб-представления на внедренное представление:
{
"authorization_user_agent": "WEBVIEW"
}
Дальнейшие шаги
- Дополнительные сведения о конфигурации Android см. в разделе "Параметры конфигурации MSAL для Android".