4

我正在尝试通过 SPA 访问 Dynamics 365 Online 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

最后四个表示需要管理员同意。我尝试了其他一些格式,但它们错误表明格式不正确或资源不存在 - 我明白了。但我对管理员同意部分感到困惑。

任何指导表示赞赏!

4

2 回答 2

7

您需要使用以下范围:

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

注意双斜线。

于 2019-04-17T03:36:23.307 回答
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

于 2020-09-25T14:33:21.597 回答