1

我正在尝试尝试位于此处的新 CRM 管理 API:https ://admin.services.crm.dynamics.com/swagger/ui/index ,但每次我尝试运行呼叫时,响应消息都是相同的:

“消息”:“此请求的授权已被拒绝。”

我错过了什么?我假设无论我用当前 chrome 登录 CRM 的用户,这将是进行管理员调用的用户上下文,但也许我错了?

4

1 回答 1

1

swagger API 不能用于测试服务。为了能够使用新的管理 API 发送和检索数据,您必须为在 O365 中具有 Dynamics Admin 或 Global Admin 角色的用户获取有效的 OAuth2.0 令牌(请参阅auth 文档中的前两句)(请参阅关于文档中管理员角色的第一部分)。

当您通过浏览器登录时,您只会获得一个代表您的登录会话的 cookie,而不是 OAuth 令牌。Auth0 有一篇关于 cookie 和基于令牌的身份验证之间区别的非常好的文章,但在这种情况下,相关部分是它们不一样,因此您需要显式获取 OAuth2.0 令牌。

Microsoft 在其 Swagger API 中包含的是 API 密钥字段。可以从 Azure AD 应用注册生成 API 密钥(有关如何生成密钥的更多信息,请参见 AAD 文档)。不幸的是,正如我在上面指定的 MSDYN365 管理 API 要求经过身份验证的客户端至少具有 Dynamics 的服务管理员角色。这些角色是用户角色,不能委派给 AAD 应用注册,您只能为它们使用应用角色。

这意味着您处于无权使用的困难和困难之间,因此您可以使用该定义的“唯一”事情是简化与您自己的应用程序的集成。

于 2017-10-06T07:48:37.813 回答