1

Я работаю над приложением AngularJS, которое аутентифицирует пользователя с помощью Azure AD с помощью adalJS. Я пытаюсь получить доступ к зарегистрированным в пользователя данным пользователя из AD с помощью API-интерфейса Graph REST. Но я получаю ошибку 401 (Несанкционированный: Отсутствующий или искаженный токен доступа). Ниже мой код.Доступ к API-интерфейсу Azure Graph REST с использованием adalJS

adalAuthenticationService.acquireToken("https://graph.windows.net/").then(function (token) { 
     console.log(token); 

     var req = { 
      method: 'GET', 
      url: 'https://graph.windows.net/me?api-version=1.5', 
      headers: { 
       'Authorization': 'Bearer ' + token 
      } 
     }; 
     $http(req).then(function (response) { 
      console.log(response); 
     }, function (response) { 
      console.log(response); 
     }); 
    }); 

Я создал приложение в AAD и настроил разрешения для Azure AD. Может ли кто-нибудь уточнить эту ошибку? Является ли токен, который я передаю не токен доступа?

+0

Я борется с этой точной проблемой в течение большей части сегодняшнего дня, но безрезультатно. Интересно (и, в моих целях, в достаточной мере), мне удалось получить маркерную серверную часть от аутентификации, которая произошла на стороне клиента, и проксировать мой запрос API через мой сервер. Это функционально эквивалентно, хотя на сервере есть дополнительная нагрузка, а производительность - от двух запросов. –

ответ

0

Я выяснил ответ довольно когда-нибудь. Указав конечную точку API Graph при инициализации adalJS (в свойстве endpoints), он приобретал для него токен.

var endpoints = { 
     'https://graph.windows.net/': '00000002-0000-0000-c000-000000000000' 
    }; 

    adalProvider.init({ 
     'instance':'https://login.microsoftonline.com/', 
     'tenant': 'microsoft.onmicrosoft.com', 
     'clientId': '<client-id>', 

     'endpoints': endpoints 

    },$httpProvider); 
0

Вам нужно получить токен специально для графика. Пример того, как назвать API-интерфейс сложного эфира в ADAL js, см. https://github.com/AzureADSamples/SinglePageApp-WebAPI-AngularJS-DotNet

+0

Я прошел этот пример, но мне это не помогает. Можете ли вы рассказать мне, как я могу получить токен доступа для Graph API? – Sridhar

+0

Я действительно получил его сейчас, после того, как конечная точка Graph API указана как одно из свойств конечной точки при инициализации adal. – Sridhar