Примечание.
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
Применяется:
Внешние клиенты (дополнительные сведения)
Из этого краткого руководства вы узнаете, как настроить пример приложения iOS для вызова веб-API ASP.NET Core.
Необходимые условия
- Войти пользователям в пример мобильного приложения iOS (Swift) с помощью встроенной аутентификации.
- Зарегистрируйте новое приложение в Центре администрирования Microsoft Entra для веб-API, предназначенного для учетных записей в любом каталоге организации и личных учетных записей Microsoft. Дополнительные сведения см. в статье "Регистрация приложения ". Запишите следующие значения на странице обзора приложения для последующего использования:
- Идентификатор приложения (клиента)
- Идентификатор каталога (арендатора)
Регистрация приложения веб-API
Войдите в Центр администрирования Microsoft Entra как минимум разработчик приложений.
Если у вас есть доступ к нескольким арендаторам, используйте значок Настройки
в верхнем меню, чтобы переключиться на вашего внешнего арендатора из меню Каталоги + подписки.Перейдите к Entra ID>регистрации приложений.
Выберите +Создать регистрацию.
На появившемся экране "Регистрация приложения" введите сведения о регистрации приложения:
В разделе "Имя" введите понятное имя приложения, которое будет отображаться пользователям приложения, например ciam-ToDoList-api.
В разделе "Поддерживаемые типы учетных записей" выберите только учетные записи в этом каталоге организации.
Выберите "Зарегистрировать" , чтобы создать приложение.
Панель обзора приложения отображается при завершении регистрации. Запишите идентификатор каталога (клиента) и идентификатор приложения (клиента), которые будут использоваться в исходном коде приложения.
Настройка областей API
API должен опубликовать как минимум одну область действий, также называемую делегированным разрешением, чтобы клиентские приложения успешно получили токен доступа для пользователя. Чтобы опубликовать область, выполните следующие действия.
На странице регистрации приложений выберите созданное приложение API (ciam-ToDoList-api), чтобы открыть страницу обзора .
В разделе "Управление" выберите "Предоставить API".
В верхней части страницы рядом с URI идентификатора приложения выберите ссылку "Добавить ", чтобы создать универсальный код ресурса (URI), уникальный для этого приложения.
Примите предлагаемый URI идентификатора приложения, например
api://{clientId}, и нажмите кнопку "Сохранить". Когда веб-приложение запрашивает маркер доступа для веб-API, он добавляет URI в качестве префикса для каждой области, определяемой для API.В разделе "Области", определенные этим API, выберите "Добавить область".
Введите следующие значения, определяющие доступ для чтения к API, а затем выберите "Добавить область ", чтобы сохранить изменения:
Свойство Ценность Имя области ToDoList.Читать Кто может согласиться только для администраторов Имя, отображаемое для согласия администратора Прочитать список задач пользователей с помощью TodoListApi Описание согласия администратора Разрешить приложению читать список дел пользователя с помощью TodoListApi. Государство Включен Снова выберите "Добавить область " и введите следующие значения, определяющие область доступа для чтения и записи в API. Выберите "Добавить область ", чтобы сохранить изменения:
Свойство Ценность Имя области ToDoList.ReadWrite Кто может согласиться только для администраторов Имя, отображаемое для согласия администратора Чтение и запись списка задач пользователей с помощью ToDoListApi Описание согласия администратора Разрешить приложению читать и записывать список ToDo пользователя с помощью toDoListApi Государство Включен
Узнайте больше о принципе минимальных привилегий при публикации разрешений для веб-API.
Настройка ролей приложения
API должен опубликовать как минимум одну роль приложения, также называемую разрешением приложения, чтобы клиентские приложения могли получить маркер доступа самостоятельно. Разрешения приложений — это тип разрешений, которые API должны публиковать, когда они хотят позволить клиентским приложениям успешно проходить проверку подлинности самостоятельно и без необходимости входа пользователей. Чтобы опубликовать разрешение приложения, выполните следующие действия.
На странице регистрации приложений выберите созданное приложение (например, ciam-ToDoList-api), чтобы открыть страницу обзора .
В разделе "Управление" выберите роли приложения.
Выберите "Создать роль приложения", а затем введите следующие значения, а затем нажмите кнопку "Применить ", чтобы сохранить изменения:
Свойство Ценность Отображаемое имя ToDoList.Прочитать.Все Разрешенные типы участников Приложения Ценность ToDoList.Прочитать.Все Описание Разрешить приложению считывать список дел каждого пользователя с помощью TodoListApi. Вы хотите включить эту роль приложения? Оставьте его отмеченным Снова нажмите кнопку "Создать роль приложения ", а затем введите следующие значения для второй роли приложения, а затем нажмите кнопку "Применить ", чтобы сохранить изменения:
Свойство Ценность Отображаемое имя ToDoList.ЧитатьПисать.Все Разрешенные типы участников Приложения Ценность ToDoList.ЧитатьПисать.Все Описание Разрешить приложению считывать и записывать список дел каждого пользователя с помощью ToDoListAPI Вы хотите включить эту роль приложения? Оставьте его отмеченным
Настройка необязательных утверждений
Вы можете добавить необязательное утверждение idtyp , чтобы помочь веб-API определить, является ли маркер маркером приложения или приложением + маркер пользователя . Хотя вы можете использовать сочетание утверждений scp и ролей для той же цели, утверждение idtyp использовать проще всего для различения токена приложения и токена приложения + пользователя. Например, значение этого утверждения — app, когда маркер предназначен только для приложений.
Предоставление разрешений API образцу приложения для iOS
После регистрации клиентского приложения и веб-API, а также предоставления API путем создания областей, вы можете настроить разрешения клиента для API, выполнив следующие действия.
На странице регистрации приложений выберите созданное приложение (например, ciam-client-app), чтобы открыть страницу обзора .
В разделе "Управление" выберите разрешения API.
В разделе "Настроенные разрешения" выберите "Добавить разрешение".
Выберите API, которые моя организация использует вкладку.
В списке API выберите API, например ciam-ToDoList-api.
Выберите параметр "Делегированные разрешения ".
В списке разрешений выберите ToDoList.Read, ToDoList.ReadWrite (при необходимости используйте поле поиска).
Нажмите кнопку "Добавить разрешения ".
На этом этапе вы правильно назначили разрешения. Однако, поскольку арендатор является арендатором клиента, сами потребители не могут дать согласие на эти разрешения. Чтобы устранить эту проблему, администратор должен согласиться с этими разрешениями от имени всех пользователей на стороне клиента.
Выберите "Предоставить согласие администратора" для <имени> клиента, а затем нажмите кнопку "Да".
Выберите "Обновить", а затем убедитесь, что <имя> клиента предоставлено в разделе "Состояние" для обоих разрешений.
В списке настроенных разрешений выберите разрешения ToDoList.Read и ToDoList.ReadWrite по одному за раз, а затем скопируйте полный универсальный код ресурса (URI) разрешения для последующего использования. Полный URI разрешений выглядит примерно так же, как
api://{clientId}/{ToDoList.Read}илиapi://{clientId}/{ToDoList.ReadWrite}.
Клонирование или скачивание примера веб-API
Чтобы получить пример приложения, можно клонировать его из GitHub или скачать его в виде файла .zip.
Чтобы клонировать пример, откройте командную строку и перейдите к месту создания проекта и введите следующую команду:
git clone https://github.com/Azure-Samples/ms-identity-ciam-dotnet-tutorial.gitСкачайте файл .zip. Извлеките его в путь к файлу, где длина имени меньше 260 символов.
Настройка и запуск примера веб-API
В редакторе кода откройте файл
2-Authorization/1-call-own-api-aspnet-core-mvc/ToDoListAPI/appsettings.json.Найдите заполнитель:
-
Enter_the_Application_Id_Hereи замените его на идентификатор приложения (клиента) для веб-API, который вы скопировали ранее. -
Enter_the_Tenant_Id_Hereи замените его идентификатором каталога (арендатора) , скопированным ранее. -
Enter_the_Tenant_Subdomain_Hereи замените его поддоменом каталога (клиента). Например, если основной домен клиентаcontoso.onmicrosoft.com, используйтеcontoso. Если у вас нет имени арендатора, узнайте, как посмотреть сведения о вашем арендаторе.
-
Чтобы вызвать его, необходимо разместить веб-API для примера приложения iOS. Следуйте руководству "Quickstart: Развертывание веб-приложения ASP.NET" для развертывания вашего веб-API.
Настройка примера мобильного приложения iOS для вызова веб-API
В этом примере можно настроить несколько конечных точек URL-адреса веб-API и наборов областей. В этом случае вы настраиваете только одну конечную точку URL-адреса веб-API и связанные с ней области.
В Xcode откройте файл
/NativeAuthSampleApp/ProtectedAPIViewController.swift. Если вы используете macOS, вот пример файла кода ProtectedAPIViewController.swift .Найдите
protectedAPIUrl1и введите URL-адрес веб-API в качестве значения.let protectedAPIUrl1: String? = nil // Developers should set the respective URL of their web API here. For example let protectedAPIUrl1: String? = "https://api.example.com/v1/resource"Найдите
protectedAPIScopes1и задайте области, записанные в разделе "Предоставление разрешений API" для примера приложения iOS.let protectedAPIScopes1: [String] = [] // Developers should set the respective scopes of their web API here.For example, let protectedAPIScopes = ["api://{clientId}/{ToDoList.Read}","api://{clientId}/{ToDoList.ReadWrite}"]
Запуск примера приложения iOS и вызов веб-API
Чтобы создать и запустить приложение, выполните следующие действия.
- Чтобы создать и запустить код, выберите "Выполнить " в меню "Продукт " в Xcode. После успешной сборки Xcode запустит пример приложения в симуляторе.
- Перейдите на вкладку API, чтобы проверить вызов API. Успешный вызов веб-API возвращает HTTP-
200, а HTTP-403означает несанкционированный доступ.