2017-10-04 96 views
1

我試圖嘗試設在這裏新的CRM管理API:https://admin.services.crm.dynamics.com/swagger/ui/index,但每次我試圖運行一個電話,該響應消息是相同的:測試CRM管理員API接口揚鞭

「消息「:」授權已拒絕此請求。「

我錯過了什麼?我假設無論用戶當前在Chrome中登錄到CRM,這將是管理員調用的用戶上下文,但也許我錯了?

+0

有一個帶'api_key'佔位符的輸入...你可以在那裏輸入你的api鍵,然後點擊探索按鈕...現在當你點擊'試試它'按鈕時,你應該得到正確的迴應。 – Hackerman

+0

好吧@Hackerman我不敢相信我錯過了那個簡單的領域......你會提示我如何確定所說的API_Key嗎? – Daryl

+0

您可以從以下指南開始https://docs.microsoft.com/en-us/dynamics365/customer-engagement/developer/online-management-api/get-started-online-management-api – Hackerman

回答

1

Swagger API不能用於測試服務。爲了能夠使用新的管理API發送和檢索數據,必須爲在O365中具有Dynamics Admin或Global Admin角色的用戶獲取有效的OAuth2.0標記(請參閱前兩句話in the auth docs)(請參閱第一部分關於管理員角色in the docs)。

當您通過瀏覽器登錄時,您只會獲得一個代表您的登錄會話的cookie,而不是一個OAuth令牌。 Auth0 has a very good article關於cookie和基於令牌的身份驗證之間的差異,但在這種情況下,相關部分是它們不相同,因此您需要明確獲取OAuth2.0令牌。

微軟在swagger API中包含的是API密鑰的字段。可以從Azure AD App註冊生成API密鑰(有關如何生成密鑰的更多信息,請參閱in the AAD docs)。不幸的是,正如我在上面指出的,MSDYN365管理API要求經過身份驗證的客戶端至少具有Dynamics的服務管理員角色。這些角色是用戶角色,不能委派給AAD應用程序註冊,您只能爲他們使用應用程序角色。

這意味着您處於一個無法使用的困境之中,因此您可以使用該定義的「唯一」一件事是簡化與您自己的應用程序的集成。