2017-01-20 8 views
4

Я использую V1, чтобы иметь токен из Microsoft REST API. (У нас есть офис 365 жильца и я успешно получить все ресурсы без каких-либо проблем, но не больше.InvalidAuthenticationToken - Ошибка синтаксического анализа CompactToken с кодом ошибки: -2147184105

clientId =8a67......de4b6 
clientSecret =J58k8....5EU= 
redirectUri =http://example.com... 
resourceUrl =https://graph.microsoft.com 
authority = https://login.microsoftonline.com/f02633....a603/oauth2/token 

https://login.microsoftonline.com/f0263...0be3/oauth2/authorize?client_id=8a6..b6&redirect_uri=http://example.com&response_type=code&scope=mail.read

Это дало мне фишку структурированную, как follows на JWT. Он говорит, что недействительная подпись, но не уверен, что это неправильно.

После того, как у меня есть маркер, я попытался следующий завиток вызов

curl -i https://graph.microsoft.com/v1.0/me/messages -H 'Content-Type: application/x-www-form-urlencoded' -H 'Authorization: Barer eyJ.[TOKEN]...UNa6nfw' 

Вместо сообщений, я получил следующее сообщение об ошибке:

HTTP/1.1 401 Unauthorized 
Content-Type: application/json; charset=utf-8Cl23 
Server: Microsoft-IIS/8.5 
request-id: af2390b1-a9b...5ab9 
client-request-id: af2390,....a615ab9 
x-ms-ags-diagnostic: {"ServerInfo":{"DataCenter":"West US","Slice":"SliceA","ScaleUnit":"000","Host":"AGSFE_IN_4","ADSiteName":"WST"}} 
X-Powered-By: ASP.NET 
Date: Thu, 19 Jan 2017 23:55:43 GMT 
Content-Length: 268 

{ 
    "error": { 
    "code": "InvalidAuthenticationToken", 
    "message": "CompactToken parsing failed with error code: -2147184105", 
    "innerError": { 
     "request-id": "af2390b1-...5ab9", 
     "date": "2017-01-19T23:55:44" 
    } 
    } 
} 

я смотрел на подобные вопросы на SO, но не смог найти какое-либо решение.

ответ

3

Во-первых, Barerauthorization header - это опечатка. Правильный параметр должен быть как authorization: bearer {access_token}.

Во-вторых, кажется, что вы смешивали с использованием конечной точки Azure V1.0 и конечной точки V2.0. Если вы разрабатывали с конечной точкой V1.0, какие приложения были защищены от порталов Azure, когда мы приобретаем токен доступа, нам нужно указать параметр ресурс вместо scope.

Параметр используется для конечной точки Azure V2.0, которым приложениям противостоят here.

И конечная точка авторизации для Azure AD любит ниже:

V1.0:

https://login.microsoftonline.com/{tenant}/oauth2/authorize 

V2.0:

https://login.microsoftonline.com/{tenant}/oauth2/v2.0/authorize? 

Более подробно о грантовой потока кода с Azure AD , вы можете ссылаться на следующие ссылки:

Authorize access to web applications using OAuth 2.0 and Azure Active Directory

v2.0 Protocols - OAuth 2.0 Authorization Code Flow

+0

Если вы остановитесь у залива, я могу купить вам кофе или взять пиво !! Наверное, я был измотан, чтобы не видеть «Баера». lol – WowBow

+0

Сюэ http://stackoverflow.com/questions/41818683/how-can-i-filter-emails-from-a-specific-email-address-on-office-365-api .. Последний вопрос здесь. Почти готово!! Благодарю. – WowBow

+0

Xue, я пытаюсь перенести приложение на v2, и вот проблема, с которой я столкнулся: http://stackoverflow.com/questions/42074320/office-365-v2-api-authorization-code-is-malformed-or- инвалид. Спасибо брат! – WowBow

 Смежные вопросы

  • Нет связанных вопросов^_^