Включение единого входа между приложениями на Android с помощью MSAL
Единый вход позволяет пользователям вводить учетные данные только один раз и автоматически работать с этими учетными данными в приложениях. Он улучшает взаимодействие с пользователями и повышает безопасность, уменьшая количество пользователей паролей, которым необходимо управлять, уменьшая риск усталости паролей и связанных уязвимостей.
Платформа удостоверений Майкрософт и библиотека проверки подлинности Майкрософт (MSAL) помогают включить единый вход в наборе приложений. Включив возможность брокера, вы можете расширить единый вход на всем устройстве.
В этих инструкциях описывается, как в приложении настроить пакет SDK, чтобы ваши клиенты смогли воспользоваться функцией единого входа.
Необходимые компоненты
В этих инструкциях предполагается, что вы знаете, как выполнять перечисленные ниже задачи.
- Подготовка приложения. Дополнительные сведения см. в инструкциях по созданию приложения в руководстве по Android
- Интеграция приложения с MSAL для Android
Методы единого входа
Реализовать единый вход для приложений, использующих MSAL для Android, можно двумя способами:
через приложение брокера;
через системный браузер.
Рекомендуется использовать приложение брокера для таких преимуществ, как единый вход на уровне устройств, управление учетными записями и условный доступ. Однако для этого пользователи должны загружать дополнительные приложения.
Единый вход посредством проверки подлинности через посредника
Мы рекомендуем использовать один из брокеров проверки подлинности Майкрософт для участия в едином входе на уровне устройства и для удовлетворения политик условного доступа организации. Интеграция с брокером обеспечивает следующие преимущества:
- Единый вход устройства
- Условный доступ для:
- Защита приложений Intune
- Регистрация устройства (Workplace Join)
- Управление мобыльными устройствами
- Управление учетными записями на уровне устройств
- через Android AccountManager и параметры учетной записи
- "Рабочая учетная запись" — настраиваемый тип учетной записи
В Android брокер проверки подлинности Майкрософт — это компонент, включенный в microsoft Authenticator, Корпоративный портал Intune и Связь с Windows приложения.
На следующей схеме показана связь между приложением, MSAL и брокерами проверки подлинности Майкрософт.
Установка приложений, в которых размещается брокер
Владелец устройства может в любое время установить приложение с брокером из соответствующего магазина приложений (обычно Google Play Маркет). Однако некоторые интерфейсы API (Resources) защищены политиками условного доступа, для которых требуется, чтобы устройства были:
- зарегистрированы (подключены к рабочему месту) и (или)
- зарегистрированы в системе управления устройствами или
- зарегистрированы в службе "Защита приложений Intune".
Если устройство с указанными выше требованиями еще не установлено приложение брокера, MSAL указывает пользователю установить его, как только приложение пытается получить маркер в интерактивном режиме. Затем приложение приведет пользователя к действиям, чтобы сделать устройство совместимым с требуемой политикой. Если нет требований к политике или пользователь входит в систему с помощью учетной записи Майкрософт, установка приложения Брокера не требуется.
Последствия установки и удаления брокера
Установка брокера
После установки брокера на устройстве все последующие запросы интерактивных маркеров (вызовы к acquireToken()
) обрабатываются брокером, а не локально библиотекой MSAL. Любое состояние единого входа, ранее доступное для MSAL, недоступно для брокера. В результате пользователю необходимо повторно пройти проверку подлинности или выбрать учетную запись из существующего списка учетных записей, известных устройству.
После установки брокера от пользователя не требуется повторный вход. Запрос будет отправлен брокеру только в случае, если пользователю потребуется устранить (разрешить) исключение MsalUiRequiredException
. Исключение MsalUiRequiredException
может возникнуть по ряду причин и должно быть разрешено в интерактивном режиме. Например:
- Пользователь изменил пароль, связанный с учетной записью.
- Учетная запись пользователя больше не соответствует политике условного доступа.
- Пользователь отозвал согласие на связь приложения с его учетной записью.
Несколько брокеров. Если на устройстве установлены несколько брокеров , MSAL будет определять активный брокер самостоятельно для завершения процесса проверки подлинности.
Удаление брокера
Если установлено только одно приложение для размещения брокера, и оно удалено, пользователь должен войти еще раз. При удалении активного брокера удаляется учетная запись, а с устройства удаляются связанные с ним маркеры.
Если microsoft Authenticator, Корпоративный портал Intune или Связь с Windows удалены, пользователю может потребоваться выполнить вход еще раз.
Интеграция с брокером
Создание URI перенаправления для брокера
Совет
Действия, описанные в этой статье, могут немного отличаться на портале, с который вы начинаете работу.
Необходимо зарегистрировать URI перенаправления, совместимый с брокером. URI перенаправления для брокера должен включать имя пакета приложения и представление подписи приложения в кодировке Base64.
Формат URI перенаправления: msauth://<yourpackagename>/<base64urlencodedsignature>
С помощью keytool можно создать хэш подписи в кодировке Base64 с помощью ключей подписи приложения, а затем создать URI перенаправления с помощью этого хэша.
Linux и macOS:
keytool -exportcert -alias androiddebugkey -keystore ~/.android/debug.keystore | openssl sha1 -binary | openssl base64
Windows:
keytool -exportcert -alias androiddebugkey -keystore %HOMEPATH%\.android\debug.keystore | openssl sha1 -binary | openssl base64
После создания хэша подписи с помощью keytool создайте URI перенаправления на портале Azure:
- Войдите в Центр администрирования Microsoft Entra как минимум администратор облачных приложений.
- Если у вас есть доступ к нескольким клиентам, используйте значок "Параметры" в верхнем меню, чтобы переключиться на клиент, содержащий регистрацию приложения из меню каталогов и подписок.
- Перейдите к приложениям> удостоверений>Регистрация приложений.
- Выберите приложение, а затем выберите "Добавить платформу Android" для>проверки подлинности.>
- В появившейся области Настройка приложения Android введите созданный ранее хэш подписи и имя пакета.
- Нажмите кнопку Настроить.
URI перенаправления создается для вас и отображается в поле URI перенаправления в области конфигурации Android.
Дополнительные сведения о подписывании приложений см. в разделе о подписывании приложения руководства пользователя Android Studio.
Настройка MSAL для использования брокера
Чтобы использовать в приложении брокер, необходимо подтвердить, что вы настроили перенаправление брокера. Например, укажите URI перенаправления с включенным брокером и подтвердите, что зарегистрировали его, добавив в файл конфигурации MSAL следующие параметры:
"redirect_uri" : "<yourbrokerredirecturi>",
"broker_redirect_uri_registered": true
Исключения, связанные с брокером
MSAL взаимодействует с брокером двумя способами:
- Служба, привязанная к брокеру
- AccountManager для Android
Сначала MSAL использует привязанную к брокеру службу, так как для ее вызова не требуются разрешения Android. Если привязка к привязанной службе завершается сбоем, MSAL использует API AccountManager Android. MSAL делает это только в том случае, если приложению уже предоставлено разрешение "READ_CONTACTS"
.
При возникновении MsalClientException
с кодом ошибки "BROKER_BIND_FAILURE"
есть два варианта:
- Попросите пользователя отключить функцию энергосбережения для приложения Microsoft Authenticator и Корпоративного портала Intune.
- Попросите пользователя предоставить разрешение
"READ_CONTACTS"
.
Проверка интеграции с брокером
Не всегда сразу становится ясно, что интеграция с брокером работает, но ее можно проверить с помощью следующих действий:
- На устройстве Android выполните запрос с помощью брокера.
- В параметрах на устройстве Android найдите только что созданную учетную запись, соответствующую учетной записи, с помощью которой была выполнена проверка подлинности. Это должна быть рабочая учетная запись.
Если вам потребуется повторить тест, вы можете удалить учетную запись из параметров.
Единый вход через системный браузер
Приложения Android имеют возможность использовать WEBVIEW
системный браузер или пользовательские вкладки Chrome для проверки подлинности. Если приложение не использует проверку подлинности через брокер, для достижения единого входа необходимо использовать системный браузер, а не собственный веб-представление.
Агенты авторизации
Выбор определенной стратегии для агентов авторизации важен и представляет дополнительные приложения функциональных возможностей, которые могут настраиваться. Рекомендуется использовать WEBVIEW. Дополнительные сведения о других значениях конфгурации (см. раздел "Общие сведения о файле конфигурации ANDROID MSAL".
MSAL поддерживает авторизацию на базе WEBVIEW
или системного браузера. На изображении ниже показано, как выглядит использование WEBVIEW
или системного браузера с настраиваемыми вкладками или без них:
Последствия единого входа
Если приложение использует WEBVIEW
стратегию без интеграции с брокерской проверкой подлинности в приложение, пользователи не будут иметь единого входа на устройстве или между собственными приложениями и веб-приложениями.
Приложения можно интегрировать с MSAL для BROWSER
авторизации. В отличие от WEBVIEW, общий доступ к jar-файлу cookie с помощью системного браузера по умолчанию позволяет BROWSER
использовать меньше входов с веб-приложениями или другими собственными приложениями, интегрированными с пользовательскими вкладками.
Если приложение использует MSAL с брокером, например Microsoft Authenticator, Корпоративный портал Intune или Связь с Windows, пользователи могут иметь единый вход в приложения, если у них есть активный вход с одним из приложений.
Примечание.
MSAL с брокером использует WebView и предоставляет единый вход для всех приложений, использующих библиотеку MSAL и участвующих в проверке подлинности брокера. Состояние единого входа от брокера не распространяется на другие приложения, которые не используют MSAL.
WebView
Чтобы использовать в приложении веб-представление, добавьте следующую строку в JSON-конфигурацию приложения, которая передается в MSAL:
"authorization_user_agent" : "WEBVIEW"
При использовании WEBVIEW
в приложении пользователь входит непосредственно в приложение. Маркеры хранятся в песочнице приложения и недоступны вне хранилища cookie приложения. В результате у пользователя нет единого входа в приложениях, если приложения не интегрируются с приложением Microsoft Authenticator, Корпоративный портал Intune или Связь с Windows.
При этом WEBVIEW
позволяет настраивать внешний вид и работу пользовательского интерфейса входа. Дополнительные сведения о том, как настраивать эти параметры, см. в статье о веб-представлениях в Android.
Браузер
Мы рекомендуем использовать WEBVIEW, хотя мы предоставляем возможность использовать браузер и стратегию пользовательских вкладок . Эту стратегию можно явно указать с помощью следующей конфигурации JSON в пользовательском файле конфигурации:
"authorization_user_agent" : "BROWSER"
Используйте этот подход для обеспечения единого входа через браузер устройства. MSAL использует общее хранилище cookie, что позволяет другим собственным приложениям и веб приложениям реализовать на устройстве единый вход с помощью файла cookie хранимого сеанса, устанавливаемого MSAL.
Эвристика выбора браузера
Так как в MSAL нельзя указать точный пакет браузера, который должен использоваться на каждом из множества Android-телефонов, в MSAL реализована эвристика выбора браузера в попытках обеспечить оптимальный процесс единого входа между устройствами.
Сначала MSAL извлекает браузер по умолчанию из диспетчера пакетов и проверяет, находится ли он в проверенном списке надежных браузеров. Если его там нет, MSAL вместо запуска другого браузера (не браузера по умолчанию) из списка надежных переходит к использованию веб-представления. Браузер по умолчанию выбирается независимо от того, поддерживает ли она пользовательские вкладки. Если браузер поддерживает пользовательские вкладки, MSAL запускает пользовательскую вкладку. Пользовательские вкладки имеют внешний вид и чувствуют себя ближе к встроенному приложению WebView
и разрешают базовую настройку пользовательского интерфейса. Дополнительные сведения см. в статье о настраиваемых вкладках в Android.
Если на устройстве нет пакетов браузеров, MSAL использует WebView
в приложении. Если параметр по умолчанию устройства не изменен, для каждого входа необходимо запустить один и тот же браузер, чтобы обеспечить единый вход.
Протестированные браузеры
Браузеры из списка ниже были протестированы на предмет правильного перенаправления на "redirect_uri"
, указанный в файле конфигурации:
Устройство | Встроенный браузер | Chrome | Opera | Microsoft Edge | UC Browser | Firefox |
---|---|---|---|---|---|---|
Nexus 4 (API 17) | передача | передача | Неприменимо | Неприменимо | Неприменимо | Неприменимо |
Samsung S7 (API 25) | Проверка пройдена1 | передача | передача | передача | Сбой | передача |
Vivo (API 26) | передача | передача | передача | передача | передача | Сбой |
Pixel 2 (API 26) | передача | передача | передача | передача | Сбой | передача |
Oppo | передача | неприменимо2 | Неприменимо | Неприменимо | Неприменимо | Неприменимо |
OnePlus (API 25) | передача | передача | передача | передача | Сбой | передача |
Nexus (API 28) | передача | передача | передача | передача | Сбой | передача |
MI | передача | передача | передача | передача | Сбой | передача |
1 Встроенным браузером Samsung является Samsung Internet.
2Браузер по умолчанию не может быть изменен в параметре устройства Oppo.
Следующие шаги
Режим совместной работы для устройств Android позволяет настроить устройство так, чтобы с ним могли легко работать вместе сразу несколько сотрудников.
Дополнительные сведения о приложениях брокера см. на следующих страницах: