使用AAD v2的Dynamics 365 API

时间:2018-11-28 04:52:42

标签: azure-active-directory microsoft-graph microsoft-dynamics dynamics-365 microsoft-graph-security

我正在尝试通过SPA访问Dynamics 365在线API。但是我想使用v2授权端点。我在AAD中注册了我的应用,并分配了Dynamics CRM的权限(我使用的是预览注册刀片,可让我指定Dynamics)。并不是说Dynamics需要征得管理员同意,但是当我在SPA中指定范围时,在同意屏幕上会出现错误,指示我需要管理员同意。

过去我已经成功使用了v1授权端点,所以我怀疑这是我检索访问令牌时如何指定范围的问题。

此API是否需要一些特殊的东西?还没有完全实施吗?

在我请求access_token的作用域参数中,我已经尝试过:

<service guid>/<scope guid>
<service guid>/user_impersonation
https://<tenant>.crm.dynamics.com/user_impersonation
https://crm.dynamics.com/user_impersonation
https://dynamics.com/user_impersonation

最后四个表示需要管理员同意。我尝试了其他几种格式,但是它们会错误地指出格式不正确或资源不存在-这是我得到的。但是我对管理员同意书感到困惑。

任何指导表示赞赏!

2 个答案:

答案 0 :(得分:1)

您需要使用以下范围:

https://{organization}.crm.dynamics.com//user_impersonation

请注意双斜杠。

答案 1 :(得分:0)

不确定这是否对任何人都有帮助,但是我偶然发现了该线程,以寻找正确的范围的答案,以用于在客户端应用程序中使用MSAL访问Dynamics 365 rest api。

我不需要user_impersonation,因为我只是想以应用程序用户身份访问它。对我有用的范围是: “ https:// {organization} .api.crm3.dynamics.com //。default”

来源:https://docs.microsoft.com/en-us/azure/active-directory/develop/v2-permissions-and-consent#client-credentials-grant-flow-and-default