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系统获取更新最新的相关信息。
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来提高性能
注意: 该Hotfix包含在Update Rollup 8中,需要手动添加注册表来生效.
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\MSCRM
DWORD OptimizeOrgImport=1
thanks
Clifford (张立岩)
Comments
- Anonymous
May 03, 2010
1 我安装完Dynamic CRM 4.0后,在AD创建了一个名为test1的用户,同时在CRM系统中同时添加了这个用户,并为这个用户赋予了“销售员”的安全角色。但是这个用户不能登陆系统,反馈的错误是“没有为用户添加安全角色”。 2 如果过了一个小时左右,或者系统重启后这个用户就能登陆了。 3 当我修改了“销售员”的权限后,需要重新启动服务器,test1的权限才能真正生效。