AcquireToken (строковый ресурс, строка clientId, UserCredential userCredential) не работает для проверки подлинности Azure - PullRequest
1 голос
/ 20 мая 2019

Использование Microsoft.IdentityModel.Clients.ActiveDirectory (2.22.302111727) Я пытаюсь получить токен доступа и токен обновления через ADAL AcquireToken (resourceUri, новый ClientCredential (clientId, clientSecret), но я могу получить единственный доступтолько токен, но когда я использую то же приложение с AcquireToken (resourceUri, clientId, userCredential) и передаю имя пользователя и пароль в качестве userCredentials, тогда я могу получить как доступ, так и токен обновления.

string resourceUri = "https://graph.microsoft.com";
string clientId = "xxxxxxxxxxxxxxxxxxxxxxxxxxxx";
string clientSecret = "xxxxxxxxxxxxxxxxxxxxxxxx";


 AuthenticationResult token = authContext.AcquireToken(resourceUri, new 
ClientCredential(clientId,clientSecret));

string resourceUri = "https://graph.microsoft.com";
string clientId = "xxxxxxxxxxxxxxxxxxxxxxxxxxxx";
string clientSecret = "xxxxxxxxxxxxxxxxxxxxxxxx";


AuthenticationResult token = authContext.AcquireToken(resourceUri, new 
ClientCredential(clientId,clientSecret));

Я также пытался использовать AcquireToken (clientId, resourceUri, new Uri (redirectUri)), но он выдает ошибку «AADSTS7000218: тело запроса должно содержать следующий параметр:« client_assertion »или« client_secret »», и я пробовал AcquireToken (resourceUri, clientId, новый Uri (redirectUri), PromptBehavior.RefreshSession, новый UserIdentifier («xxxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxx», UserIdentifierType.UniqueId)), и он выдает мне ошибку «AADSTS650057: клиент запрашивал неверный.на отдыхurce, который не указан в запрошенных разрешениях при регистрации клиентского приложения.Идентификатор клиентского приложения: 00000003-0000-0000-c000-000000000000 (Microsoft Graph). "Пожалуйста, объясните точное значение ресурса, которое здесь отсутствует в ошибке AADSTS650057.

1 Ответ

1 голос
/ 20 мая 2019

Возможно, вы столкнулись с несколькими различными ошибками.Предоставление учетных данных клиента OAuth2 не возвращает токены обновления ( введите описание ссылки здесь ), поскольку вы можете получить новый токен с существующими учетными данными.Запросы с учетными данными пользователя возвращают токены обновления, так как вы можете обновить токен доступа без необходимости запрашивать учетные данные у пользователя.

AADSTS650057, скорее всего, вызвано тем, что ваше приложение зарегистрировано в AAD без разрешения на вызов MSГрафик.Приложение должно иметь либо разрешение приложения (при использовании учетных данных клиента), либо делегированное разрешение (при использовании прав пользователя) для получения токена для этого ресурса.

...