У меня есть защищенный веб-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
Любая помощь будет принята с благодарностью.