【发布时间】:2018-03-06 08:02:19
【问题描述】:
我正在为单租户服务器到服务器身份验证进行动态 crm 集成。这是以不可见的方式获取令牌所必需的,因为数据将用于创建面向客户的 ui。
因此,我使用 client_credentials 授权类型从 Azure 获取令牌。但是,当我尝试使用此令牌访问任何动态端点时(例如此处记录的那些:https://msdn.microsoft.com/en-us/library/mt607871.aspx) 我得到的只是 401 - 访问被拒绝。
我做了以下事情:
创建 Azure 应用程序
创建并存储密钥
为 Dynamics CRM online 启用权限
我看到一些建议,我需要 CRM 本身中的服务用户来提供访问权限,但是当我尝试创建一个时,所描述的选项不会出现。 (比如这里:https://msdn.microsoft.com/en-us/library/mt790170.aspx#bkmk_ManuallyCreateUser)
你能建议我在这里可能遗漏的任何步骤吗?
这是使用令牌的示例调用
{ method: 'GET',
url: 'https://<snip>/api/data/v8.2/accounts?$select=name&$top=3',
headers:
{ Authorization: 'Bearer <snip>',
Accept: 'application/json',
'OData-MaxVersion': '4.0',
'OData-Version': '4.0' }
}
编辑: 请注意,我在这里使用的是 node.js,而基于 C#/.net 的答案可能不会有很大帮助
【问题讨论】:
-
“服务器到服务器”身份验证需要创建应用程序用户。您使用的是什么 CRM 版本以及您的用户在 CRM 中的角色是什么?
-
我使用的是 8.2 版。目前我没有应用程序用户,因为在遵循 OP 中的指南时,我似乎没有切换到应用程序用户视图的选项。我目前正在与管理员合作,以确定我是否有权采取行动,但老实说,目前只知道该选项应该在哪里会有所帮助。
-
只是补充一下,我自己的用户有系统管理员和系统定制员的角色。我有读写权限和专业执照。
-
不知道为什么你不能创建应用程序用户。从 CRM 转到设置-> 安全-> 用户。将视图从“启用的用户”翻转到“应用程序用户”。单击“新建”按钮。当用户表单加载时,将表单从“用户”更改为“应用程序用户”,然后您将获得正确的字段(如“应用程序 ID”)。
标签: node.js azure dynamics-crm