2017-03-15 19 views
0

Azureサービス(Compute、Networkなど)へのREST API呼び出しを自動化するために、ユーザーとのやり取りなしにアクセストークンを取得したいと考えています。 In the documentationには、いくつかの認証シナリオがリストされています。私のユースケースに最も適したものは、「DaemonまたはServer Application to Web API」です。ユーザーの介入なしにAzure Active Directoryを認証する方法は?

私はinstructionsに続いてアクセストークンを要求しています。まず、Azure Active Directoryにアプリケーションを登録しました。次に、アプリケーションID(client_idパラメーター)に関連付けられたキー(client_secretパラメーター)を作成しました。また、App ID URI(リソースパラメータ)も取得しました。これらすべてのパラメータを使用して、Azure ADの/トークンエンドポイントへのPOSTリクエストを作成しました。しかし、次のエラーメッセージが表示されます。

{ 
    "code":"InvalidAuthenticationTokenAudience", 
    "message":"The access token has been obtained from wrong audience or resource 'https://solutionsmosaixsoft.onmicrosoft.com/<APP_ID_URI>'. It should exactly match (including forward slash) with one of the allowed audiences 'https://management.core.windows.net/','https://management.azure.com/'." 
} 

私は間違っていますか?リソースパラメータを間違った値に設定していますか?

答えて

0

resourceパラメータは、アプリケーションにトークンを取得する場所(アクセストークンが要求されているリソースの識別子)を示します。 Azure Service Management APIを呼び出すトークンを取得する場合は、リソースをhttps://management.core.windows.net/と設定できます。

編集:

あなたのc reated、あなたはクライアントIDまたはリソースWebAPIののアプリケーションID URI(Azureの管理ポータルでアズールADアプリケーションの設定]タブでそれらを検索)を使用することができます。

あなたは、コードサンプルのリンク下記を参照してください可能性:

https://docs.microsoft.com/en-us/azure/active-directory/develop/active-directory-code-samples

+0

(https://docs.microsoft.com/en-us/azure/active-directory /開発/アクティブ・ディレクトリ・プロトコル-OAuthのサービス・ツー・サービス#要求-アクセストークン)、それは資源のパラメータは言う: '受けたWebサービスのアプリケーションID URIを入力します。アプリケーションID URIを見つけるには、Azure管理ポータルでActive Directoryをクリックし、ディレクトリをクリックし、アプリケーションをクリックしてから「設定」をクリックします。 この情報は間違っていますか? –

+0

@GlebBilligは、私はあなたの質問を説明するための答えを編集した、それを確認してください。 –

0

あなたはトークンエンドポイントにPOSTリクエストを作成する必要があります。

リソースパラメータは、自分がアクセスするAPIのリソースURIでなければなりません。

  • のAzure ADグラフAPI:https://graph.windows.net/
  • MicrosoftグラフAPI:[このページ]でhttps://graph.microsoft.com/
関連する問題