怎样配置CRM的SPN

关于SPN   服务主体名称,也称为一个SPN,是一种名称,唯一标识一个服务实例。用来验证Kerberos身份验证的SPN的必须正确设置。SPN是Active Directory属性. 但不暴露在AD的管理单元.   确保正确的SPN的设置变得非常重要,比如讲CRM, SQL SRS的应用.   如果应用程序分别在不同的服务器上,我们会需要用户凭证从一台服务器传递到另一个台服务器。这个过程称为Kerberos委派。例如,当用户运行了在CRM中的SRS的报表时,我们必须验证CRM,然后将请求发送到SRS服务器。CRM服务器会模拟用户对SRS的请求。如果SPN身份验证不正确,CRM服务器上的授权就会失败,SRS的请求会用NT AUTHORITY \ ANONYMOUS登录, 随后就会导致401身份验证错误。     SPN 格式   SPN的格式是<service class>/<host>:<port>/<service name>.   端口号和服务名字是SPN参数的可选项。最常见的就是看到SQL SPN使用端口号及服务名字。 通常你需要定义SQL的port和数据库实列的服务名字。在其他一些场景,SPN也需要定义一些IIS的应用程序。 当Web应用程序/服务没有用标准的HTTP 80端口(HTTP)或443(HTTPS)的监听时, 你需要定义IIS端口.  如果使用默认端口,您不需要使用的IIS服务的SPN. 如果你使用自己定义的端口的话,你就需要定义IIS 的 SPN.     缺省SPN   默认情况下的主机服务类型的SPN会设置在所有计算机帐户下.这个SPN用来表示同时表示NETBIOS 和FQDN. 主机SPN的格式是:  HOST/<COMPUTERNAME>  和HOST/<COMPUTERNAME>.<FQDN>.   当SQL SERVER 安装时会需要运行SQL service的帐户. SPN会自动注册到这个账户下用MSSQLSvc\<ComputerName>:<Port> 这样的格式. 如果在安装完后你更改SQL的service account,你可能会碰到duplicate SPN 的问题,除非你移掉原用的账户 MSSQLSvc SPN,而使用这个你更改的帐户。…

1

MS CRM E2团队和文档

MSCRM产品基于多个包括AD, SQL Server, IIS, Exchange Server等多个微软平台.  Microsoft Dynamics CRM Engineering for Enterprise (MS CRM E2) 团队集合了各个方面产品的专家, 为企业级用户提供最佳的技术解决方案.  特别是在安全性和性能调优方面贡献良多.    以下是该团队近期发布的重要文档.  该信息将不定期更新.     – 关于在MSCRM4.0平台上实现字段级安全性的论述Security and Authentication in Microsoft Dynamics CRM: Field-level Security in Microsoft Dynamics CRM: Options and Constraints   – 关于MSCRM4.0安全模式的论述Security and Authentication in Microsoft Dynamics CRM: The Microsoft Dynamics CRM Security Model…


CRM 4.0 集成整合 – 2- 为什么不允许直接修改SQL数据库

在我们的CRM实施部署文档中强调,不能直接使用SQL的查询更新语句( SELECT/UPDATE/INSERT/DELETE)修改CRM数据库,只有一个例外是使用Select语句直接访问Filter Views (就是CRM库表里的那些以Filtered前缀开始的视图)。下面粗略分析为什么会有这样的指导意见.   CRM设计的时候有自己的schema库来保存诸如实体(entity)定义,数据类型等原数据(metadata)信息。在3.0中有个单独的数据库叫Metabase, 4.0由于需要支持多组织结构这部分信息被移到组织数据库(orgname_mscrm)那些以MetadataSchema开头的库表中去了。 众所周知SQL server有自己的schema语言描述SQL里的table, column, data types等等。CRM Metadata是依赖SQL server schema语言来实现的,同时作为一个抽象层把CRM平台层需要的逻辑与具体的SQL物理存储实现给隔开了,这提供了一种针对具体的物理存储变化的灵活性。   CRM平台层提供了很多数据处理方面的功能,比如: 1. 数据安全检查 2. plugin插件。这个类似于SQL server里的触发器(trigger) 3. 针对数据修改变化事件触发的工作流。 4. Outlook离线客户端读取CRM Metadata来在Outlook 客户端创建离线数据库   只要通过CRM用户界面/CRMSDK修改数据,平台层就能保证数据会按照定义的规则被修改。反之,如果直接使用SQL server management studio的查询修改语句来修改CRM数据库表,那么MetaData和CRM平台层都被忽略过了,业务上定义的安全角色检查,数据修改触发规则等等都不会起作用。下面是常见的错误做法: 1. 自己定义编写SQL trigger,而不是使用平台层的plugin。我们见过很多引起死锁的问题,当然很多客户的理由是直接编写SQL trigger开发速度要快,节省时间 🙂   2. 直接修改CRM的库表,添加一个列。比如CRM里没有提供类似Identity类型的列可以自动增加计数,有用户就在CRM界面定制了一个实体随便添加了个属性,然后回到SQL管理器中把该属性的类型修改成Identity. 这类定制引起Outlook客户端不能在本地创建离线数据库。   3. 在Plugin里面使用ADO.NET直接查询CRM库表。由于平台层的设计可以统筹库的并发访问,避免死锁;可是如果你手动添加了很多直接库表的连接,平台层并不知道,很容易导致很多SQL端的阻塞问题;另外有可能有数据因为安全方面原因泄露。有一个例外,我们允许的直接库表查询是那些FilteredViews. 这些SQL views主要是做报表用的。大家感兴趣可以打开这些View的定义,你可以看到Where语句里都包含了CRM级别的安全角色检查。   当然,目前有一种对SQL server schema的修改是可行的,就是添加/删除自己的索引(index)提高性能,但是不能删除CRM已经有的系统索引。   thanks Clifford


如何在博客里添加评论(comments)

由于大量垃圾邮件和木马人机器人攻击等问题的存在,我们的博客站点禁止匿名评论。如果你希望能在我们的博客文章下面添加评论,需要你先注册一个technet网站的帐户登录。   步骤如下: 1. 访问如下页面: http://blogs.technet.com/user/CreateUser.aspx    2. 填写必要的注册信息后点击Join Now,几秒钟后你的帐号就建好了。     3. 访问technet的博客站点,在你感兴趣的文章末尾处有个链接comments,点击后你就可以添加甚至订阅别人的评论了。     thanks Clifford

6

CRM 4.0 集成整合 – 1- 数据 (Data Integration)

计划整理分享关于4.0集成整合(integration)方面的资料:  ERP系统, E-Mail系统, Phone 电话系统, 传真Fax系统… 这个是第一部分,介绍CRM系统和其它第三方系统通用的数据集成整合选项。   数据整合的由来和必要性 按照是否需要和客户打交道,一个公司简单来说分为两个功能系统:前台 (front office) 和后台 (back office).  前台是需要和客户(client/customer/lead)打交道,销售服务(service)或者产品(product). Service和Product主要是后台(back office)提供的。前台通常包括Sales, Marketing, Support/consultant; 后台通常就是人力资源部门(HR),财务部门(Finanace&Accounting),法务部 (Legal),管理部门 (leading and management),生产部门 (manufacturing) 等等.   在IT方案里我们用CRM系统管理前台–和客户直接相关的所有数据;后台的系统就是通常的ERP系统 –当然CRM属于大的ERP概念的一部分。为了方便讨论我们这里把它分开。CRM和后台的ERP系统的联系有如下情况:     1. 通常一个公司的ERP系统可能已经存在很多年了,积累了很多的客户记录(客户名称,联系人,购买产品服务记录等)。初次实现单独的CRM系统的时候大批量的数据都需要从ERP里导出,推(push)给CRM     2. 和产品服务相关的数据(product & service)比如生产系统的库存量,价格体系等通常还是在ERP系统里统一维护的,这类信息CRM需要实时的从ERP里面”拉”出来.     3. 一些第三方程序需要”读”CRM系统中数据,比如报表(report),商务智能(Business Intelligence)和数据挖掘(data mining)应用,公司门户网站(Sharepoint Portal)   通用数据集成(Data Integration)方案 方法 需要考虑关注的问题 可能的解决方案 push (“推”) 从第三方数据源获得数据”推”给CRM系统 1. 速效性:…