Примечание
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
Это важно
Начиная с 1 мая 2025 г. Azure AD B2C больше не будет доступен для приобретения для новых клиентов. Дополнительные сведения см. в разделе "Вопросы и ответы".
В этой статье используется пример приложения Android (Kotlin и Java) для иллюстрации добавления проверки подлинности Azure Active Directory B2C (Azure AD B2C) в мобильные приложения.
Обзор
OpenID Connect (OIDC) представляет собой протокол проверки подлинности, основанный на OAuth 2.0. Вы можете использовать OIDC для безопасного входа пользователей в приложение. В этом примере мобильного приложения используется библиотека проверки подлинности Майкрософт (MSAL) с потоком PKCE кода OIDC. MSAL — это библиотека, предоставляемая корпорацией Майкрософт, которая упрощает добавление поддержки проверки подлинности и авторизации в мобильные приложения.
Процесс входа включает следующие шаги:
- Пользователи открывают приложение и выбирают вход.
- Приложение открывает системный браузер мобильного устройства и запускает запрос проверки подлинности в Azure AD B2C.
- Пользователи зарегистрируются или войдут в систему, сбросят пароль или войдут с помощью социальной учетной записи.
- После успешного входа пользователей Azure AD B2C возвращает код авторизации приложению.
- Приложение выполняет следующие действия:
- Он меняет код авторизации на токен идентификатора, токен доступа и токен обновления.
- Он считывает информацию токена идентификатора.
- Он сохраняет маркеры в кэше в памяти для последующего использования.
Обзор регистрации приложения
Чтобы включить вход приложения в Azure AD B2C и вызвать веб-API, зарегистрируйте два приложения в каталоге Azure AD B2C.
Регистрация мобильного приложения позволяет приложению войти в систему с помощью Azure AD B2C. Во время регистрации приложения укажите URI перенаправления. URI перенаправления — это конечная точка, в которую пользователи перенаправляются Azure AD B2C после проверки подлинности с помощью Azure AD B2C. Процесс регистрации приложения создает идентификатор приложения, также известный как идентификатор клиента, который однозначно идентифицирует мобильное приложение (например, идентификатор приложения: 1).
Регистрация веб-API позволяет приложению вызывать защищенный веб-API. Регистрация предоставляет доступ к разрешениям веб-API (областям). Процесс регистрации приложения генерирует идентификатор приложения, который уникально идентифицирует ваш веб-API (например, ID приложения: 2). Предоставьте вашему мобильному приложению (идентификатору приложения: 1) разрешения на области веб-API (идентификатор приложения: 2).
Архитектура регистрации приложений и приложений показаны на следующих схемах:
Вызов веб-API-интерфейса
После завершения проверки подлинности пользователи взаимодействуют с приложением, которое вызывает защищенный веб-API. Этот веб-API использует проверку подлинности посредством маркера носителя. Маркер носителя — это маркер доступа, полученный приложением от Azure AD B2C. Приложение передает маркер в заголовке авторизации HTTPS-запроса.
Authorization: Bearer <access token>
Если область действия токена доступа не соответствует областям веб-API, библиотека аутентификации получает новый токен доступа с правильными областями.
Поток выхода
Процесс выхода из системы включает следующие шаги:
- Пользователи выходят из приложения.
- Приложение очищает объекты сеанса, а библиотека проверки подлинности очищает свой кэш маркеров.
- Приложение перенаправляет пользователя в конечную точку выхода Azure AD B2C, чтобы завершить сеанс Azure AD B2C.
- Пользователи перенаправляются обратно в приложение.
Предпосылки
Компьютер, на котором работает:
- Пакет средств разработки Java (JDK) 8 или более поздней версии
- Apache Maven
- Уровень API Android 16 или более поздней версии
- Android Studio или другой редактор кода
Шаг 1. Настройка потока пользователя
Если пользователи пытаются войти в приложение, оно инициирует запрос проверки подлинности к конечной точке авторизации через поток пользователя. Соответствующий поток пользователя определяет и контролирует взаимодействие с пользователем. Когда пользователи завершают пользовательский поток, Azure AD B2C создает токен и перенаправляет пользователей обратно в ваше приложение.
Создайте поток пользователя или пользовательскую политику, если вы еще не сделали этого. Повторите эти шаги, чтобы создать три отдельных пользовательских потока:
- Объединенный пользовательский поток входа и регистрации, например
susi
. Этот пользовательский поток также поддерживает функцию Забыли пароль?. - Последовательность действий пользователя для редактирования профиля, например
edit_profile
. - Процесс сброса пароля, например
reset_password
.
Azure AD B2C добавляет B2C_1_
в начало имени пользовательского потока. Например, susi
преобразуется в B2C_1_susi
.
Шаг 2. Регистрация мобильных приложений
Создайте регистрацию мобильного приложения и веб-API и укажите области веб-API.
Шаг 2.1. Регистрация веб-приложения API
Чтобы создать регистрацию приложения веб-API (идентификатор приложения: 2), выполните следующие действия.
Войдите на портал Azure.
Убедитесь, что вы используете каталог, содержащий арендатора Azure AD B2C. На панели инструментов портала выберите значок Каталоги и подписки.
В настройках портала на странице Каталоги и подписки найдите свой каталог Azure AD B2C в списке Имя каталога и выберите Переключить.
В портале Azure найдите и выберите Azure AD B2C.
Выберите регистрации приложений и нажмите кнопку "Создать регистрацию".
В поле Имя введите имя приложения (например, my-api1). Оставьте значения по умолчанию для URI перенаправления и поддерживаемых типов учетных записей.
Выберите Зарегистрировать.
Когда регистрация приложения завершится, выберите Обзор.
Запишите значение идентификатора приложения (клиента) для дальнейшего использования при настройке веб-приложения.
Шаг 2.2. Настройка областей веб-API
Выберите созданное приложение my-api1 (идентификатор приложения: 2), чтобы открыть страницу Обзор.
В разделе "Управление" выберите "Предоставить API".
Рядом с полем URI идентификатора приложения щелкните ссылку Задать. Замените значение по умолчанию (уникальный идентификатор) уникальным именем (например, tasks-api), а затем нажмите Сохранить.
Когда веб-приложение запрашивает маркер доступа для веб-API, оно должно добавить этот URI в качестве префикса для каждой области, определяемой для API.
В разделе "Области", определенные этим API, выберите "Добавить область".
Чтобы создать область, определяющую доступ для чтения к API, сделайте следующее.
- В поле Имя области введите tasks.read.
- В качестве отображаемого имени согласия администратора укажите Доступ на чтение к API задач.
- В качестве описания согласия администратора введите Предоставляет доступ на чтение к API задач.
Выберите "Добавить область".
Выберите Добавить область и добавьте область, определяющую доступ для записи к API:
- В поле Имя области введите tasks.write.
- В качестве отображаемого имени согласия администратора укажите Право записи для API задач.
- В качестве описания согласия администратора введите Предоставляет доступ для записи к API задач.
Выберите "Добавить область".
Шаг 2.3. Регистрация мобильного приложения
Чтобы создать регистрацию мобильного приложения, сделайте следующее:
Войдите на портал Azure.
Выберите регистрации приложений и нажмите кнопку "Создать регистрацию".
В разделе "Имя" введите имя приложения (например, android-app1).
В разделе "Поддерживаемые типы учетных записей" выберите "Учетные записи" в любом поставщике удостоверений или каталоге организации (для проверки подлинности пользователей с помощью потоков пользователей).
В разделе URI перенаправления выберите общедоступный клиент или собственный (мобильный и классический), а затем в поле URL-адреса введите один из следующих URI:
- Для примера Kotlin:
msauth://com.azuresamples.msalandroidkotlinapp/1wIqXSqBj7w%2Bh11ZifsnqwgyKrY%3D
- Для примера Java:
msauth://com.azuresamples.msalandroidapp/1wIqXSqBj7w%2Bh11ZifsnqwgyKrY%3D
- Для примера Kotlin:
Выберите Зарегистрировать.
Когда регистрация приложения завершится, выберите Обзор.
Запишите идентификатор приложения (клиента) для последующего использования при настройке мобильного приложения.
Шаг 2.4. Предоставление разрешений мобильного приложения для веб-API
Чтобы предоставить своему приложению (идентификатор приложения: 1) разрешения, выполните следующие действия.
Выберите Регистрация приложений, а затем выберите созданное вами приложение (идентификатор приложения: 1).
В разделе Управление выберите Разрешения API.
В разделе Настроенные разрешения выберите Добавить разрешение.
Выберите вкладку Мои API.
Выберите API (идентификатор приложения: 2), к которому веб-приложению должен быть предоставлен доступ. Например, введите my-api1.
Под Разрешение разверните tasks, а затем выберите ранее определенные области (например, tasks.read и tasks.write).
Выберите Добавить разрешения.
Выберите Предоставить согласие администратора для <имя арендатора>.
Выберите Да.
Выберите Обновить, а затем убедитесь, что Разрешено для... отображается в разделе Состояние для обеих областей.
В списке настроенных разрешений выберите свою область, а затем скопируйте полное имя области.
Шаг 3. Получение примера мобильного приложения Android
Выполните одно из приведенных ниже действий.
Скачайте любой из следующих примеров:
Извлеките пример .zip файла в рабочую папку.
Клонируйте пример мобильного приложения Android из GitHub.
Шаг 4. Настройка примера веб-API
Этот пример получает токен доступа с соответствующими правами доступа, которые мобильное приложение может использовать для веб-API. Чтобы вызвать веб-API из кода, сделайте следующее:
- Используйте существующий веб-API или создайте новый. Дополнительные сведения см. в статье "Включение проверки подлинности в собственном веб-API с помощью Azure AD B2C".
- Измените пример кода для вызова веб-API.
Шаг 5. Настройка примера мобильного приложения
Откройте пример проекта с помощью Android Studio или другого редактора кода, а затем откройте файл /app/src/main/res/raw/auth_config_b2c.json .
Файл конфигурации auth_config_b2c.json содержит сведения о поставщике удостоверений Azure AD B2C. Мобильное приложение использует эти сведения для установления отношения доверия с Azure AD B2C, входа пользователей и выхода, получения маркеров и проверки их.
Обновите следующие свойства параметров приложения:
Ключ | Ценность |
---|---|
client_id | Идентификатор мобильного приложения из шага 2.3. |
redirect_uri | URI перенаправления мобильного приложения из шага 2.3. |
власти | Центр — это URL-адрес, указывающий каталог, из который MSAL может запрашивать маркеры. Используйте следующий формат: https://<your-tenant-name>.b2clogin.com/<your-tenant-name>.onmicrosoft.com/<your-sign-in-sign-up-policy> . Замените <your-tenant-name> имя клиента Azure AD B2C. Затем замените <your-sign-in-sign-up-policy> пользовательские потоки или настраиваемую политику, созданную на шаге 1. |
B2CConfiguration
Откройте класс и обновите следующие члены класса:
Ключ | Ценность |
---|---|
Политики | Список потоков пользователей или пользовательских политик, созданных на шаге 1. |
azureAdB2CHostName | Первая часть имени арендатора в Azure AD B2C tenant name (например, https://contoso.b2clogin.com ). |
Имя арендатора | Полное имя клиента Azure AD B2C (например, contoso.onmicrosoft.com ). |
Области применения | Области веб-API, созданные на шаге 2.4. |
Шаг 6. Запуск и тестирование мобильного приложения
Соберите проект и запустите его.
В левом верхнем углу выберите значок гамбургера (также называемый значком свернутого меню), как показано здесь:
На левой панели выберите режим B2C.
Выберите "Запустить поток пользователя".
Зарегистрируйтесь или войдите с помощью локальной или социальной учетной записи Azure AD B2C.
После успешной проверки подлинности вы увидите отображаемое имя на панели режима B2C .
Дальнейшие шаги
Узнайте, как: