2017-05-05 3 views
1

マイクロソフトの散在したドキュメントで少し混乱しています。Keyvault認証(REST API)

私は私が今持っていることを意味する、アプリケーション(https://docs.microsoft.com/en-us/azure/azure-resource-manager/resource-group-create-service-principal-portal)を作成しました:私はアズールでKeyVaultに入ってきた

  • アプリケーションID
  • キー
  • DirectoryのID

ポータル、および私はアプリケーションにアクセス許可を与えました。

テストの目的で、私はCURL経由でテストを実行しようとしています。私はこのために使用しています基礎だから

次のMicrosoftページ(https://docs.microsoft.com/en-us/azure/active-directory/develop/active-directory-protocols-oauth-service-to-service#request-an-access-tokenhttps://docs.microsoft.com/en-us/rest/api/#create-the-request)で、私が最初にすることは、次の呼び出しによってトークンを取得することです:

curl -d "grant_type=client_credentials&client_id=<removed_for_security>&client_secret=<removed_for_security>" https://login.microsoftonline.com/<removed_for_security>/oauth2/token 

これがトークンを返します。

curl -H "Authorization: Bearer <removed_for_security>” -vv https://<removed_for_security>.vault.azure.net/secrets/<removed_for_security>/<removed_for_security> 

私はちょうど「HTTP/1.1 401不正な」

答えて

2

オクラホマので、私は、要求があることを確認することができ、バック何のコンテンツを取得していない:

私は、次のようにそのトークンを使用(しよう)ほとんどの場合、APIバージョンを忘れてしまっていますが、問題はAPIバージョンではありません(それはあなたにはわかります)。

https://xxx.vault.azure.net/secrets/xxx/?api-version=2015-06-01 

このURLが機能するので、トークンは正しくありません。最も簡単な方法は、JWT.ioに移動してそこにトークンを貼り付けて、キーボルトが期待する内容と一致するかどうかを確認することです。おそらくあなたは不一致があります。

+0

私はAPIのバージョンを忘れてしまった。 –

+0

奇妙なことに、私はAPIバージョンを削除したとき、APIバージョンを指定するのを忘れていたことを具体的に教えてくれました。それが@LittleCode – 4c74356b41

0

トークンを要求しているリソースを指定する必要があります。

curl -d "grant_type=client_credentials&client_id=<removed_for_security>&client_secret=<removed_for_security>&resource=https://vault.azure.net" https://login.microsoftonline.com/<removed_for_security>/oauth2/token 

さらに、apiバージョンを追加します。