Перенос приложений iOS, использующих Microsoft Authenticator, из ADAL.NET в MSAL.NET
Вы уже использовали библиотеку проверки подлинности Azure Active Directory для .NET (ADAL.NET) и брокера iOS. Теперь пора перейти на библиотеку проверки подлинности Майкрософт для .NET (MSAL.NET), которая поддерживает брокер в iOS начиная с выпуска 4.3 и далее.
С чего начать? Эта статья поможет вам перенести приложение Xamarin на платформе iOS из ADAL в MSAL.
Необходимые компоненты
В этой статье предполагается, что у вас уже есть приложение Xamarin, интегрированное с брокером iOS. В противном случае перейдите непосредственно к MSAL.NET и начните реализацию брокера. Сведения о том, как вызвать брокер iOS в MSAL.NET для нового приложения, см. в этой документации.
Общие сведения
Что такое брокеры?
Брокеры — это приложения, предоставляемые корпорацией Майкрософт в Android и iOS. (См. приложение Microsoft Authenticator в iOS и Android, а также приложение "Корпоративный портал Intune" на Android.)
Они включают:
- Единый вход.
- Идентификацию устройства, необходимую для некоторых политик условного доступа. Дополнительные сведения см. в разделе Управление устройствами.
- Проверку идентификации приложения, которая также необходима в некоторых корпоративных сценариях. Дополнительные сведения см. в статье Управление мобильными приложениями Intune (MAM).
Перенос данных из ADAL в MSAL
Шаг 1. Включение брокера
Текущий код ADAL: | Аналог в MSAL: |
В ADAL.NET поддержка брокера была включена для каждого контекста проверки подлинности. По умолчанию он отключен. Вам пришлось установить флажок
Кроме того, в зависящем от платформы коде этого примера, в модуле отрисовки страниц для iOS установите флажок
Затем включите параметры в вызов токена получения:
|
В MSAL.NET поддержка брокера включается для каждого приложения PublicClientApplication. По умолчанию он отключен. Чтобы включить его, используйте параметр
В вызове запроса маркера:
|
Шаг 2. Установка UIViewController()
В ADAL.NET вы ознакомились с UIViewController в качестве части PlatformParameters
. (См. пример на шаге 1.) В MSAL.NET для предоставления разработчикам большей гибкости используется окно объекта, но оно не является обязательным для обычного использования iOS. Чтобы использовать брокер, задайте окно объекта для отправки и получения ответов от брокера.
Текущий код ADAL: | Аналог в MSAL: |
UiViewController передается в
|
В MSAL.NET можно настроить окно объекта для iOS:
Пример. В
В
В вызове запроса маркера:
|
Шаг 3. Обновление AppDelegate для обработки обратного вызова
И ADAL, и MSAL вызывают брокер, а брокер, в свою очередь, обращается к приложению через метод OpenUrl
класса AppDelegate
. Дополнительные сведения см. в этой документации.
В данном случае изменений между ADAL.NET и MSAL.NET не существует.
Шаг 4. Регистрация схемы URL-адреса
ADAL.NET и MSAL.NET используют URL-адреса для вызова брокера и возврата ответа брокера обратно в приложение. Зарегистрируйте схему URL-адресов в файле приложения Info.plist
следующим образом.
Текущий код ADAL: | Аналог в MSAL: |
Схема URL-адресов уникальна для вашего приложения. |
Токен Имя
в качестве префикса, за которым следует Пример:
Примечание. Эта схема URL-адресов становится частью URI перенаправления, который является уникальным идентификатором приложения при получении ответа брокера. |
Шаг 5. Добавление идентификатора брокера в раздел LSApplicationQueriesSchemes
Как ADAL.NET, так и MSAL.NET используют -canOpenURL:
чтобы проверить, установлен ли брокер на устройстве. Добавьте правильный идентификатор для брокера iOS в раздел LSApplicationQueriesSchemes файла info.plist следующим образом.
Текущий код ADAL: | Аналог в MSAL: |
Использует
|
Использует
|
Шаг 6. Зарегистрируйте URI перенаправления через портал Azure
ADAL.NET и MSAL.NET добавляют дополнительные требования к URI перенаправления, когда он берет в цель брокера. Зарегистрируйте URI перенаправления в приложении через портал Azure.
Текущий код ADAL: | Аналог в MSAL: |
Пример:
|
Пример:
|
Дополнительные сведения о регистрации URI перенаправления в портал Azure см. в разделе Шаг 7. Добавление URI перенаправления в регистрацию приложения.
Шаг 7. Настройка Entitlements.plist
Включите доступ к цепочке ключей в файле прав Entitlements.plist:
<key>keychain-access-groups</key>
<array>
<string>$(AppIdentifierPrefix)com.microsoft.adalcache</string>
</array>
Дополнительные сведения о включении доступа к цепочке ключей см. в разделе Включение доступа к цепочке ключей.
Следующие шаги
Ознакомьтесь с тематическими вопросами, связанными с Xamarin iOS, в MSAL.NET.