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

С помощью Azure Active Directory (Azure AD) Application Proxy можно публиковать не только веб-приложения, но и собственные клиентские приложения, настроенные с помощью библиотеки аутентификации Майкрософт (MSAL). Собственные клиентские приложения отличаются от веб-приложений, так как они устанавливаются на устройство, а веб-приложения предоставляются через браузер.

Для поддержки собственных клиентских приложений Application Proxy принимает маркеры, выданные Azure AD, которые отправляются в заголовке. Служба Application Proxy выполняет проверку подлинности пользователей. Это решение не использует маркеры приложения для проверки подлинности.

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

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

В этой статье рассматриваются четыре действия, которые нужно выполнить, чтобы опубликовать собственное приложение с помощью прокси приложения и библиотеки аутентификации Azure AD.

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

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

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

Теперь необходимо зарегистрировать приложение в Azure AD следующим образом.

  1. Войдите на портал Azure Active Directory. Появится панель мониторинга для центра администрирования Azure Active Directory.

  2. На панели сбоку выберите Azure Active Directory. Появится страница с общими сведениями об Azure Active Directory.

  3. На боковой панели с общими сведениями об Azure AD выберите Регистрация приложений. Отобразится список всех зарегистрированных приложений.

  4. Выберите Новая регистрация. Появится страница Регистрация приложения.

    Создание новой регистрации приложения на портале Azure

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

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

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

  8. Выберите и прочтите политики платформы Майкрософт, а затем выберите Зарегистрировать. После этого появится страница со сведениями о новой регистрации приложения.

Дополнительные сведения о создании регистрации приложения см. в разделе Интеграция приложений с Azure Active Directory.

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

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

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

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

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

// Acquire Access Token from AAD 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>");
 }

Необходимые сведения в примере кода можно найти на портале Azure AD следующим образом.

Требуемые сведения Поиск на портале Azure AD
<Tenant ID> Azure Active Directory > Свойства > ИД каталога
<App ID of the Native app> Регистрация приложений > ваше собственное приложение > Обзор > ИД приложения
<Scope> Регистрация приложений > ваше собственное приложение > Разрешения API > щелкните API разрешения (user_impersonation), после чего справа появится панель с заголовком user_impersonation. > Область является URL-адресом в поле ввода.
<Proxy App URL> Внешний URL-адрес и путь к API

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

Дальнейшие действия

Дополнительные сведения о блок-схеме собственного приложения см. в разделе Собственные приложения в Azure Active Directory.

Узнайте подробнее о том, как настроить единый вход в приложениях в Azure Active Directory.