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


Использование прокси приложения Microsoft Entra для обеспечения безопасного доступа к интерфейсу программирования приложений (API), размещенного в частном облаке или локальной среде.

Бизнес-логика часто живет в частном интерфейсе программирования приложений (API). API выполняется локально или в частном облаке. Собственные приложения Android, iOS, Mac или Windows должны взаимодействовать с конечными точками API, чтобы использовать данные или обеспечивать взаимодействие с пользователем. Прокси приложения Microsoft Entra и библиотека проверки подлинности Майкрософт (MSAL) позволяют собственным приложениям безопасно получать доступ к API частного облака. Прокси приложения Microsoft Entra — это более быстрое и безопасное решение, чем открытие портов брандмауэра и управление проверкой подлинности и авторизацией на уровне приложения.

Совет

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

В этой статье описывается настройка решения прокси приложения Microsoft Entra для размещения веб-службы API, к которым могут получить доступ собственные приложения.

Обзор

На следующей схеме показан традиционный способ публикации локальных API. Этот подход требует открытия входящих портов 80 и 443.

Традиционный доступ к API

На следующей схеме показано, как использовать прокси приложения Microsoft Entra для безопасной публикации API без открытия входящих портов:

Доступ к API прокси приложения Microsoft Entra

Прокси приложения Microsoft Entra формирует основу решения, работая в качестве общедоступной конечной точки для доступа к API, а также обеспечивает проверку подлинности и авторизацию. Доступ к API-интерфейсам можно получить из огромного массива платформ с помощью библиотек проверки подлинности Майкрософт (MSAL).

Так как проверка подлинности и авторизация прокси приложения Microsoft Entra основаны на идентификаторе Microsoft Entra, вы можете использовать условный доступ Microsoft Entra, чтобы гарантировать доступ только к API доверенным устройствам, опубликованным через прокси приложения. Используйте присоединение к Microsoft Entra или гибридное присоединение Microsoft Entra для настольных компьютеров и Управляемое Intune для устройств. Вы также можете воспользоваться преимуществами функций Microsoft Entra ID P1 или P2, таких как многофакторная проверка подлинности Microsoft Entra, а также безопасность, поддерживаемая машинным обучением Защита идентификации Microsoft Entra.

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

Для выполнения данного пошагового руководства требуется:

Публикация API с помощью прокси приложения

Чтобы опубликовать API за пределами интрасети через прокси приложения, выполните тот же шаблон, что и для публикации веб-приложений. Дополнительные сведения см. в руководстве по добавлению локального приложения для удаленного доступа через прокси приложения в идентификаторе Microsoft Entra ID.

Чтобы опубликовать веб-API SecretAPI через прокси приложения:

  1. Создайте и опубликуйте пример проекта SecretAPI как веб-приложение ASP.NET на локальном компьютере или в интрасети. Убедитесь, что веб-приложение можно использовать локально.

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

  3. Перейдите к приложениям Identity>Applications>Enterprise.

  4. В верхней части страницы Корпоративные приложения — Все приложения выберите пункт Новое приложение.

  5. На странице "Обзор коллекции Microsoft Entra" найдите раздел "Локальные приложения" и выберите "Добавить локальное приложение". Откроется страница Добавить собственное локальное приложение.

  6. Если у вас нет установленного соединителя частной сети, вам будет предложено установить его. Выберите "Скачать соединитель частной сети", чтобы скачать и установить соединитель.

  7. Добавьте сведения на страницу "Добавление собственного локального приложения ".

    1. Рядом с пунктом Имявведите SecretAPI.

    2. Рядом с пунктом Внутренний URL-адрес введите URL-адрес, используемый для доступа к API из интрасети.

    3. Убедитесь, что для предварительной проверки подлинности задан идентификатор Microsoft Entra.

    4. Нажмите кнопку "Создать" и дождитесь создания приложения.

    Добавление приложения API

  8. На странице Корпоративные приложения — Все приложения выберите приложение SecretAPI.

  9. На странице SecretAPI — Обзор выберите Свойства в области навигации слева.

  10. Не нужно, чтобы интерфейсы API были доступны конечным пользователям на панели MyApps, поэтому установите для параметра Отображается для пользователей значение Нет в нижней части страницы Свойства, а затем нажмите кнопку Сохранить.

    Не отображается для пользователей.

Веб-API теперь публикуется через прокси приложения Microsoft Entra. Затем добавьте пользователей, которые могут получить доступ к приложению.

  1. На странице SecretAPI — Обзор выберите Пользователи и группы в области навигации слева.

  2. На странице Пользователи и группы выберите Добавить пользователя.

  3. На странице Добавление назначения выберите Пользователи и группы.

  4. На странице Пользователи и группы найдите и выберите пользователей, которые могут получить доступ к приложению, включив как минимум себя. Указав всех пользователей, нажмите Выбрать.

    Выбор и назначение пользователя

  5. На странице Добавление назначения выберите Назначить.

Примечание.

Для API, использующих Встроенную проверку подлинности Windows, могут потребоваться дополнительные шаги.

Регистрация собственного приложения и предоставление доступа к API

Собственные приложения — это программы, разработанные для использования на определенной платформе или устройстве. Прежде чем собственное приложение сможет подключиться и получить доступ к API, необходимо зарегистрировать его в идентификаторе Microsoft Entra. Ниже показано, как зарегистрировать собственное приложение и предоставить ему доступ к веб-API, опубликованному через прокси приложения.

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

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

  2. Перейдите к приложениям> Identity>Applications>Enterprise Регистрация приложений.

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

  4. Введите сведения на странице регистрации приложения .

    1. Для пункта Имя введите AppProxyNativeAppSample.

    2. В разделе Поддерживаемые типы учетных записей выберите Учетные записи только в этом каталоге организации (только Contoso — один клиент).

    3. В разделе URL-адрес перенаправления в раскрывающемся списке выберите общедоступный клиент или собственный (мобильный и классический) и введите *https://login.microsoftonline.com/common/oauth2/nativeclient *.

    4. Выберите Зарегистрировать и подождите, пока приложение будет успешно зарегистрировано.

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

Теперь AppProxyNativeAppSample приложение зарегистрировано в идентификаторе Microsoft Entra. Предоставьте собственному приложению доступ к SecretAPI веб-API:

  1. На странице Регистрация приложений выберите приложение AppProxyNativeAppSample.

  2. На странице AppProxyNativeAppSample выберите Разрешения API в левой области навигации.

  3. На странице Разрешения API выберите Добавить разрешение.

  4. На странице Запрос разрешений API выберите вкладку Интерфейсы API, используемые моей организацией, а затем найдите и выберите SecretAPI.

  5. На следующей странице Запрос разрешений API установите флажок рядом с пунктом user_impersonation, а затем выберите Добавить разрешения.

    Выберите A P I.

  6. На странице Разрешения API можно выбрать параметр Предоставить согласие администратора для Contoso, чтобы другие пользователи не давали по отдельности согласие на приложение.

Настройка кода собственного приложения

Последним шагом является настройка собственного приложения. Код необходимо добавить в Form1.cs файл в NativeClient примере приложения. Код использует библиотеку MSAL для получения маркера. Маркер запрашивает вызов API и присоединяет его к заголовку в запросе. Маркер присоединен как сертификат носителя. Дополнительные сведения о MSAL см. в разделе "Добавление MSAL" в проект и добавление ссылки на MSAL.

  1. В Form1.csдобавьте в код пространство имен using Microsoft.Identity.Client;.

  2. Измените код машинного приложения в контексте проверки подлинности библиотеки проверки подлинности Майкрософт (MSAL), чтобы включить этот настраиваемый пример кода.

Настройте собственное приложение для подключения к идентификатору Microsoft Entra и вызовите API с помощью прокси приложения. Затем обновите значения заполнителей в App.config файле NativeClient sample app со значениями из идентификатора Microsoft Entra.

  1. Вставьте Идентификатор каталога (клиента) в поле <add key="ida:Tenant" value="" />. Это значение (GUID) можно найти и скопировать на странице Обзор любого из ваших приложений.

  2. Вставьте Идентификатор приложения (клиент) AppProxyNativeAppSample в поле <add key="ida:ClientId" value="" />. Это значение (GUID) можно найти и скопировать на странице Обзор для AppProxyNativeAppSample в области навигации слева в разделе Управление.

  3. Вставьте Универсальный код ресурса (URI) перенаправления AppProxyNativeAppSample в поле <add key="ida:RedirectUri" value="" />. Это значение (URI) можно найти и скопировать на странице Проверка подлинности для AppProxyNativeAppSample в области навигации слева в разделе Управление. Этот шаг необязателен, так как MSAL использует метод PublicClientApplicationBuilder.WithDefaultRedirectUri() для вставки рекомендуемого универсального идентификатора ресурса ответа (URI).

  4. Вставьте URI идентификатора приложения SecretAPI в поле <add key="todo:TodoListResourceId" value="" />. Значение совпадает с todo:TodoListBaseAddressзначением . Значение URI находится на странице SecretAPI предоставления API приложения. Найдите левую навигацию в разделе "Управление".

  5. Вставьте URL-адрес домашней страницы SecretAPI в поле <add key="todo:TodoListBaseAddress" value="" />. Вы можете найти и скопировать это значение (URL-адрес) на странице фирменной символики и свойств SecretAPI в области навигации слева в разделе "Управление".

Примечание.

Если решение не проходит сборку и выводит ошибку Недопустимый файл RESX, разверните узел Свойства в обозревателе решений, щелкните правой кнопкой мыши файл Resources.resx и выберите команду Просмотреть код. Закомментируйте строки с 121 по 123.

После настройки параметров выполните сборку и запустите собственное приложение. При нажатии кнопки Войти приложение позволяет войти в систему, а затем отображает экран успешного завершения, подтверждая успешное подключение к SecretAPI.

На снимке экрана показано сообщение об успешном подключении SecretAPI и кнопка

Следующие шаги