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


Включение единого входа для приложений на Android с помощью MSAL

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

Платформа Microsoft Identity и библиотека проверки подлинности Microsoft (MSAL) помогают включить SSO в вашем пакете приложений. Включив функциональность брокера, вы можете расширить функции единого входа на всем устройстве.

В этих инструкциях описывается, как в приложении настроить пакет SDK, чтобы ваши клиенты смогли воспользоваться функцией единого входа.

Предварительные условия

В этих инструкциях предполагается, что вы знаете, как выполнять перечисленные ниже задачи.

  • Настройте ваше приложение. Дополнительные сведения см. в инструкциях по созданию приложения в руководстве по Android
  • Интеграция приложения с MSAL для Android

Методы единого входа

Реализовать единый вход для приложений, использующих MSAL для Android, можно двумя способами:

  • через приложение брокера;

  • через системный браузер.

    Рекомендуется использовать приложение брокера для таких преимуществ, как единый вход на уровне устройств, управление учетными записями и условный доступ. Однако для этого пользователи должны загружать дополнительные приложения.

Единый вход посредством проверки подлинности через посредника

Мы рекомендуем использовать один из брокеров проверки подлинности Майкрософт для участия в едином входе на уровне устройства и для удовлетворения политик условного доступа организации. Интеграция с брокером обеспечивает следующие преимущества:

  • Единая аутентификация устройства
  • Условный доступ для:
    • Защита приложений Intune
    • Регистрация устройства (Присоединение к рабочему месту)
    • Управление мобильными устройствами
  • Управление учетными записями на уровне устройств
    • через Android AccountManager и параметры учетной записи
    • "Рабочая учетная запись" — настраиваемый тип учетной записи

На Android брокер проверки подлинности Microsoft — это компонент, включенный в Microsoft Authenticator, Intune Company Portal и Link to Windows приложение.

На следующей схеме показана связь между приложением, MSAL и брокерами проверки подлинности Майкрософт.

Схема, на которой показано, как приложение связано с MSAL, приложениями брокера и диспетчером учетных записей Android.

Установка приложений, которые хостят брокера

Владелец устройства может в любое время установить приложение с брокером из соответствующего магазина приложений (обычно Google Play Маркет). Однако некоторые интерфейсы API (ресурсы) защищены политиками условного доступа, которые требуют, чтобы устройства были:

  • зарегистрированы (подключены к рабочему месту) и (или)
  • зарегистрированы в системе управления устройствами или
  • зарегистрированы в "Защите приложений 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:

  1. Войдите в Центр администрирования Microsoft Entra как минимум как Администратор облачных приложений.
  2. Если у вас есть доступ к нескольким клиентам, используйте значок"Параметры" в верхнем меню, чтобы переключиться на клиент, содержащий регистрацию приложения из меню каталогов и подписок.
  3. Перейдите в Идентификация>Приложения>Регистрация приложений.
  4. Выберите приложение, а затем выберите Проверка подлинности>Добавить платформу>Android.
  5. В появившейся области Настройка приложения Android введите созданный ранее хэш подписи и имя пакета.
  6. Нажмите кнопку Настроить.

URI перенаправления создается для вас и отображается в поле конфигурации Android области URI перенаправления.

Дополнительные сведения о подписывании приложений см. в разделе о подписывании приложения руководства пользователя 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".

Проверка интеграции с брокером

Не всегда сразу становится ясно, что интеграция с брокером работает, но ее можно проверить с помощью следующих действий:

  1. На устройстве Android выполните запрос с помощью брокера.
  2. В параметрах на устройстве Android найдите только что созданную учетную запись, соответствующую учетной записи, с помощью которой была выполнена проверка подлинности. Это должна быть рабочая учетная запись.

Если вам потребуется повторить тест, вы можете удалить учетную запись из параметров.

Единый вход через системный браузер

Приложения Android имеют возможность использовать WEBVIEW, системный браузер или настраиваемые вкладки Chrome для проверки подлинности. Если приложение не использует брокерскую аутентификацию, для достижения SSO необходимо использовать системный браузер вместо нативного веб-представления.

Агенты авторизации

Выбор определенной стратегии для агентов авторизации важен и представляет дополнительную функциональность, которую приложения могут настраивать. Рекомендуется использовать WEBVIEW. Чтобы узнать больше о других значениях конфигурации, см. в статье Общие сведения о файле конфигурации Android MSAL.

MSAL поддерживает авторизацию на базе WEBVIEW или системного браузера. На изображении ниже показано, как выглядит использование WEBVIEW или системного браузера с настраиваемыми вкладками или без них:

Примеры входа в MSAL

Последствия единого входа (Single Sign-On)

Если приложение использует WEBVIEW стратегию без интеграции с брокерской аутентификацией, пользователи не смогут осуществить единую аутентификацию на устройстве или между нативными и веб-приложениями.

Приложения можно интегрировать с MSAL, чтобы использовать BROWSER для авторизации. В отличие от WEBVIEW, BROWSER используют общую область cookie с браузером по умолчанию, что приводит к меньшему количеству входов в учетную запись в веб-приложениях и других встроенных приложениях с пользовательскими вкладками.

Если приложение использует 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 использует общее хранилище куки, что позволяет другим нативным приложениям и веб-приложениям обеспечить единый вход на устройстве с помощью куки постоянного сеанса, устанавливаемого 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 позволяет настроить устройство так, чтобы с ним могли легко работать вместе сразу несколько сотрудников.

Дополнительные сведения о приложениях брокера см. на следующих страницах: