Я пытаюсь использовать NodeJs для доступа к некоторым сведениям о Azure AD. Я могу получить токен доступа OK, однако всякий раз, когда я пытаюсь вызвать что-либо с помощью Graph API (в данном случае это только список всех групп), он говорит, что у меня есть «Недостаточно привилегий для завершения операции».Права, необходимые для отображения групп ADA ADO
Я зашел в приложение в AD и добавил все разрешения (просто чтобы убедиться), и я все еще получаю эту ошибку. Я что-то пропустил? Вот мой код:
var msRestAzure = require('ms-rest-azure');
var graphRbacManagementClient = require('azure-graph');
var tenantId='';
// Enter your tenant ID here which can be found from your Azure AD URL
// Eg. https://manage.windowsazure.com/example.com#Workspaces/ActiveDirectoryExtension/Directory/<TenantId>/users
var clientId = ''
var clientSecret = ''
console.log('Starting');
msRestAzure.loginWithServicePrincipalSecret(clientId, clientSecret, tenantId, { tokenAudience: 'graph' }, function (err, credentials, subscriptions) {
if(err){
console.log('Could not get token', err)
}
console.log('Logged In');
var client = new graphRbacManagementClient(credentials, tenantId);
console.log("Client created");
client.groups.list({}, function(err, result){
if(err){
console.log('Could not list groups', err)
}
})
});
Обнаружена ошибка:
{
"statusCode": 403,
"request": {
"rawResponse": false,
"queryString": {
},
"method": "GET",
"headers": {
"x-ms-client-request-id": "2b0e7464-bf4f-41d3-8440-38797bf0d72b",
"accept-language": "en-US",
"Content-Type": "application/json; charset=utf-8"
},
"url": "https://graph.windows.net/5a677fc4-23da-4e7a-a0fa-75f2c53e9c90/groups?api-version=1.6",
"body": null
},
"response": {
"body": "{\"odata.error\":{\"code\":\"Authorization_RequestDenied\",\"message\":{\"lang\":\"en\",\"value\":\"Insufficient privileges to complete the operation.\"}}}",
"headers": {
"cache-control": "no-cache",
"pragma": "no-cache",
"content-type": "application/json;odata=minimalmetadata;streaming=true;charset=utf-8",
"expires": "-1",
"server": "Microsoft-IIS/8.5",
"ocp-aad-diagnostics-server-name": "F3xU7bkLCvTOf62bCyNdsiLFnuyfFODP68vB9RmoAS0=",
"request-id": "f8404560-e300-4cd1-8a4b-a6487b06f7a2",
"client-request-id": "97cd97fa-448f-44bb-87dc-7d48505e80db",
"x-ms-dirapi-data-contract-version": "1.6",
"ocp-aad-session-key": "REMOVED",
"x-content-type-options": "nosniff",
"dataserviceversion": "3.0;",
"strict-transport-security": "max-age=31536000; includeSubDomains",
"access-control-allow-origin": "*",
"x-aspnet-version": "4.0.30319",
"x-powered-by": "ASP.NET, ASP.NET",
"duration": "1097838",
"date": "Wed, 05 Oct 2016 14:10:41 GMT",
"connection": "close",
"content-length": "139"
},
"statusCode": 403
},
"body": {
"code": "Authorization_RequestDenied",
"message": "Insufficient privileges to complete the operation."
}
}
Для тестирования я добавил все разрешения на оба графика и лазурного AD к этому клиенту:
Можете ли вы разместить полное сообщение об ошибке (включая идентификатор корреляции и отметку времени)? Можете ли вы также опубликовать снимок экрана о разрешениях, которые вы настроили для своего приложения? –
Добавлено в полное сообщение об ошибке - не найти идентификатор корреляции в любом месте, как я могу его найти? – smuff
Вы проверили, работает ли то же самое за пределами функций Azure? Если нет, то вы можете упростить свой вопрос, удалив все ссылки на Azure Functions. –