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


Проверка подлинности клиентского приложения (REST API Azure Каталог данных)


В этой статье показано, как проверить подлинность клиентского приложения Каталог данных. Она содержит примеры на языке C#. Тем не менее процесс аутентификации одинаков и для других языков программирования.

Каталог данных клиентские приложения используют Active Directory (Azure AD) для проверки подлинности пользователей и защиты приложений. Аутентификация — это процесс идентификации приложения или пользователя. Чтобы определить клиентское приложение в Azure AD, зарегистрируйте его с помощью Azure AD. При регистрации клиентского приложения в Azure Active Directory вы предоставляете приложению доступ к API Каталог данных. Сведения о регистрации клиентского приложения Каталог данных см. в статье Регистрация клиентского приложения.

Каталог данных вызовы REST API выполняются от имени пользователя, прошедшего проверку подлинности, путем передачи маркера в заголовке "Авторизация" запроса. Маркер можно получить с помощью Azure Active Directory.

Что необходимо для проверки подлинности клиентского приложения Каталог данных

Для проверки подлинности клиентского приложения Каталог данных и выполнения веб-запроса REST необходимо выполнить следующие действия:

  1. Регистрация клиентского приложения. Сведения о регистрации клиентского приложения Каталог данных см. в разделе Регистрация клиентского приложения. При регистрации клиентского приложения в Azure Active Directory вы предоставляете приложению доступ к API Каталог данных.

  2. Назначение идентификатора клиента для приложения . Сведения о том, как получить идентификатор клиента для приложения, см. в статье Как получить идентификатор клиентского приложения. Идентификатор клиента используется приложением для идентификации пользователей, у которых запрашиваются разрешения.

    • В коде клиентского приложения назначьте переменную clientID своему приложению Azure.
  3. Назначение URI перенаправления . Для клиентского приложения URI перенаправления предоставляет Azure AD дополнительные сведения о конкретном приложении, которое оно проходит проверку подлинности. Универсальный код ресурса (URI) — это значение, позволяющее определить имя ресурса.

    • В коде клиентского приложения назначьте redirectUri .https://login.live.com/oauth20_desktop.srf Поскольку клиентское приложение не имеет внешней службы для перенаправления, этот универсальный код ресурса (URI) является стандартным заполнителем для клиентских приложений.
  4. Назначение URI ресурса для API Каталог данных — URI ресурса идентифицирует ресурс API Каталог данных.

    • В коде клиентского приложения назначьте resourceUri .https://datacatalog.azure.com
  5. Назначьте универсальный код ресурса (URI) центра OAuth2. Универсальный код ресурса (URI) центра определяет ресурс центра OAuth2.

    • В коде клиентского приложения назначьте URI центра .https://login.windows.net/common/oauth2/authorize

Чтобы запросить данные в службу КАТАЛОГ ДАННЫХ REST, необходимо предоставить маркер доступа. В клиентском приложении .NET для получения маркера доступа используется библиотека проверки подлинности Майкрософт (MSAL ).

Важно!

Для проверки подлинности клиентского приложения необходимо добавить ссылку Microsoft.Identity.Clientна , которая включена в библиотеку проверки подлинности Майкрософт (MSAL). Если приложение по-прежнему использует ADAL, перенесите его в MSAL. Дополнительные сведения см. в разделе Различия между приложениями ADAL.NET и MSAL.NET.

Install-Package Microsoft.Identity.Client -Version 4.48.1 

Получение маркера доступа

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

Если у вас есть каталог данных, который по-прежнему использует нерекомендуемую библиотеку ADAL, перенесите приложение из ADAL в MSAL.

Отправка запроса на Каталог данных REST API с помощью маркера

После получения маркера доступа из Active Directory (Azure AD) используйте его для выполнения веб-запроса к Каталог данных REST API. Чтобы создать веб-запрос Каталог данных REST, добавьте маркер доступа в заголовок запроса. Например, в приложении .NET добавьте

HttpWebRequest request = System.Net.WebRequest.Create(apiUrl) as System.Net.HttpWebRequest;  
...  
string authHeader = authResult.CreateAuthorizationHeader();             
request.Headers.Add("Authorization", authHeader);  

Поток контекста проверки подлинности Azure

Чтобы получить маркер доступа Azure в клиентском приложении .NET, используйте AuthenticationContext. AuthenticationContext — основной класс, представляющий центр выдачи маркеров для ресурсов Azure AD. AuthenticationContext выполняет следующие действия.

  1. AuthenticationContext запускает поток операций, перенаправляя агента пользователя к конечной точке авторизации Azure Active Directory. Пользователь проходит аутентификацию и дает согласие, если оно требуется.
  2. Конечная точка авторизации Azure Active Directory перенаправляет агента пользователя к AuthenticationContext с кодом авторизации. Агент пользователя возвращает код авторизации URI перенаправления клиентского приложения.
  3. AuthenticationContext запрашивает маркер доступа у конечной точки выдачи маркера Azure Active Directory. Представляет код авторизации, чтобы доказать, что пользователь дал свое согласие.
  4. Конечная точка выдачи маркера Azure Active Directory возвращает маркер доступа.
  5. Клиентское приложение использует маркер доступа для аутентификации веб-API.
  6. После проверки подлинности клиентского приложения Каталог данных REST API возвращает запрошенные данные.

Дополнительные сведения о процессе авторизации Azure Active Directory (Azure AD) см. в статье Поток предоставления кода авторизации.