Примечание.
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
Применяется:
Внешние клиенты (дополнительные сведения)
В этом руководстве показано, как добавить библиотеку аутентификации Microsoft (MSAL) с использованием фреймворка нативной аутентификации SDK в ваше приложение Swift для iOS/macOS.
Изучив это руководство, вы:
- Добавьте платформу MSAL в приложение iOS/macOS.
- Создание экземпляра пакета SDK.
Необходимые условия
- Xcode
- Если вы еще не сделали этого, следуйте инструкциям в разделе Вход пользователей в примере мобильного приложения iOS (Swift) с помощью нативной аутентификации и зарегистрируйте приложение в вашем внешнем клиенте. Убедитесь, что выполните следующие действия.
- Регистрация приложения.
- Включите общедоступный клиент и собственные потоки проверки подлинности.
- Предоставьте разрешения API.
- Создайте поток пользователя.
- Свяжите приложение с потоком пользователя.
- Проект iOS/macOS
Добавление платформы MSAL в приложение iOS/macOS
- Откройте проект iOS или macOS в Xcode.
- Выберите Добавить зависимости пакета... в меню Файл.
- Введите
https://github.com/AzureAD/microsoft-authentication-library-for-objcв качестве URL-адреса пакета и выберите Добавить пакет. - Добавьте новую группу цепочек ключей в проект функции. Используйте
com.microsoft.adalcacheв iOS иcom.microsoft.identity.universalstorageв macOS.
Для получения дополнительной информации и использования других механизмов, чтобы добавить MSAL в ваш проект, см. файл Readme проекта .
Создание экземпляра пакета SDK
Импортируйте библиотеку MSAL в контроллер представления, добавив
import MSALв верхней части классаViewController.Добавьте переменную члена
nativeAuthв классViewController, добавив следующий код непосредственно перед функциейviewDidLoad():var nativeAuth: MSALNativeAuthPublicClientApplication!Затем добавьте следующий код в функцию
viewDidLoad():do { nativeAuth = try MSALNativeAuthPublicClientApplication( clientId: "Enter_the_Application_Id_Here", tenantSubdomain: "Enter_the_Tenant_Subdomain_Here", challengeTypes: [.OOB] ) print("Initialized Native Auth successfully.") } catch { print("Unable to initialize MSAL \(error)") }Замените следующие значения значениями из Центра администрирования Microsoft Entra:
Найдите значение
Enter_the_Application_Id_Hereи замените его идентификатором приложения (клиента) зарегистрированного ранее приложения.Найдите
Enter_the_Tenant_Subdomain_Hereи замените его поддоменом каталога (клиента). Например, если основной домен клиентаcontoso.onmicrosoft.com, используйтеcontoso. Если у вас нет поддомена каталога (клиента), узнайте, как прочитать сведения о клиенте.Типы вызовов — это список значений, которые приложение использует для уведомления Microsoft Entra о поддерживаемом методе проверки подлинности.
- Для потоков регистрации и входа с помощью разового пароля, отправляемого на электронную почту, используйте
[.OOB]. - Для потоков регистрации и входа с помощью электронной почты и пароля используйте
[.OOB, .password]. - Для самостоятельного сброса пароля (SSPR) используйте
[.OOB].
Узнайте больше о типах задач.
- Для потоков регистрации и входа с помощью разового пароля, отправляемого на электронную почту, используйте
Для сборки выберите Product>Build на панели инструментов проекта.
Необязательно: Конфигурация ведения журнала
MSAL предоставляет API ведения журнала, который можно использовать для включения и настройки ведения журнала. Чтобы просмотреть все выходные данные отладки из MSAL, добавьте следующий код в начале функции viewDidLoad():
MSALGlobalConfig.loggerConfig.logLevel = .verbose
MSALGlobalConfig.loggerConfig.setLogCallback { logLevel, message, containsPII in
if !containsPII {
print("MSAL: \(message ?? "")")
}
}
Это выводит все журналы отладки из MSAL, которые могут быть полезны при диагностике проблем и изучении работы собственных потоков проверки подлинности. Дополнительные сведения о настройке уровней журналов и рекомендациях см. в статье Ведение журнала в MSAL для iOS или macOS.