2017-06-09 8 views
0


Active Directoryは - アクセストークンの確認

私は自分のアプリケーションでMicrosoftのAzure Active Directoryを統合しようとしています、
は、ここで私は、これまで達成することができていて、私は立ち往生午前ところ何だ -


https://login.microsoftonline.com/{{tenant-id}}/oauth2/authorize? 
response_type=code%20id_token 
&scope=openid 
&response_mode=query 
&redirect_uri=http://localhost:8081/dashboard.html 
&client_id={{client-id}} 
&nonce={{nonce}} 
&site_id={{site_id}} 

私はABされている - 1
私のURIは、認証コードを要求しますAKE私が正常にできていますこれらを使用して

a) id_token 
b) code 
c) session_state 


2.
- ルは、ユーザーを認証し、正常REDIRECT_URIページに認証されたユーザーをリダイレクトし、
私のフロントエンドには成功し、リダイレクト後にADから3つの物事を受け取りましたマイクロソフトのエンドポイントへのポスト呼び出し、アクセストークンを受信するために、次のコールの詳細です -

Endpoint - https://login.microsoftonline.com/{{tenant-id-here}}/oauth2/token 
Type - Post 
Headers - Content-Type 
Body(application/x-www-form-urlencoded) - grant_type, code, client_id, redirect_uri, client_secret, resource 


3. マイクロソフトエンドポイントは、以下のデータで応答 - OAuthのプロセスごとに、私のフロントエンドは、すべてのAPI呼び出しにaccess_tokenはを渡すよう

a) token_type 
b) expires_in 
c) ext_expires_in 
d) expires_on 
e) access_token 
f) refresh_token 
g) id_token 


4.
さて、このaccess_tokenは、いくつかのマイクロソフトのエンドポイントを押すことで確認することが想定され、 404で失敗した場合
この要求 -

Endpoint - https://graph.microsoft.com/v1.0/me/messages 
Type - Get 
Header - Authorization 
Header value - Bearer {{Access-token}} 
Parameters - client_id 

エラーメッセージ - どの私は、次の1であると信じて

enter image description here

誰かが私を理解するのに役立ちます -
1.私はaccess_tokenはを確認するために、正しいエンドポイントを打つだろうか?
2.はいの場合、私は間違って何をしていますか?
3.正しいエンドポイントは何ですか?リクエストの詳細はどうすればよいですか?ここで

私のリファレンスドキュメントされている -
1. https://docs.microsoft.com/en-us/azure/active-directory/develop/active-directory-v2-protocols-oauth-code
2. https://docs.microsoft.com/en-us/azure/active-directory/develop/active-directory-protocols-oauth-code

は、同様に次のエンドポイントをヒットしようとしました -

Endpoint - login.microsoftonline.com/{{tenant-id}}/oauth2/authorize 
Type - Post 
Header - Authorization, Content-Type 
Header value for Authorization- Bearer {{Access-token}} 
Header value for Content-Type- application/x-www-form-urlencoded 
Body(application/x-www-form-urlencoded) - client_id 

答えて

0

をリソースパラメータを指定してみてください。

これは任意であると言われていますが、それはここのすべてのサンプルに含まれています:https://docs.microsoft.com/en-us/azure/active-directory/develop/active-directory-protocols-oauth-code

https://login.microsoftonline.com/{tenant-id}/oauth2/tokenからトークンを取得するときは、resourceパラメータを含めて、その値をhttps://graph.microsoft.comに設定して、Microsoft Graph APIでトークンを使用するようにしてください。

あなたのスクリーンショットでは、ヘッダーにアクセストークンを渡していないとも言えます。それは認証コードやリフレッシュトークンのようです。アクセストークンを渡す必要があります。

+0

私はこの値が「https://graph.microsoft.com」というリソースを追加しました。今回受け取ったaccess_tokenはJWTのように見えますが、これをグラフAPIに渡しました。今度は404を取得します: ( –

+1

これは不正なものではありません:)どのURLにアクセスしようとしていますか? – juunas

+0

私はgraph.microsoft.com/v1.0/me/messages?client_id=myClientIdを呼び出し、Header Authorization、Authorization-Bearer {{Access-token}}のヘッダ値、自分のリソースがサービスであるべきか.contoso.comではなくhttps://graph.microsoft.com? –

関連する問題