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


Получение доступа к API в контексте пользователя

В этой статье описывается создание приложения для получения программного доступа к API microsoft Managed Desktop от имени пользователя.

Для доступа к API требуется проверка подлинности OAuth2.0. Дополнительные сведения см. в разделе Поток кода авторизации OAuth 2.0.

Чтобы настроить службу и получить маркер доступа, выполните следующие действия:

  1. Создание и регистрация приложения Microsoft Entra.
  2. Настройте разрешения для microsoft Managed Desktop в приложении.
  3. Получение согласия администратора.
  4. Получите маркер доступа с помощью этого приложения.
  5. Используйте маркер для доступа к API microsoft Managed Desktop.

Создать приложение

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

Для службы, которая будет вызывать API microsoft Managed Desktop с собственным удостоверением, необходимо зарегистрировать приложение для веб-платформы и скопировать следующие значения:

  • идентификатор приложения, назначенный порталом регистрации Azure;
  • секрет клиента (приложения) — пароль или пара из открытого и закрытого ключей (сертификат);
  • URL-адрес перенаправления, с помощью которого служба будет получать ответы с маркерами;

Инструкции по настройке приложения на портале Azure см. в статье Регистрация приложения.

С помощью потока предоставления учетных данных клиента OAuth 2.0 приложение выполняет проверку подлинности непосредственно в конечной точке платформа удостоверений Майкрософт с помощью идентификатора приложения, назначенного Microsoft Entra ID, и секрета клиента, созданного с помощью портала.

Настройка разрешений

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

  1. На странице разрешений API приложения выберите Добавить разрешения > API API, которые используются >в моей организации, введите Интерфейсы >API современных рабочих клиентов, выберите Современные API-интерфейсы клиента на рабочем месте.
  2. Выберите Делегированные разрешения > MWaaSDevice.Read, а затем выберите Добавить разрешения. Страница
  3. Чтобы настроить дополнительные делегированные разрешения для приложения на портале регистрации приложений Azure, на странице разрешений API приложения выберите Добавить разрешение >, выберите Microsoft Graph.
  4. Выберите Делегированные разрешения, >выберите offline_access и openid, а затем выберите Добавить разрешения. Вторая страница

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

В потоке предоставления учетных данных клиента OAuth 2.0 вы используете идентификатор приложения и секрет клиента, сохраненные во время регистрации приложения, чтобы запросить маркер доступа непосредственно из конечной точки /token платформы удостоверений Майкрософт.

Первым шагом к получению маркера доступа для потока кода авторизации OAuth 2.0 является перенаправление пользователя в конечную точку платформа удостоверений Майкрософт/authorize. Microsoft Entra ID войдет в систему пользователя и запросит его согласие на разрешения, запрашиваемые приложением. В потоке предоставления кода авторизации после получения согласия Microsoft Entra ID вернет приложению объект authorization_code , который он может активировать в конечной точке платформа удостоверений Майкрософт/token для маркера доступа.

Запрос авторизации

В потоке предоставления учетных данных клиента OAuth 2.0 вы используете идентификатор приложения и секрет клиента, сохраненные во время регистрации приложения, чтобы запросить маркер доступа непосредственно из конечной точки /token платформы удостоверений Майкрософт.

https://login.microsoftonline.com/{tenantId}/oauth2/authorize
Параметр Условие Описание
tenantId Обязательный Microsoft Entra ID клиента.
client_id Обязательный Идентификатор приложения, назначенный при регистрации приложения.
Scope Обязательный Должен быть включен: openid offline_access https://mwaas-services-customerapi-prod.azurewebsites.net/.default
grant_type Обязательный Должно быть задано значение client_credential.
response_type Обязательный Должен быть кодом.
redirect_uri Рекомендовано Объект redirect_uri приложения, в котором приложение может отправлять и получать ответы на проверку подлинности. Он должен точно соответствовать одному из redirect_uris зарегистрированных на портале регистрации приложений.

Отклик на авторизацию

Если пользователь соглашается с разрешениями, запрошенными приложением, ответ будет содержать код авторизации в параметре code.

Запрос на получение маркера

Если пользователь соглашается с разрешениями, запрошенными приложением, ответ будет содержать код авторизации в параметре code.

https://login.microsoftonline.com/{tenantId}/oauth2/token
Параметр Условие Описание
tenantId Обязательный Microsoft Entra ID клиента.
client_id Обязательный Идентификатор приложения, назначенный при регистрации приложения.
Scope Обязательный Необходимое значение — https://mwaas-services-customerapi-prod.azurewebsites.net/.default.
client_secret Обязательный Секрет клиента, созданный для приложения на портале регистрации приложений.
grant_type Обязательный Должно быть задано значение authorization_code.
Код Обязательный Код авторизации, полученный в рамках запроса авторизации.

Ответ с маркером

Успешный ответ JSON выглядит следующим образом:

{
    "token_type": "Bearer",
    "expires_in": "3599",
    "access_token": "access_token"
}
Параметр Описание
access_token Запрошенный маркер доступа. Приложение может использовать этот маркер в вызовах API.
token_type Должен быть носителем.
expires_in Срок действия маркера доступа (в секундах).

Использование маркера для доступа к API microsoft Managed Desktop

  1. Выберите API, который вы хотите использовать.
  2. Задайте заголовок авторизации в HTTP-запросе, отправляемом в "Bearer {token}" (Bearer — это схема авторизации).