В моем сценарии пользователь предоставляет разрешение для моего приложения AAD время от времени читать их электронную почту в серверном процессе с использованием API-интерфейса Microsoft Graph. В то время, когда пользователь предоставляет разрешение, я получаю токен, используя authContext.GetAuthorizationRequestURL и authContext.AcquireTokenByAuthorizationCodeAsync. После этого, когда мне нужен маркер доступа, я выполнить следующее:Как правильно обновить токен аутентификации ADAL для вызова сервера на сервер
TokenCache tokenCache; // deserialized
AuthenticationContext authContext = CreateAuthContext(authority, tokenCache);
AuthenticationResult authResult = await authContext.AcquireTokenAsync(
resource,
new ClientCredential(clientId, clientKey));
return authResult.AccessToken;
К сожалению, требующий API, MS Graph с результирующим маркером доступом возвращает 403 (Запрещено).
У меня создается впечатление, что я не нахожу правильный аромат AcquireToken *() с правильной информацией. Кто-нибудь знаком с этим сценарием?
Прохладный, спасибо. Я выяснил, что такое токен. Я закончил работу над своим кодом, создав и передав также UserAssertion, состоящий из: предыдущего токена доступа, имени пользователя и загадочной строки: '' "urn: ietf: params: oauth: grant-type: jwt-bearer ". Кажется, это работает. Можете ли вы прокомментировать обоснованность этого решения? – Charles
Решение звучит хорошо для меня. –
Это вообще не работало для меня. В настоящее время у меня, похоже, есть решение, которое работает с использованием AcquireTokenUsingRefreshToken(). – Charles