2017-03-15 48 views
0

我希望獲得無需用戶交互的訪問令牌,以便將對REST API調用自動化到Azure服務(計算,網絡等)。 In the documentation,列出了幾種認證方案。最符合我的用例的是「守護進程或服務器應用程序到Web API」。如何在沒有用戶交互的情況下對Azure Active Directory進行身份驗證?

我跟着instructions請求訪問令牌:首先,我在Azure Active Directory中註冊了一個App。然後我創建了一個與應用程序ID(client_id參數)關聯的密鑰(client_secret參數)。我還獲得了App ID URI(資源參數)。我使用所有這些參數來創建一個POST請求到我的Azure AD的/ token端點。但是,我收到以下錯誤消息:

{ 
    "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

資源參數告訴您的應用程序獲取令牌的位置(正在請求訪問令牌的資源的標識符)。如果您想獲取令牌以調用Azure服務管理API,則可以將資源設置爲https://management.core.windows.net/

編輯:

如果要調用API是微軟提供的API,資源是已知的,例如:

如果你想調用你的c API應用程序您可以使用資源WebAPI的客戶端ID或App ID URI(在Azure管理門戶中的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/develop/active-directory-protocols-oauth-service-to-service#request-an-access-token),它表示資源參數爲: '輸入接收Web服務的App ID URI。要查找App ID URI,請在Azure管理門戶中單擊Active Directory,單擊目錄,單擊該應用程序,然後單擊配置。「 此信息是否錯誤? –

+0

@GlebBillig,我編輯了答案來解釋你的問題,請檢查一下。 –

0

你需要做一個POST請求令牌端點。

資源參數必須是您想要訪問的API的資源URI,而不是您的資源參數。

  • Azure的AD圖形API:https://graph.windows.net/
  • 微軟圖形API:https://graph.microsoft.com/
相關問題