Примечание.
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
Microsoft Authentication Library (MSAL) для Android — это библиотека, которая позволяет приложениям Android проходить проверку подлинности пользователей с помощью платформа удостоверений Майкрософт (ранее Azure Active Directory) и доступа к защищенным веб-API с помощью протоколов OAuth2 и OpenID Connect. MSAL Android позволяет разработчикам получать маркеры безопасности из платформа удостоверений Майкрософт для проверки подлинности пользователей и доступа к безопасным веб-API для приложений на основе Android.
MSAL Android поддерживает несколько сценариев проверки подлинности, таких как единый вход, условный доступ и проверка подлинности с помощью брокера. Это позволяет легко поддерживать несколько типов удостоверений, в том числе Microsoft Entra ID (рабочие и учебные учетные записи), учетные записи Microsoft (Outlook.com, hotmail.com и ряд других) или Azure AD B2C (социальные и локальные учетные записи).
В этом руководстве описаны общие функции, связанные с MSAL Android. Если вы ищете дополнительную помощь по началу работы с Microsoft Entra ID, учетными записями Microsoft или Azure AD B2C, ознакомьтесь с документацией по платформе удостоверений Майкрософт. Если вы ищете дополнительные сведения об API Microsoft Graph, ознакомьтесь с документацией по Microsoft Graph.
Поддержка встроенной аутентификации в MSAL
MSAL Android также позволяет реализовать собственный интерфейс проверки подлинности с комплексными настраиваемыми потоками в мобильных приложениях. Благодаря встроенной аутентификации пользователи проходят удобный встроенный сценарий регистрации и входа, ориентированный прежде всего на мобильные устройства, не выходя из приложения. Функция собственной проверки подлинности доступна только для мобильных приложений на внешнем идентификаторе для клиентов.
Переход с библиотеки аутентификации Azure Active Directory (ADAL)
Библиотека аутентификации Azure Active Directory (ADAL) для Android объявлена устаревшей с июня 2023 года. Если вы или ваша организация используете библиотеку проверки подлинности Azure Active Directory (ADAL) для Android, необходимо перейти на MSAL Android, чтобы избежать риска безопасности вашего приложения. Microsoft Authentication Library (MSAL) для Android — это поддерживаемая библиотека, которую можно использовать для проверки подлинности и получения маркеров.
Начало работы с MSAL Android
Чтобы использовать MSAL Android в приложении, необходимо:
- Зарегистрируйте приложение с помощью Microsoft Entra ID.
- Узнайте о типах клиентских приложений: общедоступных клиентов и конфиденциальных клиентов.
Так как MSAL Android поддерживает как делегированные браузером, так и собственные возможности проверки подлинности, выполните действия, описанные в следующих руководствах на основе вашего сценария.
Сведения о сценариях аутентификации, делегируемой браузеру, см. в кратком руководстве: Вход пользователей и вызов Microsoft Graph из приложения Android.
Сведения о сценариях собственной аутентификации см. в руководстве по примеру Внешняя идентификация Microsoft Entra Руководство: подготовка приложения Android для собственной аутентификации.
Требования
- Минимальная версия SDK: 16+
- Целевая версия SDK 33+
Шаг 1. Объявление зависимости от MSAL
Добавьте в приложение build.gradle:
dependencies {
implementation 'com.microsoft.identity.client:msal:4.9.+'
}
Кроме того, добавьте следующие строки в раздел репозиториев в скрипте gradle:
maven {
url 'https://pkgs.dev.azure.com/MicrosoftDeviceSDK/DuoSDK-Public/_packaging/Duo-SDK-Feed/maven/v1'
}
Шаг 2. Создание файла конфигурации MSAL
Аутентификация, делегированная браузеру:
Создайте файл конфигурации как необработанный ресурс в проекте. Ссылайтесь на него, используя сгенерированный идентификатор ресурса при создании экземпляра PublicClientApplication. Если вы регистрируете приложение в Центр администрирования Microsoft Entra впервые, вы также получите подробный файл конфигурации MSAL Android.
{
"client_id" : "<YOUR_CLIENT_ID>",
"redirect_uri" : "msauth://<YOUR_PACKAGE_NAME>/<YOUR_BASE64_URL_ENCODED_PACKAGE_SIGNATURE>",
"broker_redirect_uri_registered": true,
}
В элементе redirect_uri, <YOUR_PACKAGE_NAME> обозначает имя пакета, возвращаемое методом context.getPackageName(). Это имя пакета совпадает с application_id указанным в build.gradle файле.
Приведенные выше значения являются минимальной требуемой конфигурацией. MSAL использует значения по умолчанию, которые поставляются с библиотекой для всех остальных параметров. Ознакомьтесь с документацией по файлу конфигурации MSAL Android , чтобы понять значения по умолчанию библиотеки.
Собственная аутентификация:
- Щелкните правой кнопкой мыши res и выберите новый > каталог. Введите "raw" в качестве имени нового каталога и нажмите кнопку "ОК".
- В этой новой папке (приложение > src > main > res > raw), создайте новый JSON-файл с именем auth_config_native_auth.json и вставьте следующий шаблон MSAL Configuration:
{
"client_id": "Enter_the_Application_Id_Here",
"authorities": [
{
"type": "CIAM",
"authority_url": "https://Enter_the_Tenant_Subdomain_Here.ciamlogin.com/Enter_the_Tenant_Subdomain_Here.onmicrosoft.com/"
}
],
"challenge_types": ["oob"],
"logging": {
"pii_enabled": false,
"log_level": "INFO",
"logcat_enabled": true
}
}
Шаг 3. Настроить AndroidManifest.xml для аутентификации, делегированной браузеру
- Запрос следующих разрешений с помощью манифеста Android
<uses-permission android:name="android.permission.INTERNET"/>
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"/>
- Настройте фильтр намерений в манифесте Android, используя свой URI перенаправления
Отсутствие фильтра intent, соответствующего URI перенаправления, указанному в конфигурации, приведет к сбою интерактивного запроса токена.
<!--Intent filter to capture authorization code response from the default browser on the device calling back to our app after interactive sign in -->
<activity
android:name="com.microsoft.identity.client.BrowserTabActivity">
<intent-filter>
<action android:name="android.intent.action.VIEW" />
<category android:name="android.intent.category.DEFAULT" />
<category android:name="android.intent.category.BROWSABLE" />
<data
android:scheme="msauth"
android:host="<YOUR_PACKAGE_NAME>"
android:path="/<YOUR_BASE64_ENCODED_PACKAGE_SIGNATURE>" />
</intent-filter>
</activity>
Дополнительные сведения о распространенных проблемах с URI перенаправления см. в разделе «Часто задаваемые вопросы о MSAL Android».
ProGuard
MSAL использует во время выполнения метаданные отражения и сведения об обобщённых типах, хранящиеся в файлах .class, для поддержки различных функций, связанных с сохранением данных и сериализацией. Поддержка библиотеки для минификации и обфускации ограничена. Конфигурация по умолчанию поставляется с этой библиотекой; Отправьте файл проблемы, если вы найдете какие-либо проблемы.
Recommendation
MSAL — это библиотека безопасности. Он управляет тем, как пользователи входят в систему и получают доступ к службам. Мы рекомендуем всегда использовать последнюю версию нашей библиотеки в приложении, когда вы можете. Мы используем семантику управления версиями , чтобы управлять риском обновления приложения. Например, если всегда скачивать последнюю минорную версию (например, x.y.x), это гарантирует, что вы получите последние улучшения безопасности и функций, а поверхность API при этом не изменится. На вкладке "Выпуски" GitHub всегда отображаются заметки о последней версии и выпуске.