2017-01-26 2 views
0

Я пытаюсь вызвать Azure Ad Graph API из моего typescript кода, но я получаю сообщение об ошибке: UnauthorizedAjax получить Request возвращает «Несанкционированное» для Azure Graph API Ad

lavaNET.SharePointREST.getJsonWithoutSite(this, "https://graph.windows.net/lavanet.dk/users?api-version=1.6", (tmplData: any, tmplTextStatus: string, tmplXHR: JQueryXHR) => { 
    console.log(tmplData) 
}); 

export function getJsonWithoutSite(context: any, url: string, success: SuccessCallback, failure?: ErrorCallback) { 

    $.ajax({ 
     method: 'GET', 
     context: context, 
     headers: { 
      'Authorization': 'Bearer zc21eb27-760b-4b46-828e-xxxxxxxxxxxxx', 
      'Content-Type': 'application/x-www-form-urlencoded' 
     }, 
     url: url, 
     dataType: 'json', 
     accepts: { json: 'application/json; odata=verbose' }, 
     success: success, 
     error: failure || function (jqXHR, textStatus, errorThrown) { alert('Error: ' + errorThrown); } 
    }); 
} 

Может кто-то момент, почему я могу Получать данные из объявления?

Update Является ли это то, что мне нужно или я совершенно неправильно: enter image description here

Update В ответ на Gary Liu - MSFT, я получаю эти ключи от HES кода: enter image description here

Является ли мой Ajax правильно и что Я должен использовать ключ?

+0

Поскольку в заголовках нет токена доступа, просто «носитель»? – juunas

+0

Кажется, я не могу найти токен. Я провожу весь день, читая руководства, которые я могу найти, но не могу найти нигде, я могу получить токен, у вас есть идея или ссылка? –

+0

Обновленный вопрос –

ответ

1

Вы создали токен доступа и задаете его в заголовке Authorization.

Нам необходимо вручную выполнить команду OAuth 2.0 authorization flow, чтобы реализовать функциональные возможности для получения токена доступа от Azure AD в нашем приложении.

Также вы можете использовать ADAL SDK для удобства использования этой функции в своем приложении. Однако в настоящее время такой ADAL для ts не существует. Вы можете попытаться использовать ADAL for js для торрента доступа, хранить его в сеансе хранения или локального хранилища в клиентских браузерах. И используйте токен в ваших ts-скриптах.

Вот sample для использования ADAL для js в простом javascript.

+0

Спасибо за ваш ответ Гэри, но я все еще получаю несанкционированный доступ, когда я пытаюсь использовать некоторые из токенов, которые я получаю от вашего кода. Я обновил свой квест, и мне бы это понравилось, вы бы прочитали последний раздел обновлений –

+0

в соответствии с вашим последним захватом, кажется, что вы успешно приобрели токен доступа. Однако, согласно вашему фрагменту кода, вы, возможно, использовали неправильный токен. Правильный токен доступа должен быть JWT, который похож на 'eyJxxx.eyJyyy.eyJzzzz'. Вы можете попытаться использовать 'getCachedToken()' в SDK, см. Исходный код на странице https://github.com/AzureAD/azure-activedirectory-library-for-js/blob/dev/lib/adal.js#L304 –