Поделиться через


Настройка проверки подлинности в примере приложения Android с помощью Azure AD B2C

Это важно

Начиная с 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 — это библиотека, предоставляемая корпорацией Майкрософт, которая упрощает добавление поддержки проверки подлинности и авторизации в мобильные приложения.

Процесс входа включает следующие шаги:

  1. Пользователи открывают приложение и выбирают вход.
  2. Приложение открывает системный браузер мобильного устройства и запускает запрос проверки подлинности в Azure AD B2C.
  3. Пользователи зарегистрируются или войдут в систему, сбросят пароль или войдут с помощью социальной учетной записи.
  4. После успешного входа пользователей Azure AD B2C возвращает код авторизации приложению.
  5. Приложение выполняет следующие действия:
    1. Он меняет код авторизации на токен идентификатора, токен доступа и токен обновления.
    2. Он считывает информацию токена идентификатора.
    3. Он сохраняет маркеры в кэше в памяти для последующего использования.

Обзор регистрации приложения

Чтобы включить вход приложения в 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. Этот веб-API использует проверку подлинности посредством маркера носителя. Маркер носителя — это маркер доступа, полученный приложением от Azure AD B2C. Приложение передает маркер в заголовке авторизации HTTPS-запроса.

Authorization: Bearer <access token>

Если область действия токена доступа не соответствует областям веб-API, библиотека аутентификации получает новый токен доступа с правильными областями.

Поток выхода

Процесс выхода из системы включает следующие шаги:

  1. Пользователи выходят из приложения.
  2. Приложение очищает объекты сеанса, а библиотека проверки подлинности очищает свой кэш маркеров.
  3. Приложение перенаправляет пользователя в конечную точку выхода Azure AD B2C, чтобы завершить сеанс Azure AD B2C.
  4. Пользователи перенаправляются обратно в приложение.

Предпосылки

Компьютер, на котором работает:

Шаг 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), выполните следующие действия.

  1. Войдите на портал Azure.

  2. Убедитесь, что вы используете каталог, содержащий арендатора Azure AD B2C. На панели инструментов портала выберите значок Каталоги и подписки.

  3. В настройках портала на странице Каталоги и подписки найдите свой каталог Azure AD B2C в списке Имя каталога и выберите Переключить.

  4. В портале Azure найдите и выберите Azure AD B2C.

  5. Выберите регистрации приложений и нажмите кнопку "Создать регистрацию".

  6. В поле Имя введите имя приложения (например, my-api1). Оставьте значения по умолчанию для URI перенаправления и поддерживаемых типов учетных записей.

  7. Выберите Зарегистрировать.

  8. Когда регистрация приложения завершится, выберите Обзор.

  9. Запишите значение идентификатора приложения (клиента) для дальнейшего использования при настройке веб-приложения.

    Снимок экрана, демонстрирующий, как получить идентификатор приложения веб-API

Шаг 2.2. Настройка областей веб-API

  1. Выберите созданное приложение my-api1 (идентификатор приложения: 2), чтобы открыть страницу Обзор.

  2. В разделе "Управление" выберите "Предоставить API".

  3. Рядом с полем URI идентификатора приложения щелкните ссылку Задать. Замените значение по умолчанию (уникальный идентификатор) уникальным именем (например, tasks-api), а затем нажмите Сохранить.

    Когда веб-приложение запрашивает маркер доступа для веб-API, оно должно добавить этот URI в качестве префикса для каждой области, определяемой для API.

  4. В разделе "Области", определенные этим API, выберите "Добавить область".

  5. Чтобы создать область, определяющую доступ для чтения к API, сделайте следующее.

    1. В поле Имя области введите tasks.read.
    2. В качестве отображаемого имени согласия администратора укажите Доступ на чтение к API задач.
    3. В качестве описания согласия администратора введите Предоставляет доступ на чтение к API задач.
  6. Выберите "Добавить область".

  7. Выберите Добавить область и добавьте область, определяющую доступ для записи к API:

    1. В поле Имя области введите tasks.write.
    2. В качестве отображаемого имени согласия администратора укажите Право записи для API задач.
    3. В качестве описания согласия администратора введите Предоставляет доступ для записи к API задач.
  8. Выберите "Добавить область".

Шаг 2.3. Регистрация мобильного приложения

Чтобы создать регистрацию мобильного приложения, сделайте следующее:

  1. Войдите на портал Azure.

  2. Выберите регистрации приложений и нажмите кнопку "Создать регистрацию".

  3. В разделе "Имя" введите имя приложения (например, android-app1).

  4. В разделе "Поддерживаемые типы учетных записей" выберите "Учетные записи" в любом поставщике удостоверений или каталоге организации (для проверки подлинности пользователей с помощью потоков пользователей).

  5. В разделе URI перенаправления выберите общедоступный клиент или собственный (мобильный и классический), а затем в поле URL-адреса введите один из следующих URI:

    • Для примера Kotlin: msauth://com.azuresamples.msalandroidkotlinapp/1wIqXSqBj7w%2Bh11ZifsnqwgyKrY%3D
    • Для примера Java: msauth://com.azuresamples.msalandroidapp/1wIqXSqBj7w%2Bh11ZifsnqwgyKrY%3D
  6. Выберите Зарегистрировать.

  7. Когда регистрация приложения завершится, выберите Обзор.

  8. Запишите идентификатор приложения (клиента) для последующего использования при настройке мобильного приложения.

    Снимок экрана: идентификатор приложения Android

Шаг 2.4. Предоставление разрешений мобильного приложения для веб-API

Чтобы предоставить своему приложению (идентификатор приложения: 1) разрешения, выполните следующие действия.

  1. Выберите Регистрация приложений, а затем выберите созданное вами приложение (идентификатор приложения: 1).

  2. В разделе Управление выберите Разрешения API.

  3. В разделе Настроенные разрешения выберите Добавить разрешение.

  4. Выберите вкладку Мои API.

  5. Выберите API (идентификатор приложения: 2), к которому веб-приложению должен быть предоставлен доступ. Например, введите my-api1.

  6. Под Разрешение разверните tasks, а затем выберите ранее определенные области (например, tasks.read и tasks.write).

  7. Выберите Добавить разрешения.

  8. Выберите Предоставить согласие администратора для <имя арендатора>.

  9. Выберите Да.

  10. Выберите Обновить, а затем убедитесь, что Разрешено для... отображается в разделе Состояние для обеих областей.

  11. В списке настроенных разрешений выберите свою область, а затем скопируйте полное имя области.

    Снимок экрана настроенной панели разрешений, показывающий, что разрешения на чтение предоставлены

Шаг 3. Получение примера мобильного приложения Android

Выполните одно из приведенных ниже действий.

  • Скачайте любой из следующих примеров:

    Извлеките пример .zip файла в рабочую папку.

  • Клонируйте пример мобильного приложения Android из GitHub.

    git clone https://github.com/Azure-Samples/ms-identity-android-kotlin
    

Шаг 4. Настройка примера веб-API

Этот пример получает токен доступа с соответствующими правами доступа, которые мобильное приложение может использовать для веб-API. Чтобы вызвать веб-API из кода, сделайте следующее:

  1. Используйте существующий веб-API или создайте новый. Дополнительные сведения см. в статье "Включение проверки подлинности в собственном веб-API с помощью Azure AD B2C".
  2. Измените пример кода для вызова веб-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. Запуск и тестирование мобильного приложения

  1. Соберите проект и запустите его.

  2. В левом верхнем углу выберите значок гамбургера (также называемый значком свернутого меню), как показано здесь:

    Снимок экрана: выделение гамбургера или свернутого меню, значок.

  3. На левой панели выберите режим B2C.

    Снимок экрана: команда

  4. Выберите "Запустить поток пользователя".

    Снимок экрана: кнопка

  5. Зарегистрируйтесь или войдите с помощью локальной или социальной учетной записи Azure AD B2C.

  6. После успешной проверки подлинности вы увидите отображаемое имя на панели режима B2C .

    Снимок экрана: успешная проверка подлинности с отображаемым пользователем и политикой входа.

Дальнейшие шаги

Узнайте, как: