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


Как обеспечить взаимодействие нативных клиентских приложений с прокси-приложениями

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

Для поддержки собственных клиентских приложений прокси приложения принимает токены, выдаваемые идентификацией Microsoft Entra и отправляемые в заголовке. Служба прокси приложения выполняет проверку подлинности для пользователей. Это решение не использует маркеры приложения для проверки подлинности.

Связь между конечными пользователями, идентификатором Microsoft Entra и опубликованными приложениями

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

В этой статье описано, как опубликовать собственное приложение с помощью прокси приложения и библиотеки проверки подлинности Майкрософт (MSAL).

Шаг 1. Публикация прокси-приложения

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

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

Теперь необходимо зарегистрировать приложение в идентификаторе Microsoft Entra.

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

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

  3. Перейдите к Entra ID>Регистрация приложений. Отобразится список всех зарегистрированных приложений.

  4. Выберите "Создать регистрацию". Откроется страница регистрации приложения .

    Создание регистрации приложения в Центре администрирования Microsoft Entra

  5. В заголовке "Имя" укажите отображаемое имя для приложения.

  6. В разделе " Поддерживаемые типы учетных записей " выберите уровень доступа с помощью этих рекомендаций.

    • Чтобы использовать только учетные записи, внутренние для вашей организации, выберите только учетные записи в этом каталоге организации.
    • Чтобы выбрать только бизнес-или образовательных клиентов, выберите учетные записи в любом каталоге организации.
    • Чтобы выбрать самый широкий спектр учетных записей Microsoft, выберите учетные записи в любом организационном каталоге и личные учетные записи Microsoft.
  7. В разделе URI перенаправления выберите публичный клиент (мобильные и рабочие столы), затем введите URI перенаправления https://login.microsoftonline.com/common/oauth2/nativeclient для вашего приложения.

  8. Выберите и прочитайте политики платформы Майкрософт, а затем нажмите кнопку "Регистрация". Создана и отображается страница обзора для новой регистрации приложения.

Для получения более подробной информации о создании регистрации нового приложения см. в разделе «Интеграция приложений с Microsoft Entra ID».

Шаг 3. Предоставление доступа к прокси-приложению

Ваше родное приложение зарегистрировано. Предоставьте ему доступ к прокси-приложению:

  1. На боковой панели новой страницы регистрации приложения выберите разрешения API. Откроется страница разрешений API для новой регистрации приложения.
  2. Выберите "Добавить разрешение". Откроется страница разрешений API запроса .
  3. В разделе "Выбор параметра API" выберите API, которые использует моя организация. Появится список приложений в каталоге, которые предоставляют интерфейсы API.
  4. Введите поле поиска или прокрутите страницу, чтобы найти прокси-приложение, опубликованное на шаге 1. Публикация прокси-приложения и выбор прокси-приложения.
  5. В заголовке "Какой тип разрешений требует ваше приложение?" выберите тип разрешения. Если собственное приложение должно получить доступ к API прокси-приложения в качестве пользователя, вошедшего в систему, выберите делегированные разрешения.
  6. В заголовке "Выбор разрешений " выберите требуемое разрешение и нажмите кнопку "Добавить разрешения". На странице разрешений API для собственного приложения теперь отображается приложение-прокси и API разрешений, добавленные вами.

Шаг 4. Добавление библиотеки проверки подлинности Майкрософт в код (пример .NET C#)

Измените код собственного приложения с учетом проверки подлинности с помощью библиотеки MSAL. Для этого включите в код следующий текст:

// Acquire access token from Microsoft Entra ID for proxy application
IPublicClientApplication clientApp = PublicClientApplicationBuilder
.Create(<App ID of the Native app>)
.WithDefaultRedirectUri() // will automatically use the default Uri for native app
.WithAuthority("https://login.microsoftonline.com/{<Tenant ID>}")
.Build();

AuthenticationResult authResult = null;
var accounts = await clientApp.GetAccountsAsync();
IAccount account = accounts.FirstOrDefault();

IEnumerable<string> scopes = new string[] {"<Scope>"};

try
 {
    authResult = await clientApp.AcquireTokenSilent(scopes, account).ExecuteAsync();
 }
    catch (MsalUiRequiredException ex)
 {
     authResult = await clientApp.AcquireTokenInteractive(scopes).ExecuteAsync();                
 }

if (authResult != null)
 {
  //Use the Access Token to access the Proxy Application

  HttpClient httpClient = new HttpClient();
  httpClient.DefaultRequestHeaders.Authorization = new AuthenticationHeaderValue("Bearer", authResult.AccessToken);
  HttpResponseMessage response = await httpClient.GetAsync("<Proxy App Url>");
 }

Требуемые сведения в примере кода можно найти в Центре администрирования Microsoft Entra следующим образом:

Требуемые сведения Как найти его в Центре администрирования Microsoft Entra
<Идентификатор клиента> Entra ID>Обзор>Свойства
<ИД приложения нативного приложения> Регистрация> приложениясобственное приложение>Обзор>Идентификатор приложения
<Область применения> Регистрация приложения>ваше встроенное приложение>Разрешения API> выберите API разрешений (user_impersonation) > Панель с заголовком user_impersonation появляется справа. > Область применения — это URL-адрес в поле ввода.
<URL-адрес приложения прокси> Внешний URL-адрес и путь к API

После изменения кода MSAL с этими параметрами пользователи могут проходить проверку подлинности в собственных клиентских приложениях, даже если они находятся за пределами корпоративной сети.

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

Дополнительные сведения о нативном потоке приложений см. в мобильных и десктопных приложениях в Microsoft Entra ID.

Узнайте о настройке единого входа в приложения с Microsoft Entra ID.