2017-09-07 4 views
0

リソースまたはスコープがhttps://graph.microsoft.com/のAzure ADのアプリケーション専用トークンを取得することはできますか?リソースまたはスコープがhttps://graph.microsoft.com/のAzure ADのアプリケーション専用トークンを取得することはできますか?

私は記事Service to service calls using client credentials (shared secret or certificate)を読んでいますが、アクセストークンを取得できません。「テナントxxxのリソースhttps://graph.microsoft.com/が見つかりません」というエラーが表示されます。

resourceからscopeに変更するとアクセストークンを取得できますが、このトークンを使用してWeb APIを取得することはできません。私は401の不正なエラーがあります。しかし、私はグラフapiのためのアプリケーションと委任された権限を含むすべての権限を与えました。あなたはAzureのポータルでのAzure ADのアプリケーションを登録し、クライアントの資格情報の流れを使用して、MicrosoftグラフAPIのトークンを取得したい場合は

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

grant_type=client_credentials&client_id=625bc9f6-3bf6-4b6d-94ba-e97cf07a22de&client_secret=qkDwDJlDfig2IpeuUZYKH1Wb8q1V0ju6sILxQQqhJ+s=&resource=https%3A%2F%2Fservice.contoso.com%2F 
+0

あなたの呼び出しは正しいと思われますが、クライアントシークレットはURLエンコードする必要があります。 (リソースURIのように) – juunas

+1

ありがとう、私はなぜそれを発見した。私はライブラリを使ってこれを処理し、パラメータをエンコードしますが、もう一度エンコードします。私は私を削除し、それは動作します。 – albertxavier

答えて

0

、あなたが使用する必要がありますhttps%3A%2F%2Fgraph.microsoft.com%2F(URLエンコード)resourceとして、そして作ることを忘れないでくださいクライアントシークレットは、@ juunasによって提案されるようにURLエンコードされます。

Azure ADで保護されている独自のWeb APIのトークンを取得している場合は、apiアプリケーション用に登録されたApp ID URIをリソースとして使用できます。コードサンプルhereは参照用です。

関連する問題