Примечание.
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
Применяется к:
Арендаторы рабочей области (дополнительные сведения)
Теперь у вас есть токен и вы можете вызвать защищенный веб-API.
Вызов веб-API
Свойства объекта AuthenticationResult в MSAL.NET
Методы получения токенов возвращают объект AuthenticationResult. Для асинхронных методов возвращается Task<AuthenticationResult>.
MSAL.NET AuthenticationResult предоставляет следующие параметры:
-
AccessTokenдля веб-API для доступа к ресурсам. Это строковый параметр, который обычно представляет собой маркер JWT в кодировке Base-64. Клиент никогда не должен считывать содержимое маркера доступа. Стабильность формата не гарантируется, а он может быть зашифрован для ресурса. Написание кода, который зависит от содержимого маркера доступа на стороне клиента, является одним из основных источников для ошибок и сбоев в логике клиента. Дополнительные сведения см. в разделе Маркеры доступа. -
IdToken— предназначается для пользователя. Этот параметр является зашифрованным маркером JWT. Дополнительные сведения см. в разделе Маркеры идентификации. -
ExpiresOn— сообщает дату и время истечения срока действия маркера. -
TenantId— содержит сведения о клиенте, в котором был найден пользователь. Для гостевых пользователей в сценариях Microsoft Entra B2B идентификатор клиента является гостевым клиентом, а не уникальным клиентом. При передаче маркера для пользователя в объектеAuthenticationResultтакже содержится информация об этом пользователе. Для потоков конфиденциальных клиентов, где токены запрашиваются для приложения без участия пользователя, информация о пользователе будет отсутствовать. -
Scopesдля которого был выдан токен. - Уникальный идентификатор пользователя.
IAccount
В MSAL.NET понятие учетной записи определяется через интерфейс IAccount. Такое радикальное изменение обеспечивает правильную семантику. Один и тот же пользователь может иметь несколько учетных записей в разных каталогах Microsoft Entra. Также MSAL.NET предоставляет более подробные сведения в сценариях с гостевым входом благодаря добавлению информации о домашней учетной записи.
Структура интерфейса IAccount представлена на следующей схеме.
Класс AccountId определяет учетную запись в конкретном клиенте с помощью свойств, приведенных в следующей таблице.
| Свойство | Описание |
|---|---|
TenantId |
Строковое представление идентификатора GUID, которое является идентификатором клиента, где находится учетная запись. |
ObjectId |
Строковое представление идентификатора GUID, являющееся идентификатором пользователя, которому принадлежит учетная запись в клиенте. |
Identifier |
Уникальный идентификатор для учетной записи.
Identifier является объединением ObjectId и TenantId, разделенных запятой. Они не закодированы с помощью Base 64. |
Интерфейс IAccount предоставляет сведения об одной учетной записи. Один и тот же пользователь может быть в разных арендаторах, это означает, что у пользователя может быть несколько учетных записей. Члены показаны в следующей таблице.
| Свойство | Описание |
|---|---|
Username |
Строка с отображаемым значением в формате UserPrincipalName (UPN), например [email protected]. Эта строка может иметь значение NULL, в отличие от свойств HomeAccountId и HomeAccountId.Identifier, у которых не может быть значения NULL. Это свойство заменяет свойство DisplayableId в IUser из предыдущих версий MSAL.NET. |
Environment |
Строка с поставщиком удостоверений для этой учетной записи, например login.microsoftonline.com. Это свойство заменяет свойство IdentityProvider у IUser, за исключением того, что свойство IdentityProvider также содержало информацию об арендаторе в дополнение к данным об облачной среде. Здесь значение состоит только из хоста. |
HomeAccountId |
Идентификатор домашней учетной записи пользователя. Это свойство однозначно идентифицирует пользователя в клиентах Microsoft Entra. |
Используйте маркер для вызова защищенного API
После того как AuthenticationResult возвращается MSAL в переменную result, ее нужно добавить в HTTP-заголовок авторизации перед тем, как делать вызов для доступа к защищенному веб-API.
httpClient = new HttpClient();
httpClient.DefaultRequestHeaders.Authorization = new AuthenticationHeaderValue("Bearer", result.AccessToken);
// Call the web API.
HttpResponseMessage response = await _httpClient.GetAsync(apiUri);
...
Следующие шаги
Узнайте больше, создавая одностраничное приложение на React, которое выполняет вход пользователей, в следующей серии руководств.
Изучение платформы удостоверений Microsoft с настольными примерами кода