Microsoft Dynamics CRM OAuth 集成
Posted
技术标签:
【中文标题】Microsoft Dynamics CRM OAuth 集成【英文标题】:Microsoft Dynamics CRM OAuth Integration 【发布时间】:2017-08-29 13:44:59 【问题描述】:我需要将我的 Web 应用程序(多租户 SaaS 产品)集成到我用户的 Dynamics CRM 中,以便它可以提取他们的数据。
我了解到 Azure Active Directory 应用可以处理此类集成 (OAuth),但我无法弄清楚我的用户如何授予我的应用访问其 Dynamics CRM 数据的权限。
显然,我的每个用户都应该创建一个 Azure AD 应用程序(可以访问他们的 Dynamics CRM 帐户),然后我的 Azure AD 应用程序应该被授权代表他们的 AD 应用程序发出请求。
我不知道如何才能使这个过程发挥作用。
任何建议将不胜感激。
【问题讨论】:
【参考方案1】:对于 Dynamics CRM 版本 2016 和 365,可以通过 Web API 访问数据。
当通过发送例如 HTTP GET 请求使用 Web API 时,请求标头必须采用以下格式: 'Authorization': 'Bearer' + token
其中token
是 OAuth 2 Bearer Token。
要获取令牌,我建议使用Azure AD authentication Library (ADAL)。
要通过 ADAL 向 Dynamics CRM 进行身份验证,您必须在 Azure Active Directory 下注册您的 Web 应用程序以及 Dynamics CRM。注册您的应用程序将为您提供 OAuth 2.0 授权流程所需的 客户端 ID。 This post is very useful.
【讨论】:
感谢戴夫的回答。抱歉,我不得不提到我对 OAuth 的一般功能相当熟悉。问题是我的 Azure Active Dir 应用程序需要能够访问多个用户的动态 crm 数据。这就是棘手的地方。当我尝试将我的 AD 应用授权给我的消费者动态帐户时,我不断收到不同的错误。【参考方案2】:如果您的应用拥有管理权限,那么它就可以访问其他用户的数据。在配置 OAuth 时,您应该确保几件事,请检查: http://phuocle.net/crm/dynamics-365-online-s2s-authentication-full-explain.aspx
所以从我的角度强调最重要的事情:
你应该有一个特殊的用户来处理这个 此用户不应分配任何许可证 - 因此您必须为他签署一份许可证,并在完成配置后将其取回 用户应该有一个自定义角色(可以从系统管理员那里复制角色)【讨论】:
抱歉,Pawel 回复晚了。感谢您的解释以及链接。它帮助我找出了我的问题所在。我希望我能尽快在这里发布工作代码。以上是关于Microsoft Dynamics CRM OAuth 集成的主要内容,如果未能解决你的问题,请参考以下文章
Microsoft Dynamics CRM OAuth 集成
Microsoft Dynamics CRM 安装后,windows有哪些服务是用来支持CRM运行的.
Intellisense in Visual Studio for Microsoft Dynamics CRM 2016
为运行Microsoft Dynamics CRM 异步处理服务指定账户没有性能计数器权限
Microsoft Dynamics CRM 2013 for Outlook 的硬件要求
Microsoft Dynamics 365 CRM vs Salesforce: A deep-dive comparison