CRM 4.0 用户 (users)和Active Directory的集成绑定

 

FAQ1: 我们使用了Active Directory的ADMT工具做了跨域用户的迁移,从此以后那些被迁移过的用户无法登录到CRM系统中,什么原因呢?

解答: 这个 要从CRM 4.0中和AD的绑定说起。正常情况下登录的时候,用户会被IIS那里验证,传出一个WIndows AuthInfo信息,CRM平台拿到这个信息后会比对SystemUserAuthentication这个库表,对应找到UserId,通过SystemUserOrganization库表找到该user所属的Organization和在那个Organization里面的CrmUserId.

有了这个信息后读取特定的OrganizationDB的SystemUserBase库表,找到ActiveDirectoryGuid,DomainName信息, CRM然后访问Active Directory来验证自己库表里存储的信息是否和AD中的保持一致,如果不一致本次验证失败。如下图表所示黄色部分的信息都是CRM在安装配置过程中从Active Directory里面读取的数据。

如果Active Directory使用工具ADMT迁移跨域用户后,用户的ActiveDirectoryGuid不会改变,但是AuthInfo和DomainName都会变掉,导致CRM数据库里的信息和AD的信息不一致。

 

解决办法是:

如果你的域关系是单向信任的 (one-way trust),你需要安装Update Rollup 7. 然后使用CRM 的Deployment Manager来重新映射用户 (修改用户对应的alias,比如testDomain\name),CRM 平台会自动去Active Directory系统获取更新最新的相关信息。

 

image

 

FAQ2. 我们公司的AD域被重新建过了,我们备份了CRM数据库,在新的域里面安装了CRM软件和SQL server后我们把CRM数据库恢复上线。所有的用户的Alias和域名都没有更改过。但是CRM系统无法访问?

解答: 原因参见FAQ1的解释,重新建的AD域AuthInfo和ActiveDirectoryGuid都会变掉了。解决办法是使用Import Organization工具做重新部署。

具体过程参看 952934    How to move the Microsoft Dynamics CRM 4.0 deployment

 

如果你的CRM数据库很大并且要映射的用户很多,需要安装如下的hotfix来提高性能

The Import Organization wizard takes a long time to import an organization in Microsoft Dynamics CRM 4.0

注意: 该Hotfix包含在Update Rollup 8中,需要手动添加注册表来生效.

HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\MSCRM

DWORD  OptimizeOrgImport=1

 

thanks

Clifford (张立岩)