access_token не требуется для неявного потока грантов?
Мы пытаемся интегрировать adal.js для доступа к EWS API, и наше приложение реализовано с использованием Angular 1.5.8. После успешного входа в систему он перенаправляет обратно на домашнюю страницу приложения с id_token. Согласно следующей ссылке от MS: https://docs.microsoft.com/en-us/azure/active-directory/develop/active-directory-v2-protocols-implicit мы предполагаем использовать access_token вместо id_token для общения с EWS API.
Теперь, когда вы зарегистрировали пользователя в своем одностраничном приложении, вы можете получить токены доступа для вызова веб-API, защищенных Azure AD, таких как Microsoft Graph.
Итак, мы пытаемся использовать adalAuthenticationService.acquireToken
с действительным clientId. Но полученный нами токен такой же, как id_token
, Что-то мы сделали не так?
// configure our routes
testApp.config(function($httpProvider, $locationProvider, $routeProvider, adalAuthenticationServiceProvider) {
$locationProvider.html5Mode({
enabled: true,
requireBase: false
}).hashPrefix('!');
$routeProvider
// route for the home page
.when('/', {
templateUrl : 'pages/home.html',
controller : 'mainController',
requireADLogin: true
})
adalAuthenticationServiceProvider.init({
// clientId is the identifier assigned to your app by Azure Active Directory.
clientId: "TEST_CLIENT_ID",
cacheLocation: 'localStorage', // optional cache location default is sessionStorage
}, $httpProvider);
});
// create the controller and inject Angular's $scope
testApp.controller('mainController', function($scope, adalAuthenticationService) {
// create a message to display in our view
$scope.message = 'Everyone come and see how good I look!';
$scope.getAccessToken = getAccessToken;
function getAccessToken() {
adalAuthenticationService.acquireToken('TEST_CLIENT_ID', (newToken) => {
console.log('Access token aquired: ' + newToken);
}, (error) => {
console.log('ERROR with token: ' + angular.toJson(error, true));
});
};
});
1 ответ
Код, похоже, не говорит acquireToken
вызовите, для какого ресурса он хочет получить токен. Вы устанавливаете это где-нибудь еще?
В противном случае вы должны добавить URL ресурса " https://outlook.office365.com/" в качестве параметра ресурса в acquireToken
вызов.