我正在为单租户服务器到服务器身份验证进行动态crm集成 . 这是获取令牌的必要条件,因为数据将用于创建面向客户的UI .
因此,我使用client_credentials授权类型从Azure获取令牌 . 但是,当我尝试使用此令牌访问任何动态 endpoints 时(例如此处记录的那些:https://msdn.microsoft.com/en-us/library/mt607871.aspx)我得到的全部是401 - 访问被拒绝 .
我做了以下事情:
-
创建Azure应用程序
-
创建并存储了一个密钥
-
在线动态CRM的启用权限
我已经看到一些建议,我需要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的答案可能不会有太大的帮助
1 回答
这是关于如何configure server to server auth的帖子 . 假设您已经完成了除创建应用程序用户之外的所有步骤,您可以通过以下方式执行此操作:
在CRM中导航到设置 - >安全 - >用户
将视图从"Enabled Users"更改为"Application Users"
从新用户表单中将表单从"User"更改为"Application User" .
您现在应该能够创建应用程序用户 .