Как получить информацию о пользователе на основе токена доступа - PullRequest
0 голосов
/ 21 января 2019

У меня есть защищенный веб-API Azure AD, который я аутентифицирую, используя токен на предъявителя. Регистрация приложения на Azure AD и все было сделано. Я могу получить доступ к защищенному API с помощью токена на предъявителя и получить ожидаемый ответ.

Проблема, с которой я сталкиваюсь, заключается в том, что я понятия не имею, как получить информацию о пользователе, где я могу указать название организации, к которой принадлежит пользователь. Я узнал, что есть Microsoft Graph API, где я могу получить эту информацию, но для доступа к ней мне нужно создать еще один токен на предъявителя, и только тогда я могу получить и получить детали из MS Graph API. Я хочу получить доступ к графику API, используя тот же токен на предъявителя, потому что я не хочу, чтобы мой сервер проходил повторную аутентификацию и запрашивал учетные данные пользователя. Это возможно?

код, который я использую для получения токена доступа:

AuthenticationContext authContext = new AuthenticationContext(
"https://login.microsoftonline.com/<My Tenant Id>");

AuthenticationResult token = authContext.AcquireTokenAsync(<secured web 
api resource id>,<clientId Id>, new Uri(redirectUri),new 
PlatformParameters(PromptBehavior.Always)).Result;

HttpClient client = new HttpClient();
client.DefaultRequestHeaders.Authorization = new 
AuthenticationHeaderValue(token.AccessTokenType, token.AccessToken);

HttpResponseMessage httpResponse = client.GetAsync("Secured Web API 
call").Result;

Это хорошо работает.

После нескольких строк кода, при попытке получить доступ к API графа Microsoft, выдается код ошибки No Authorized.

URL API Grpah: "https://graph.microsoft.com/v1.0/organization

Любая помощь будет принята с благодарностью.

1 Ответ

0 голосов
/ 21 января 2019

Я хочу получить доступ к графику API, используя тот же токен на предъявителя, потому что я не хочу, чтобы мой сервер проходил повторную аутентификацию и запрашивал учетные данные пользователя. Возможно ли это?

Нет. Токен работает только для одного API. Однако вам не нужно повторно проходить аутентификацию. Вы можете получить токен для MS Graph API, используя токен обновления, поток грантов от имени (токен доступа для другого в API), или вы можете получить его через неявный поток грантов (если в клиентском JS-приложении).

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