Невозможно получить данные с использованием конечных точек API RoleManagement в Azure Graph-API - PullRequest
1 голос
/ 06 ноября 2019

Я пытаюсь использовать 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" упомянутых вызовов

1 Ответ

0 голосов
/ 07 ноября 2019

Разрешение вашего приложения правильное, Directory.ReadWrite.All разрешение приложения достаточно. Я также проверяю ваш код, он отлично работает.

Убедитесь, что _resAzureGraphAPI в вашем коде - https://graph.microsoft.com (просто подтвердите это еще раз, я знаю, что если это не так, вы не сможете вызвать API в вашем Note). Я могу просто воспроизвести вашу проблему с ошибкой, например, https://graph.windows.net.

Если _resAzureGraphAPI верен, расшифруйте ваш токен в https://jwt.io/,, посмотрите, что он такой же, как показано ниже.

enter image description here

...