2017-06-25 40 views
0

我對Azure AD非常陌生。我已閱讀Azure AD文檔,其中提供了有關身份驗證和訪問Web API的信息。Azure AD持票人使用郵遞員的invalid_token錯誤

我想做什麼:我想使用Dynamics CRM API通過AWS Lambda創建主管或聯繫人。意思是,無論何時運行Lambda函數,都應該調用CRM API。我需要創建潛在客戶的方式是使用包含在Lambda中的用戶名和密碼。我不確定在使用AWS Lambda作爲訪問Web API的源時需要使用哪個應用程序場景。我想通過POST請求傳遞用戶信用。

在Azure中創建應用程序AD:因此,我不確定需要使用哪種應用程序類型(Web API或本機應用程序?)。什麼應該是登錄URL或重定向URI?

我試圖創建一個應用程序,並使用郵差作爲臨時方式只是爲了測試我是否能獲得訪問令牌和訪問Web API。我可以能夠獲得訪問令牌,但是當我試圖訪問API,它說

Bearer Error invalid_token, error validating token! 

我已經給了足夠的權限,而在Azure中AD創建應用程序來訪問動態CRM API。但仍然無法訪問該API。

POST請求通過郵差獲得訪問令牌:

request: POST 
URL: https://login.windows.net/<tenant-id>/oauth2/token 
Body: 
grant_type: cliet_credentials 
username: xxxxx 
password: xxxxxxx 
client_id: <app id> 
resource: <resource> //I am not sure what to include here 
client_secret: <secret_key> 

我得到的響應訪問令牌。使用訪問令牌發送第二個POST請求

request: POST 
URL: https://xxx.api.crm.dynamics.com/api/data/v8.2/accounts 

Headers: 
Content-type: application/json 
OData-MaxVersion: 4.0 
OData-Version: 4.0 
Authorization: Bearer <access_token> 

Body: 
{ 
    "name": "Sample Account", 
    "creditonhold": false, 
    "address1_latitude": 47.639583, 
    "description": "This is the description of the sample account", 
    "revenue": 5000000, 
    "accountcategorycode": 1 
} 

如果我可以獲得更多有關我卡住的位置的信息,那真的會對我有所幫助。我已經用我的一個星期的時間來完成這件事。任何幫助將不勝感激。

回答

1

要做到服務器到服務器(S2S)驗證,應用程序是基於由存儲在動力學應用365的用戶記錄的天青AD對象ID值標識的服務主體認證。請點擊herehere瞭解詳細步驟和代碼示例。

+0

感謝您的資源。經過多次試驗後,我能夠發送POST請求以使用API​​創建示例帳戶。但是這一次,我在響應頭文件中得到了以下內容。 'WWW-Authenticate→Bearer authorization_uri = https://login.windows.net/ /oauth2/authorize,resource_id = https:// tenant-uri.api.crm.dynamics.com /' Body仍然說'HTTP錯誤401 - 未經授權:訪問是denied' –

+0

請先檢查[本文件](http://phuocle.net/crm/dynamics-365-online-s2s-authentication-full-explain.aspx)對於如何解決'訪問被拒絕'錯誤。 –

+0

謝謝你的文檔。但那不是我所期待的。我不想要登錄頁面。我想在標題部分傳遞用戶憑據,然後訪問Web API。 –