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


Вход пользователей и вызов защищенного веб-API в примере приложения iOS (Swift)

В этом руководстве показано, как настроить пример мобильного приложения iOS для входа пользователей и вызвать защищенный веб-API ASP.NET Core.

Ниже перечислены действия, которые вы выполните в этой статье.

  • Зарегистрируйте приложение в Центре администрирования Microsoft Entra.
  • Добавьте URL-адрес перенаправления платформы.
  • Включите общедоступные потоки клиентов.
  • Обновите пример файла кода конфигурации iOS, чтобы использовать собственные Внешняя идентификация Microsoft Entra для сведений о клиенте клиента.
  • Запустите и проверьте пример мобильного приложения iOS.

Необходимые компоненты

  • Xcode.

  • Внешний клиент. Если у вас еще нет пробной версии, зарегистрируйтесь на бесплатную пробную версию.

  • Регистрация API, которая предоставляет по крайней мере одну область (делегированные разрешения) и одну роль приложения (разрешение приложения), например ToDoList.Read. Если вы еще не сделали этого, следуйте инструкциям по вызову API в примере мобильного приложения iOS, чтобы иметь функциональный защищенный веб-API ASP.NET Core. Убедитесь, что выполните следующие действия.

    • Регистрация приложения веб-API.
    • Настройка областей API.
    • Настройка ролей приложения.
    • Настройте необязательные утверждения.
    • Клонирование или скачивание примера веб-API.
    • Настройте и запустите пример веб-API.

Регистрация приложения

Чтобы приложение входить в систему с помощью Microsoft Entra, Внешняя идентификация Microsoft Entra должны быть осведомлены о создаваемом приложении. Регистрация приложения устанавливает отношение доверия между приложением и Microsoft Entra. При регистрации приложения внешний идентификатор создает уникальный идентификатор, известный как идентификатор приложения (клиента), значение, используемое для идентификации приложения при создании запросов проверки подлинности.

Ниже показано, как зарегистрировать приложение в Центре администрирования Microsoft Entra:

  1. Войдите в Центр администрирования Microsoft Entra как минимум разработчик приложений.

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

  3. Перейдите к приложениям> удостоверений>Регистрация приложений.

  4. Выберите + Создать регистрацию.

  5. На отображаемой странице регистрации приложения;

    1. Введите понятное имя приложения, отображаемое пользователям приложения, например ciam-client-app.
    2. В разделе Поддерживаемые типы учетных записей выберите Учетные записи только в этом каталоге организации.
  6. Выберите Зарегистрировать.

  7. Панель обзора приложения отображается при успешной регистрации. Запишите идентификатор приложения (клиента), который будет использоваться в исходном коде приложения.

Добавление URL-адреса перенаправления платформы

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

  1. В разделе Управление выберите Проверка подлинности.
  2. На странице конфигураций платформы выберите "Добавить платформу" и выберите параметр iOS или macOS.
  3. Введите идентификатор пакета проекта. Если вы скачали пример кода, это значение равно com.microsoft.identitysample.ciam.MSALiOS.
  4. Выберите "Настроить и сохранить конфигурацию MSAL", которая отображается в области конфигурации iOS или macOS, чтобы можно было ввести ее при настройке приложения позже.
  5. Нажмите кнопку Готово.

Включение общедоступного потока клиента

Чтобы определить приложение как общедоступный клиент, выполните следующие действия.

  1. В разделе Управление выберите Проверка подлинности.

  2. В разделе "Дополнительные параметры" для параметра "Разрешить общедоступные потоки клиентов" нажмите кнопку "Да".

  3. Выберите Сохранить, чтобы сохранить изменения.

После регистрации приложения он получает разрешение User.Read . Однако, поскольку клиент является внешним клиентом, сами пользователи клиента не могут согласиться с этим разрешением. Вы, как администратор, должны предоставить это разрешение от имени всех пользователей в клиенте:

  1. На странице Регистрация приложений выберите созданное приложение (например, ciam-client-app), чтобы открыть страницу обзора.

  2. В разделе Управление выберите Разрешения API.

    1. Выберите "Предоставить согласие администратора" для <имени> клиента, а затем нажмите кнопку "Да".
    2. Выберите "Обновить", а затем убедитесь, что <имя> клиента предоставлено в разделе "Состояние" для разрешения.

Предоставление разрешений веб-API примеру приложения iOS

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

  1. На странице Регистрация приложений выберите созданное приложение (например, ciam-client-app), чтобы открыть страницу обзора.

  2. В разделе Управление выберите Разрешения API.

  3. В разделе Настроенные разрешения выберите Добавить разрешение.

  4. Щелкните вкладку API, используемые моей организацией.

  5. В списке API выберите API, например ciam-ToDoList-api.

  6. Выберите параметр "Делегированные разрешения".

  7. В списке разрешений выберите ToDoList.Read, ToDoList.ReadWrite (при необходимости используйте поле поиска).

  8. Нажмите кнопку Add permissions (Добавить разрешения).

  9. На этом этапе вы правильно назначили разрешения. Тем не менее, поскольку клиент является клиентом клиента, пользователи-потребители сами не могут согласиться с этими разрешениями. Чтобы устранить эту проблему, администратор должен согласиться с этими разрешениями от имени всех пользователей в клиенте:

    1. Выберите "Предоставить согласие администратора" для <имени> клиента, а затем нажмите кнопку "Да".

    2. Выберите "Обновить", а затем убедитесь, что <имя> клиента предоставлено в разделе "Состояние" для обоих разрешений.

  10. В списке настроенных разрешений выберите разрешения ToDoList.Read и ToDoList.ReadWrite по одному за раз, а затем скопируйте полный универсальный код ресурса (URI) разрешения для последующего использования. Полный универсальный код ресурса (URI) разрешений выглядит примерно так же api://{clientId}/{ToDoList.Read} api://{clientId}/{ToDoList.ReadWrite}или.

Клонирование примера мобильного приложения iOS

Чтобы получить пример приложения, можно клонировать его из GitHub или скачать его в виде файла .zip.

  • Чтобы клонировать пример, откройте командную строку и перейдите к месту создания проекта и введите следующую команду:

    git clone https://github.com/Azure-Samples/ms-identity-ciam-browser-delegated-ios-sample.git
    

Настройка примера мобильного приложения iOS

Чтобы включить проверку подлинности и доступ к ресурсам веб-API, настройте пример, выполнив следующие действия.

  1. В Xcode откройте клонируемый проект.

  2. Откройте файл /MSALiOS/Configuration.swift .

  3. Найдите заполнитель:

    • Enter_the_Application_Id_Hereи замените его идентификатором приложения (клиента) зарегистрированного ранее приложения.
    • Enter_the_Redirect_URI_Here и замените его значением kRedirectUri в файле конфигурации библиотеки проверки подлинности Майкрософт (MSAL), скачанным ранее при добавлении URL-адреса перенаправления платформы.
    • Enter_the_Protected_API_Full_URL_Here и замените его URL-адресом веб-API. Enter_the_Protected_API_Full_URL_Here должны содержать базовый URL-адрес (URL-адрес развернутого веб-API) и конечную точку (/api/todolist) для веб-API ASP.NET.
    • Enter_the_Protected_API_Scopes_Here и замените его областями, записанными в разделе "Предоставление разрешений веб-API" для примера приложения iOS.
    • Enter_the_Tenant_Subdomain_Here и замените его поддоменом каталога (клиента). Например, если основной домен клиента — это contoso.onmicrosoft.com, используйте contoso. Если вы не знаете поддомен клиента, узнайте, как прочитать сведения о клиенте.

Вы настроили приложение и готовы к выполнению.

Запуск примера приложения iOS и вызов веб-API

Чтобы создать и запустить приложение, выполните следующие действия.

  1. Чтобы создать и запустить код, выберите "Выполнить " в меню "Продукт " в Xcode. После успешной сборки Xcode запустит пример приложения в симуляторе.
  2. Выберите " Получить маркер" в интерактивном режиме , чтобы запросить маркер доступа.
  3. Выберите API— выполните GET , чтобы вызвать ранее настроенный веб-API ASP.NET Core. Успешный вызов веб-API возвращает HTTP 200, а HTTP 403 обозначает несанкционированный доступ.