Повторное использование токена доступа на протяжении ASP. NET основного приложения (через DI) - PullRequest
0 голосов
/ 17 июня 2020

У меня есть приложение ASP. NET Core, которое я использую OID C (Microsoft Azure AD) для аутентификации пользователей в моем приложении. Я добавил массу API-интерфейсов в зарегистрированное приложение в Azure AD, включая Dynamics. Как я могу получить доступ к токену доступа в моем промежуточном программном обеспечении? Я создал класс с единственной целью - общаться с Dynamics и хотел бы повторно использовать токен доступа, созданный во время аутентификации, в моем приложении. Как и откуда мне его взять? Я пробовал всех обычных подозреваемых, таких как:

var accessToken = _httpContextAccessor.HttpContext.Request.Headers[HeaderNames.Authorization].ToString(); // null

и

var accessToken = _httpContextAccessor.HttpContext.GetTokenAsync("access_token").Result; // null

Есть предложения?

1 Ответ

0 голосов
/ 27 июня 2020

Чтобы получить токен доступа для вызова Dynamics API в контексте аутентифицированного пользователя, приложение должно получить токен доступа с помощью потока OBO. В MSAL. NET есть способ сделать это.

string accessToken = await _tokenAcquisition.GetAccessTokenForUserAsync(scopes);

Вы можете сослаться на этот ASP. NET Core Sample и имеет аналогичный сценарий, который вы пытаетесь достичь .

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...