Примечание.
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
Единый вход (SSO) позволяет пользователям вводить свои учетные данные только один раз и автоматически работать в разных приложениях. Это улучшает пользовательский опыт и повышает безопасность, сокращая количество паролей, которыми пользователям нужно управлять, а также снижая риск усталости от паролей и связанных с ней уязвимостей.
платформа удостоверений Майкрософт и библиотека проверки подлинности Майкрософт (MSAL) помогают обеспечить единый вход во всем наборе ваших приложений. Включив функцию брокера, вы можете распространить единый вход на всё устройство.
В этом руководстве вы узнаете, как настроить пакеты SDK, используемые приложением для предоставления единого входа клиентам.
Prerequisites
В этом руководстве предполагается, что вы знаете, как:
- Подготовьте приложение. Дополнительные сведения см. в инструкциях по созданию приложения в руководстве по Android
- Интеграция приложения с MSAL для Android
Методы SSO
Существует два способа реализации единого входа (SSO) для приложений, использующих MSAL для Android:
Через приложение брокера
Через системный браузер
Рекомендуется использовать приложение брокера для таких преимуществ, как единый вход на уровне устройств, управление учетными записями и условный доступ. Однако пользователям требуется скачать дополнительные приложения.
Единый вход через посредническую аутентификацию
Мы рекомендуем использовать один из брокеров проверки подлинности Microsoft для участия в едином входе на уровне устройства и для удовлетворения политик условного доступа организации. Интеграция с брокером обеспечивает следующие преимущества:
- Единый вход для устройств
- Условный доступ для:
- Защита приложений Intune
- Регистрация устройства (присоединение к рабочему месту)
- Управление мобильными устройствами
- Управление учетными записями на уровне устройств
- через Android AccountManager и настройки учетной записи
- "Рабочая учетная запись" — тип пользовательской учетной записи
В Android брокер проверки подлинности Microsoft — это компонент, включенный в Microsoft Authenticator, Intune Корпоративный портал и Link to Windows приложения.
На следующей схеме показана связь между приложением, MSAL и брокерами проверки подлинности Microsoft.
Установка приложений, на которых размещен брокер
Приложения для размещения брокера можно установить владельцем устройства из своего магазина приложений (обычно Google Play Store) в любое время. Однако некоторые API (ресурсы) защищены политиками условного доступа, которые требуют, чтобы устройства были:
- Зарегистрирован (подключен к рабочему месту) и/или
- Зарегистрировано в системе управления устройствами или
- Зарегистрировано в Службе защиты приложений Intune
Если на устройстве, соответствующем указанным выше требованиям, ещё не установлено брокерское приложение, MSAL предлагает пользователю установить его, как только приложение пытается интерактивно получить токен. Затем приложение приведет пользователя к действиям, чтобы сделать устройство совместимым с требуемой политикой. Если нет требований к политике или пользователь входит в систему с помощью учетная запись Майкрософт, установка приложения Брокера не требуется.
Последствия установки и удаления брокера
Когда брокер установлен
Когда брокер установлен на устройстве, все последующие интерактивные запросы токенов (вызовы acquireToken()) обрабатываются брокером, а не локально библиотекой MSAL. Любое состояние единого входа (SSO), которое ранее было доступно 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
Виндоус:
keytool -exportcert -alias androiddebugkey -keystore %HOMEPATH%\.android\debug.keystore | openssl sha1 -binary | openssl base64
После создания хэша подписи с помощью keytool используйте портал Azure для создания URI перенаправления:
- Войдите в Центр администрирования Microsoft Entra с учетной записью не ниже администратора облачных приложений.
- Если у вас есть доступ к нескольким клиентам, используйте значок"Параметры" в верхнем меню, чтобы переключиться на клиент, содержащий регистрацию приложения из
меню каталогов и подписок. - Перейдите к Entra ID>Регистрация приложений.
- Выберите приложение, а затем выберите "Добавить платформу Android" для>проверки подлинности>.
- На открывшейся панели Настройка приложения Android введите Хэш подписи, который вы создали ранее, и Имя пакета.
- Нажмите кнопку Настроить.
URI перенаправления создается автоматически и отображается в поле URI перенаправления на панели конфигурации Android.
Дополнительные сведения о подписании приложения см. в руководстве пользователя Android Studio.
Настройка MSAL для использования брокера
Чтобы использовать брокер в приложении, необходимо подтвердить, что вы настроили перенаправление брокера. Например, включите URI перенаправления с поддержкой брокера и укажите, что вы зарегистрировали его, включив следующие параметры в файл конфигурации MSAL:
"redirect_uri" : "<yourbrokerredirecturi>",
"broker_redirect_uri_registered": true
Исключения, связанные с брокером
MSAL взаимодействует с брокером двумя способами:
- Служба, связанная с брокером
- Android AccountManager
MSAL сначала использует службу, привязанную к брокеру, так как вызов этой службы не требует каких-либо разрешений Android. Если не удаётся подключиться к связанной службе, MSAL использует API Android AccountManager. MSAL делает это только в том случае, если вашему приложению уже предоставлено разрешение "READ_CONTACTS".
Если вы получаете MsalClientException с кодом ошибки "BROKER_BIND_FAILURE", возможны два варианта:
- Попросите пользователя отключить оптимизацию питания для приложения Microsoft Authenticator и Корпоративный портал Intune.
- Попросите пользователя предоставить
"READ_CONTACTS"разрешение
Проверка интеграции брокера
Возможно, не сразу ясно, что интеграция брокера работает, но для проверки можно выполнить следующие действия.
- На устройстве Android выполните запрос с помощью брокера.
- В параметрах на устройстве Android найдите только что созданную учетную запись, соответствующую учетной записи, прошедшей проверку подлинности. Учетная запись должна иметь тип Рабочей учетной записи.
Вы можете удалить учетную запись из параметров, если вы хотите повторить тест.
Единый вход через системный браузер
Приложения Android могут использовать WEBVIEW, системный браузер или пользовательские вкладки Chrome для аутентификации пользователей. Если приложение не использует аутентификацию через брокер, то для обеспечения единого входа необходимо использовать системный браузер, а не встроенное веб-представление.
Агенты авторизации
Выбор конкретной стратегии для агентов авторизации имеет важное значение и предоставляет дополнительную функциональность, которую приложения могут настраивать. Рекомендуется использовать WEBVIEW. Чтобы узнать больше о других значениях конфигурации (см. раздел Общие сведения о файле конфигурации Android MSAL.
MSAL поддерживает авторизацию с помощью WEBVIEW или системного браузера. На изображении ниже показано, как это выглядит при использовании WEBVIEW, а также в системном браузере с CustomTabs или без них:
Особенности SSO
Если приложение использует стратегию WEBVIEW без интеграции с брокерской аутентификацией в своё приложение, пользователи не смогут использовать единый вход на всём устройстве или между нативными и веб-приложениями.
Приложения можно интегрировать с MSAL, чтобы использовать BROWSER для авторизации. В отличие от WEBVIEW, BROWSER используют общее хранилище cookie с системным браузером по умолчанию, что позволяет реже выполнять вход в веб-приложениях и других нативных приложениях, интегрированных с пользовательскими вкладками.
Если приложение использует MSAL с брокером, таким как Microsoft Authenticator, Intune Корпоративный портал или Link to Windows, пользователи могут использовать единый вход во всех приложениях, если они уже выполнили вход в одно из этих приложений.
Note
MSAL с брокером использует WebView и предоставляет единый вход для всех приложений, использующих библиотеку MSAL и участвующих в проверке подлинности брокера. Состояние единого входа от брокера не распространяется на другие приложения, которые не используют MSAL.
Веб-просмотр
Чтобы использовать WebView в приложении, введите следующую строку в JSON конфигурации приложения, передаваемой в MSAL:
"authorization_user_agent" : "WEBVIEW"
При использовании WEBVIEW в приложении пользователь выполняет вход непосредственно в приложение. Токены хранятся в песочнице приложения и недоступны за пределами хранилища файлов cookie приложения. В результате пользователь не сможет использовать единый вход во всех приложениях, если эти приложения не интегрированы с приложением Microsoft Authenticator, Intune Корпоративный портал или «Связь с Windows».
Однако WEBVIEW предоставляет возможность настраивать внешний вид и поведение интерфейса входа в систему. Дополнительные сведения о настройке см. в android WebViews .
Browser
Мы рекомендуем использовать WEBVIEW, хотя мы предоставляем возможность использовать браузер и стратегию пользовательских вкладок . Эту стратегию можно явно указать с помощью следующей конфигурации JSON в пользовательском файле конфигурации:
"authorization_user_agent" : "BROWSER"
Используйте этот подход, чтобы обеспечить возможность единого входа через браузер устройства. MSAL использует общее хранилище cookie, что позволяет другим нативным приложениям или веб-приложениям обеспечивать единый вход на устройстве, используя сохраненный сеансовый cookie, установленный MSAL.
Эвристика выбора браузера
Поскольку MSAL не может указать, какой именно пакет браузера следует использовать на каждом из множества телефонов Android, MSAL применяет эвристику выбора браузера, чтобы обеспечить наилучшее SSO на разных устройствах.
MSAL в основном извлекает браузер по умолчанию из диспетчера пакетов и проверяет, находится ли он в проверенном списке безопасных браузеров. Если нет, MSAL использует WebView в качестве резервного варианта вместо запуска другого браузера из списка разрешённых, отличного от браузера по умолчанию. Браузер по умолчанию выбирается независимо от того, поддерживает ли она пользовательские вкладки. Если браузер поддерживает пользовательские вкладки, MSAL запускает пользовательскую вкладку. Пользовательские вкладки имеют внешний вид и чувствуют себя ближе к встроенному приложению WebView и разрешают базовую настройку пользовательского интерфейса. Дополнительные сведения см. в разделе "Пользовательские вкладки" в Android .
Если на устройстве нет пакетов браузера, MSAL использует встроенный пакет WebView. Если браузер по умолчанию на устройстве не изменён, для каждого входа следует использовать один и тот же браузер, чтобы обеспечить работу функции единого входа (SSO).
Тестируемые браузеры
Следующие браузеры были протестированы, чтобы проверить, корректно ли они перенаправляются на указанный в файле конфигурации "redirect_uri":
| Устройство | Встроенный браузер | Хром | Опера | Microsoft Edge | Браузер UC | Firefox |
|---|---|---|---|---|---|---|
| Nexus 4 (API 17) | Пройдено | Пройдено | неприменимо | неприменимо | неприменимо | неприменимо |
| Samsung S7 (API 25) | pass1 | Пройдено | Пройдено | Пройдено | сбой | Пройдено |
| Vivo (API 26) | Пройдено | Пройдено | Пройдено | Пройдено | Пройдено | сбой |
| Пиксель 2 (API 26) | Пройдено | Пройдено | Пройдено | Пройдено | сбой | Пройдено |
| Oppo | Пройдено | неприменимо2 | неприменимо | неприменимо | неприменимо | неприменимо |
| OnePlus (API 25) | Пройдено | Пройдено | Пройдено | Пройдено | сбой | Пройдено |
| Nexus (API 28) | Пройдено | Пройдено | Пройдено | Пройдено | сбой | Пройдено |
| MI | Пройдено | Пройдено | Пройдено | Пройдено | сбой | Пройдено |
1Встроенный браузер Samsung — Samsung Internet.
2Браузер по умолчанию не может быть изменен в параметре устройства Oppo.
Дальнейшие действия
Режим общего устройства для устройств Android позволяет настроить устройство Android, чтобы его можно было легко предоставить нескольким сотрудникам.
Дополнительные сведения о брокерских приложениях см.: