本系列文章由ghjconan创作,转载自ITECN。尊重原创,分享精彩。
创建同步规则
在完成管理代理和管理代理运行模式的创建之后,接下来需要做的是在图形化界面中创建同步规则,这也是FIM 2010和前代产品ILM 2007之间最大的区别。
首先需要打开FIM 2010的管理门户网站(https://servername/indetitymanagement/default.aspx),然后单击右侧Administration下的Synchronization Rules进入同步规则管理界面。
在打开同步规则管理界面后,单击New按钮来创建同步规则。在General页面中,需要定义同步规则的显示名,描述信息,依存性(本实验场景中不需要设置),数据流方向(入站,出站,双向)。这里各位可能注意到了同步规则名称中使用到了“->”这样的标记,这其实纯粹是个人喜好的问题,各位也可以在名称中使用“Inbound Outbound |Bi-direction”等字样来标识出数据流的方向,方便在管理界面中分辨。
完成一般设置后,单击下一步进入Scope设置。在这里需要配置Metaverse中的资源类型,外部系统,外部系统的资源类型,外部系统资源筛选器(本实验中无需配置)。由于本实验是以员工信息为例进行说明的,因此Metaverse中的资源类型为person,外部系统(其实这里显示的是管理代理的名称)自然是之前用PowerShell创建的文件,外部系统的资源类型也是person。
在完成Scope设置后,单击下一步进入Relationship配置。Relationship设置中的配置主要就是确定FIM和外部系统的对象之间通过何种条件进行关联,一般的选择就是在各系统中起到唯一标识符作用的属性,比如employeeID。当然这里还要注意勾选在FIM中创建对象这一个选项。
配置完Relationship之后,单击下一步,进入入站属性流配置界面。入站属性流属于FIM 2010中配置比较复杂的一块内容。如果是属性比较多的情况下,配置工作会变成一项体力活,而且配置过程需要极其细心,如果属性类型不一致的话,同步时会触发错误。虽然在当前的实验环境下体现不出,但是当我们后续实验涉及到活动目录时,大家便会有体会了。
刚才给大家打了预防针,接下来我们就来看下如何配置。首先单击界面上的“New Attribute Flow”,在出现的“Flow Definition”界面中,在Source页选择外部系统中的属性,比如EmployeeID。然后单击Destination页面,然后选择对应的属性即可。通常来说属性名是相同的,但是也有特殊情况。比如外部系统是活动目录时,请各位到时小心配置givenName-firstName, surname和lastName的对应关系。还有一种情况是,我们需要利用外部系统中的多个属性值来合成FIM中的一个属性值, 比如FirstName + LastName = DisplayName。这时注意点击“Flow Definition”界面中的“Concatenate Value”,通过点击这个按钮,FIM允许我们选择多个外部系统中的属性。
最后请各位注意属性流配置页面有超时设置,请各位完成几项属性流的配置后,适时点下完成保存下当前的配置进度。
当所有配置完成后,单击下一步,进入概览页面。在确认完相关信息后,单击Submit提交修改。
启用同步规则资源调配
在创建完管理代理,管理代理运行模式,同步规则之后,大家是不是会基于看下FIM 2010到底是如何工作的呢?但是在你触发管理代理中的具体某一个运行模式之前,还有一项工作要做,那就是在Synchronization Service Manager中启用同步规则资源调配。具体步骤是打开Synchronization Service Manager后,单击Tools,然后单击Options,随后勾选“Enable Synchronization Rule Provisioning”复选框,最后单击“OK”保存设置。
初始化入站复制
目前为止,我们已经完成了管理代理的创建,管理代理运行模式的创建,接下来我们要初始化入站复制,具体步骤如下:
- 将数据导入到FIM服务数据库
- 初始化FIM同步服务
- 将数据导出到FIM服务数据库
- 确认数据导出状态
- 将数据导入到FIM服务数据库
这一步的目的是将以存在,包括新创建的同步规则导入到FIM MA的连接器空间。具体方法是打开Synchronization Service Manager,然后单击工具栏中的“Management Agents”,然后选中FIM MA,单击右键,然后在菜单中单击Run,打开运行管理代理配置对话框,然后运行“Full Import”。
片刻之后,导入过程便告结束,这时会在Synchronization Service Manager的左下角同步信息出显示概览状态。导入后对象状态分为5类,Unchanged,Adds,Updates,Renames和Deletes。这里由于是第一次导入,因此显示的是有三个对象被导入,单击具体状态后,便会弹出显示对象的详细信息对话框中。这里出现了一个会让部分朋友混淆的的名词Distinguished Name,可能各位都习惯了活动目录中的distinguishedName,对这里用Distinguished Name来表示GUID可能不太习惯,那么只能请大家克服了。
除了在导入后显示的信息中查看相关对象之外,我们也可以使用连接器搜索工具来查看某一个管理代理所对应的连接器空间中的对象。方法是首选选中一个管理代理,然后单击右键,然后在出现的菜单中单击“Search Connector Space...”打开搜索工具。打开之后可以单击“Column Settings”来添加需要的栏位显示对应的信息。
初始化FIM同步服务
当同步规则发生变化时必须运行一次完整同步。具体操作和刚才类似,在打开运行管理代理配置对话框后,选择之前配置好的完整同步配置文件,稍等片刻后我们就能看到同步结果。
和刚才将数据导入到FIM服务数据库时产生的结果有所不同的是,如果针对FIM MA执行完整同步,那么会同时产生入站同步和出站同步,出站同步是由预先配置的属性流导出规则产生的。这里还请大家注意到往Metaverse中创建对象时所用到的专有名词Projection。Projection是指根据创建Projection规则在Metaverse中创建对象,并将该对象连接到连接器空间中某个对象的过程。根据这个定义我们可以推断出,目前在Metaverse中有三个对象。那么之前可以用连接器搜索工具查看连接器空间中的对象,那么Metaverse重对象该如何查看呢?实际上大家马上就能从Synchronization Service Manager的界面中看到工具栏中Metaverse按钮。单击之后,便会打开Metaverse搜索工具。然后对象搜索范围中选择person,排序规则选择默认,然后单击右侧的“Add Clause”按钮添加搜索条件。目前我们使用的搜素条件是“accountName is present”,然后单击搜索按钮。
将数据导出到FIM服务数据库
接下来需要将数据导出到FIM服务数据库。刚才各位在初始化FIM同步服务的结果中已经看到在出站同步中,导出属性流中有两个对象,接下来打开详细信息对话框后会发现标签栏的标题出显示的是“Pending Export”,这也说明我们必须执行一次导出操作。具体操作还是很简单的,同之前类似,我们只要运行相应的导出配置文件就行。
确认数据导出状态
最后为了完成初始同步,还要在进行一次增量导入来确认导出是否成功。这一点同样在上一步导出后所产生的对象状态信息里有显示,“Awaiting Export Confirmation”的含义就是需要再进行一次增量导入。具体方法还是和之前一项,运行相应的配置文件就行。
调整属性流优先级
在测试入站复制之前,还有最后一部要做,那就是调整属性流优先级。首先打开Synchronization Service Manager,然后单击工具栏上的Metaverse Designer,然后在Object types中选中person,在下方的属性中按照Import Flow排序。
然后选中在入站属性流中数字为2的第一个属性,这里的数字2代表有2个属性流会修改这个属性。选中之后,单击右侧的Configure Attribute Flow Precedence,打开属性流优先级调整对话框。然后单击右侧的向下箭头,将CORP FIM MA的优先级调整为2。
如果不调整的话,各位可能会在后续步骤中发现FIM Portal中无法显示用户的显示名,然后查找原因的话便会发现是属性流优先级的问题。如果出现这种情况的话,请在调整属性流优先级后,再次对CORP File MA执行完整同步操作,来修正这个问题。
测试入站复制
在之前一节中,我们完成了测试环境的基本搭建过程,接下来也测试这个环境是不是满足我们的设计需要。主要步骤如下:
- 从外部系统(数据文件)中导入用户
- 在Metaverse中创建(Projection)对象
- 将用户导出到FIM服务数据库并执行增量导入
- 验证用户状态
从外部系统(数据文件)中导入用户
从外部系统(数据文件)中导入用户和之前的操作是一样的,只不过这次我们要针对CORP File MA管理代理进行操作。大家如果回顾这个代理的创建过程的话,便会发现这个代理只创建完整导入和完整同步两个配置文件。因此第一步要执行的就是完整导入,将数据从外部系统(数据文件)导入到CORP File MA对应的连接器空间中。因为演示用的外部系统(数据文件)中包含五个用户,因此在最后的同步结果中显示为添加了五个对象。还要注意到的一点是,在对象的Distinguished Name中显示的是员工号,也就是我们设置的Anchor属性。
在Metaverse中创建(Projection)对象
接下来,为了能在Metaverse中创建(Projection)对象,我们需要执行CORP File MA的完整同步,这样就能利用CORP File MA连接器空间中的信息在Metaverse中创建对象,并且将Metaverse中所创建对象的唯一标识符(MVObjectID)写入到连接器空间中对应的对象。请大家牢记这个过程,这也是为什么虽然我用了创建这一词,但还是要强调英文对应的术语是Projection的原因。当完整同步执行完成后,我们可以看到入站同步中有五个对象被创建(Projection)出来,同时连机器中也有五个对象被更新。同时出站同步中也有对应的五个待导出的属性流及类型为添加的资源调配。
将用户导出到FIM数据库并执行增量导入
既然在上一步中,产生了五个待导出的属性流,那么接下来就要执行导出操作。注意导出操作是CORP FIM MA执行的。操作步骤和之前的相同,选中CORP FIM MA代理,然后执行对应的运行配置即可。
然后单击数字,在出现的对话框中选择属性,注意此时连接器对象属性对话框中第一个属性页的标题,“Awaiting Export Confirmation”。如果你看到这个短语,就意味着你还要在执行一次增量导入来确认对象的状态。增量导入的过程相信大家也知道了,只要针对FIM MA执行Delta Import运行配置即可。
验证用户状态
验证用户状态其实很简单,只需要打开FIM的门户网站,然后单击左侧导航栏中的Users,在随后出现的页面中单击搜索按钮,确认测试用户已被导入即可。当然还可以单击具体用户确认用户属性是否被设置成功。
至此,我们就完成了FIM 2010的入站同步实验,整个实验还是比较复杂的,涉及到的组件比较多,请各位细心操作。下次我们将主要讲如何使用FIM 2010实现出站同步,敬请期待。