JWT

2017-11-21 14 views
0

を使用してMicrosoft APIのトークンを取得this docを読む場合は、Application Registration Portalを使用してアプリケーションを登録する必要があります。
はまた、this docによると、あなたはgenerate the JWTするために、スコープパラメータとAUDパラメータのtenant_idを指定するアプリケーションID URIを必要としています。
問題は次のとおりです。この情報はどこにありますか?JWT

私は成功せず、これらを使用してみました:ここに詳細について

scope : api://0adaa814-c4d4-4c09-ae8e-dd0535e9e931/.default 
aud : https://login.microsoftonline.com/mldijon.onmicrosoft.com/v2.0/oauth2/token 

トークンを取得しようとしているときに私が取得エラー:

AADSTS50059:いずれかが見つかりませんテナント識別情報を は、提供された資格情報を要求するか、暗示します。

そして、ここで私はそれを得るために作るPOSTリクエスト:

POST /common/oauth2/v2.0/token HTTP/1.1 
Host: login.microsoftonline.com 
Content-Type: application/x-www-form-urlencoded 
Cache-Control: no-cache 
Postman-Token: 888bf937-31b4-166b-4d8d-339cd05e21ea 

client_id=256e411c-bf42-4634-abaa-a7feafe6698a&scope=api%3A%2F%2F256e411c-bf42-4634-abaa-a7feafe6698a%2F.default&client_assertion_type=urn%3Aietf%3Aparams%3Aoauth%3Aclient-assertion-type%3Ajwt-bearer&client_assertion=eyJ4NXQiOiJKemdVM09ycWlqZVBFVjRGMlZLd3NFYW0rekk9IiwiYWxnIjoiUlMyNTYiLCJ0eXAiOiJKV1QifQ.eyJpc3MiOiIyNTZlNDExYy1iZjQyLTQ2MzQtYWJhYS1hN2ZlYWZlNjY5OGEiLCJhdWQiOiJodHRwczpcL1wvbG9naW4ubWljcm9zb2Z0b25saW5lLmNvbVwvbWxkaWpvbi5vbm1pY3Jvc29mdC5jb21cL29hdXRoMlwvdG9rZW4iLCJzdWIiOiIyNTZlNDExYy1iZjQyLTQ2MzQtYWJhYS1hN2ZlYWZlNjY5OGEiLCJleHAiOjE1MTEyNzI0MjYsImlhdCI6MTUxMTI2ODgyNiwibmJmIjoxNTExMjY4ODI2fQ.ZurlKZQ34FNPYLrAujzN6QOkZ9iufJMwVpkMU_gk53UOQqNk-Y_pFOf-OwwGRg9wCnfU46xZt2TiGj_3zLhHxsawg6VeI-tbt62onBiBfJCtTUXpedK23PLS0td7ss2oU7yziRmHDrGe3ZPmpMChnom2iLUNoZiZeAWgzdV47HGid7IJ8Je0fOglsvGvKLjRqC6Y5jJ2kaY6KDd8dhN4UgJjM-HoeGKYtNQ5dz9C8lPDD9_stejfkzDUtvCrFyOY9Cn5TmqZe-LxFW4i7imvriIQHRK1F30j7iWLDoB3aI9WN5Y0dTBl8_8bq83HE9fK5hWFmibt1zY4pclSGm8UNg&grant_type=client_credentials 
+0

ここで何をしようとしていますか?どのようなMicrosoft APIにアクセスしようとしていますか?実行中のエラーは、テナント固有のエンドポイントではなく「共通」を使用している可能性が高いためです。しかし、あなたの投稿の残りの部分は、あなたが正しいものから非常に遠く離れているように見えます。 –

+0

Office 365 APIにアクセスしようとしています。 テナントのエンドポイントについては、ドキュメントに記載されているものはありますか? – loicb

答えて

1

は、Microsoftグラフへのアクセストークンを取得するには、ここでの指示に従ってください。

https://developer.microsoft.com/en-us/graph/docs/concepts/auth_overview

// Line breaks for legibility only 

POST /common/oauth2/v2.0/token HTTP/1.1 
Host: https://login.microsoftonline.com 
Content-Type: application/x-www-form-urlencoded 

client_id=6731de76-14a6-49ae-97bc-6eba6914391e 
&scope=user.read%20mail.read 
&code=OAAABAAAAiL9Kn2Z27UubvWFPbm0gLWQJVzCTE9UkP3pSx1aXxUjq3n8b2JRLk4OxVXr... 
&redirect_uri=http%3A%2F%2Flocalhost%2Fmyapp%2F 
&grant_type=authorization_code 
&client_secret=JqQX2PNo9bpM0uEihUPzyrh // NOTE: Only required for web apps 

注いくつかのこと:aud値は、それが指定されていない場合https://graph.microsoft.comであることが示唆され

  • scopeの値は、Microsoft Graphによって定義されたpermissionsの1つ以上です。

上記のコードは、ユーザーサインイン専用のコードです。これは、このパターンを次のGet access without a user

:このトークンのURLで{tenant}ではなくcommonを持っていることを

// Line breaks are for legibility only. 

POST /{tenant}/oauth2/v2.0/token HTTP/1.1 
Host: login.microsoftonline.com 
Content-Type: application/x-www-form-urlencoded 

client_id=535fb089-9ff3-47b6-9bfb-4f1264799865 
&scope=https%3A%2F%2Fgraph.microsoft.com%2F.default 
&client_secret=qWgdYAmab0YSkuL1qKv5bPX 
&grant_type=client_credentials 

注ユーザーせずにアクセストークンを取得に関するセクションがあります。これは、ユーザーなしでトークンを取得するときに、アクセスしようとしているテナント・エンドポイントを指定する必要があるためです。ユーザーがいる場合は、テナントのエンドポイントを自動検出しようとします。これは共通エンドポイントの機能です。

これが問題を解決するかどうか教えてください。

+0

ありがとう、私は今トークンを得ることができます、キーはトークンのURLで一般的ではなく{テナント}を使用することでした。 – loicb

+0

今、私はAPI呼び出しをしようとすると401の例外があります。 私はhttps://outlook.office.com/api/v2を呼び出そうとしました。0/me/events(アプリケーションのアクセス許可を設定した後、Calendars.ReadとCalendars.ReadWrite) – loicb

+0

管理者の同意を再実行しましたか?新しいアクセス許可はあなたが再び同意する必要があることを意味します –