Проверка подлинности клиентского приложения (REST API Azure Каталог данных)
В этой статье показано, как проверить подлинность клиентского приложения Каталог данных. Она содержит примеры на языке C#. Тем не менее процесс аутентификации одинаков и для других языков программирования.
- Что необходимо для проверки подлинности клиентского приложения Каталог данных
- Как выполнить запрос на Каталог данных REST API с помощью маркера
- Поток контекста проверки подлинности Azure
Каталог данных клиентские приложения используют Active Directory (Azure AD) для проверки подлинности пользователей и защиты приложений. Аутентификация — это процесс идентификации приложения или пользователя. Чтобы определить клиентское приложение в Azure AD, зарегистрируйте его с помощью Azure AD. При регистрации клиентского приложения в Azure Active Directory вы предоставляете приложению доступ к API Каталог данных. Сведения о регистрации клиентского приложения Каталог данных см. в статье Регистрация клиентского приложения.
Каталог данных вызовы REST API выполняются от имени пользователя, прошедшего проверку подлинности, путем передачи маркера в заголовке "Авторизация" запроса. Маркер можно получить с помощью Azure Active Directory.
Что необходимо для проверки подлинности клиентского приложения Каталог данных
Для проверки подлинности клиентского приложения Каталог данных и выполнения веб-запроса REST необходимо выполнить следующие действия:
Регистрация клиентского приложения. Сведения о регистрации клиентского приложения Каталог данных см. в разделе Регистрация клиентского приложения. При регистрации клиентского приложения в Azure Active Directory вы предоставляете приложению доступ к API Каталог данных.
Назначение идентификатора клиента для приложения . Сведения о том, как получить идентификатор клиента для приложения, см. в статье Как получить идентификатор клиентского приложения. Идентификатор клиента используется приложением для идентификации пользователей, у которых запрашиваются разрешения.
- В коде клиентского приложения назначьте переменную clientID своему приложению Azure.
Назначение URI перенаправления . Для клиентского приложения URI перенаправления предоставляет Azure AD дополнительные сведения о конкретном приложении, которое оно проходит проверку подлинности. Универсальный код ресурса (URI) — это значение, позволяющее определить имя ресурса.
- В коде клиентского приложения назначьте redirectUri .https://login.live.com/oauth20_desktop.srf Поскольку клиентское приложение не имеет внешней службы для перенаправления, этот универсальный код ресурса (URI) является стандартным заполнителем для клиентских приложений.
Назначение URI ресурса для API Каталог данных — URI ресурса идентифицирует ресурс API Каталог данных.
- В коде клиентского приложения назначьте resourceUri .
https://datacatalog.azure.com
- В коде клиентского приложения назначьте resourceUri .
Назначьте универсальный код ресурса (URI) центра OAuth2. Универсальный код ресурса (URI) центра определяет ресурс центра OAuth2.
- В коде клиентского приложения назначьте URI центра .
https://login.windows.net/common/oauth2/authorize
- В коде клиентского приложения назначьте URI центра .
Чтобы запросить данные в службу КАТАЛОГ ДАННЫХ 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 выполняет следующие действия.
- AuthenticationContext запускает поток операций, перенаправляя агента пользователя к конечной точке авторизации Azure Active Directory. Пользователь проходит аутентификацию и дает согласие, если оно требуется.
- Конечная точка авторизации Azure Active Directory перенаправляет агента пользователя к AuthenticationContext с кодом авторизации. Агент пользователя возвращает код авторизации URI перенаправления клиентского приложения.
- AuthenticationContext запрашивает маркер доступа у конечной точки выдачи маркера Azure Active Directory. Представляет код авторизации, чтобы доказать, что пользователь дал свое согласие.
- Конечная точка выдачи маркера Azure Active Directory возвращает маркер доступа.
- Клиентское приложение использует маркер доступа для аутентификации веб-API.
- После проверки подлинности клиентского приложения Каталог данных REST API возвращает запрошенные данные.
Дополнительные сведения о процессе авторизации Azure Active Directory (Azure AD) см. в статье Поток предоставления кода авторизации.