如何对 CRM 2011 进行身份验证?
Posted
技术标签:
【中文标题】如何对 CRM 2011 进行身份验证?【英文标题】:How to Authenticate to CRM 2011? 【发布时间】:2013-02-26 13:27:49 【问题描述】:我想建立一个简单的网站,客户可以在其中下订单和查看产品。此数据是我的 Microsoft Dynamics CRM 2011 环境。
此数据是客户特定的,因此我需要有关已登录用户的信息。 用户凭据存储在 CRM 2011 中。使用这些凭据,用户可以登录到这个新的自定义网站。他们不应有权访问 crm 环境本身。
我应该如何设置这个网站的身份验证?我可以在crm 2011中查询用户信息,我应该设置ADFS应用程序还是其他?
【问题讨论】:
CRM 是在线的还是本地的?禁止用户登录 CRM 是什么意思?他们应该如何授权自己获取数据? CRM 是内部部署的。我的意思是应该只允许用户登录我想要构建的自定义网站,而不是 CRM 2011 应用程序本身。 网站是否会保留一个秘密凭据以访问 CRM 服务器?还是它会驻留在同一台机器上并使用默认的 Windows 凭据?无论哪种方式,您都必须以与用户不同的方式指定 Web 服务器的访问权限? 嗯,实际上,这是我的问题。对此的最佳做法是什么?我应该保留秘密凭据还是应该使用模拟?我不知道有什么可能,因为我对 CRM 2011 还很陌生。它只是一个简单的网站,只有 10 到 100 个用户。 您需要清楚这里的“用户”是什么意思。如果门户/网站的“用户”是员工,那么您需要许可证并且他们需要向 AD/ADFS 进行身份验证。如果“用户”实际上是“客户”(例如 CRM 中的联系人),那么您需要使用单个连接器许可证而不是为每个用户许可证付费,并使用对您有意义的任何身份验证机制。查看 MS 提供的免费客户门户加速器,了解起点、想法等。 【参考方案1】:我们刚刚为我的一个客户实现了类似的功能。我们有大约 5000 名用户需要能够查看和编辑 CRM 数据,但我们不想为完整的 CRM 用户许可付费,因为他们需要更新/查看的数据相当小。所有用户都已在 Active Directory 中,因此我们为每个用户购买了员工自助服务客户端访问许可证 (ESS CAL) 许可证。这种类型的用户许可证无权访问 CRM 用户界面,因此他们永远无法真正登录 CRM 本身。
我们在网站上使用了 AD 身份验证,应用程序池用户是 CRM 超级用户帐户。在用户会话的初始加载中,我们从上下文中获取用户名,并在 CRM 中查找用户的 SystemUserId,然后使用模拟服务代理来仅访问和更新允许用户访问的数据。效果非常好。
【讨论】:
这听起来不错。假设我们不使用 AD。 CRM 是否也有自己的数据库来存储用户?如果是这样,是否有可用的标准功能(例如 crm 会员提供程序)我们可以用来授权这个数据库? CRM 不存储自己的身份验证,但支持 AD 和基于声明。所有用户都存储在 SystemUser 表中,只有一个用户名才能将其与身份验证机制联系起来。查看此链接以获取有关 CRM 和身份验证的更多信息:msdn.microsoft.com/en-us/library/gg328497.aspx【参考方案2】:一种方法是创建一组系统用户(可能一个就足够了),对某些网站用户应该可以访问的信息具有访问权限。
然后,在托管 Web 应用程序的服务器上,您可以为每个登录的访问者分配一个角色(这样,CRM 中的某个系统用户实例将对应于一组访问者的角色)。
网站的登录过程完全取决于您。我相信,如果您将应用程序和 CRM 服务器之间的连接设置在同一台物理机器上(如果这适用于您的特定设置),那么它们之间的连接是最安全的。
【讨论】:
以上是关于如何对 CRM 2011 进行身份验证?的主要内容,如果未能解决你的问题,请参考以下文章
401- 使用 REST API Dynamics CRM 和 Azure AD 进行未经授权的身份验证