API Microsoft Graph: Access-Control-Allow-Origin

Я пытаюсь интегрировать аутентификацию Microsoft Graph и доступ к sharepoint и User's Graph Profile & Pic. Я следил за их документом https://developer.microsoft.com/en-us/graph/docs/authorization/app_authorization
Я могу выполнить первый шаг Аутентифицировать пользователя и авторизовать приложение, но не Получить токен доступа . Я проверил это в Postman, могу получить ответ токена доступа. Точно так же я пытаюсь сделать это с помощью JQuery Ajax, но получаю

XMLHttpRequest не может загрузить https://login.microsoftonline.com/common/oauth2/token . На запрошенном ресурсе отсутствует заголовок Access-Control-Allow-Origin.

$.ajax({ type:"POST",headers: {
    'Content-Type':'application/x-www-form-urlencoded'
},
crossOrigin: true,url: "https://login.microsoftonline.com/common/oauth2/token",data:$.param({grant_type: "authorization_code",redirect_uri:"http://localhost:92",client_id:"8c907c91-1b21-4468-825e-116a4f663249",client_secret:"xxxxxxxxx+=",code:"AQABAAIAAABnfiG-mA6NTae7CdWW7QfdkHvUMGWjMMTjOGwaac7c-pFOjLqj98r37uhB1a1XqjnCL-nK5HcvRIYLhLSUQJZeY9ybZLgWfSl4U0CNdZkwIvee_r6-hPC0Wts0ULDWzkg_nHWLHrquAjJ67T84vuIUv8525xTVdm1Ej07EPRttlske50jy1lruaLX0Wzdj72VnAQ0iRHB_VKwEA-1YB7VOt6qh9756XYkDUfzJMZTxTawT5PVQFyv2joy0TbUYljkyT8RgzdhgT6YV6Rum3cQZg3Amso-0-6umF_1ECfdjmXXxdkscAmsGJHZPrZ1HE8W9zhfsGKlc57QI8J3Qkz-Wfkw8lxcfpp84wHmKnA28jWrww7szXVjjsYmtNsRpSYIvq393QoUZnWN-t0D71510pVAYswr6R3_rR80SMrMvolIpoXeIvPDoOkLszgYEeNRkGAcjVYD5XS4aajyrWqCSUz3xzNt8Vb6x9QBCWxw9xAottQM5ZZIbWc9zrKmmPL8sqkEpJ7Z95QdJjgkFy0qT5c_GQwKNoAiF96iVhyLiULvjwlFYsV9d84QGnz_a5NIt6mMbhgJoY32snEJN7kMyK9uzTHdglkkl-9UgJNnpArN5D8hywaERMN4Fy7RZxnqx9Mt4UnnfK9-RnjvaIE6TIAA",resource:"https://graph.microsoft.com/"}), success: function(result){
    $("#div1").html(result);
},
error: function(){

    $("#div1").html("Error");
}});

Но в консоли я могу видеть ответ из метода публикации, потому что для проблемы «Acces-origin» я не мог получить ответ в моей части Ajax Success. Но в консоли я вижу ответ для метода POST


person Praveen R    schedule 28.04.2017    source источник


Ответы (1)


Обычные веб-страницы могут использовать объект XMLHttpRequest для отправки и получения данных с удаленных серверов, но они ограничены одной и той же политикой происхождения, поэтому браузер блокирует его, поскольку он обычно разрешает запрос в том же источнике по соображениям безопасности. Почтальон будет работать, потому что они не ограничены этой политикой.

Чтобы интегрировать AAD в javascript, мы предлагаем вам использовать azure-activedirectory-library-for -js, который представляет собой библиотеку в javascript для внешнего интерфейса, позволяющую легко интегрировать AAD с помощью неявный поток предоставления, он также имеет то преимущество, что устраняет любые требования для вызовов с перекрестным происхождением, которые необходимы, если приложение JavaScript требуется для связи с конечной точкой токена. Здесь обсуждается та же тема. и покажите больше о том, как использовать ADAL.JS, пожалуйста, обратитесь к нему.

person Nan Yu    schedule 01.05.2017
comment
Доступен ли какой-либо официальный компонент Adal для Angular 2? - person Praveen R; 03.05.2017
comment
@PraveenR, в настоящее время нет официального компонента Adal, доступного для Angular 2, пожалуйста, обратитесь к это обсуждение, но вы можете сослаться на упомянутый образец кода (github.com / sureshchahal / angular2-adal) в этом обсуждении. - person Nan Yu; 03.05.2017
comment
Могу ли я получить сведения о Sharepoint и Office Graph с помощью этого единственного токена? Сомневаюсь, как правило, для доступа к конкретному ресурсу мы должны использовать разные токены для каждого ресурса (согласно документу). как ресурс: xxxx.sharepoint.com - person Praveen R; 03.05.2017
comment
Да, вы можете получить токен доступа для [Microsoft Graph APi] (developer.microsoft.com/en -us / graph) и используйте этот токен для доступа к связанным ресурсам с помощью microsoft graph api. - person Nan Yu; 03.05.2017
comment
Microsoft Graph предоставляет несколько API-интерфейсов из Office 365 и других облачных сервисов Microsoft через единую конечную точку: graph.microsoft.com - person Nan Yu; 03.05.2017
comment
Собственно, я пробовал то же самое. Он аутентифицировал пользователя, но с использованием этого токена не удалось получить сведения о ресурсе, потому что сгенерированный токен не соответствует AD. сгенерированный токен предназначен для AD2.0. Я не был уверен, но позвольте мне попробовать еще раз. - person Praveen R; 03.05.2017
comment
Вам нужно проверить, является ли аудитория токена api графика (graph.microsoft.com), и у вас достаточно объема в токен для доступа к ресурсам o365. - person Nan Yu; 03.05.2017
comment
Давайте продолжим это обсуждение в чате. - person Praveen R; 03.05.2017