Я пытаюсь использовать Azure Graph API для извлечения пользователей с определенной ролью. Приведенный ниже фрагмент кода показывает, как я сгенерировал authToken
AuthenticationContext authenticationContext = new AuthenticationContext(_authString, false); ClientCredential clientCred = new ClientCredential(_clientId, _clientSecret); AuthenticationResult authenticationResult; if (_authenticationResult == null || true == CanAcquireToken) { authenticationResult = authenticationContext.AcquireTokenAsync(_resAzureGraphAPI, clientCred).GetAwaiter().GetResult(); _authenticationResult = authenticationResult; } return _authenticationResult.AccessToken;
Снимок списка разрешений, которые API-интерфейс Graph имеет для моего приложения: Разрешения GraphAPI для приложения
Я сделалмое чтение из https://docs.microsoft.com/en-us/graph/api/rbacapplication-list-roleassignments?view=graph-rest-beta&tabs=http, чтобы понять конечную точку API и требуемый набор разрешений для API Graph в соответствующей appRegistration.
Я предоставил графическому API требуемый набор разрешений для приложения, котороена рассмотрении. Тем не менее, запрос API к
https://graph.microsoft.com/{{beta}}/roleManagement/directory/roleAssignments?$filter=roleDefinitionId eq '{{roleDefnId-Guid}}'
всегда продолжает сбой с подробностями ошибки
Ошибка проверки токена доступа. Недопустимая аудитория
Примечание. Сгенерированный токен авторизации успешно извлекает информацию из "https://docs.microsoft.com/en-us/graph/api/approleassignment-get?view=graph-rest-beta&tabs=http" упомянутых вызовов
Разрешение вашего приложения правильное, Directory.ReadWrite.All разрешение приложения достаточно. Я также проверяю ваш код, он отлично работает.
Directory.ReadWrite.All
Убедитесь, что _resAzureGraphAPI в вашем коде - https://graph.microsoft.com (просто подтвердите это еще раз, я знаю, что если это не так, вы не сможете вызвать API в вашем Note). Я могу просто воспроизвести вашу проблему с ошибкой, например, https://graph.windows.net.
_resAzureGraphAPI
https://graph.microsoft.com
Note
https://graph.windows.net
Если _resAzureGraphAPI верен, расшифруйте ваш токен в https://jwt.io/,, посмотрите, что он такой же, как показано ниже.