本系列文章由ghjconan创作,转载自ITECN。尊重原创,分享精彩。
通过上两次介绍,各位了解了FIM 2010同步服务的主要组件和所包含的过程,这篇博客文章的目的将关注如何使用现有知识完成入站同步。我将通过非常简单的例子来进行说明,外部系统将使用一个CSV文件来代替,而不是SQL数据库。实际上CSV在解决实际问题时也会起到非常重要的作用。好了,下面就来看看入站同步需要执行哪些步骤。
下面所要描述的场景来自TechNet上的“Introduction to Inbound Synchronization”。我会按照自己的理解和实际操作体验来为大家减少学习过程中会遇到的困难。同时文本也不是英文原文的翻译,本文不会描述非常具体的操作步骤,我一直以来所抱的愿望就是希望大家多读读英文原始文档,提高下自己的英文阅读能力,这是做好一个好的系统管理员的必备条件。
首先这张图是各位在接触FIM 2010的过程中经常看到的。
其中棕黄色的椭圆形区域代表FIM,椭圆形中的左侧的两个同心圆,内部的圆表示Metaverse,外部被分割的圆代表连接器空间,每一个扇形代表连接器空间的一个分区(division)。这里再强调下连接器空间只有一个,而连接器空间中分区数量取决于FIM所连接的外部系统的数量。
在本次实现中一共会使用到两个管理代理(MA),CORP FIMMA及CORP FileMA。然后整体配置过程分为三步,配置,初始化及测试。先来看下配置过程,配置过程分为四步,创建管理代理,创建运行配置文件,创建入站同步规则,启用同步规则资源调配(provisioning)。
首先来创建COPR FileMA。因为通过之前的学习大家知道管理代理的作用就是连接外部系统,因此先要创建外部系统出来,各位可以使用以下PowerShell命令来准备这个外部系统,这个外部系统的本质就是一个包含用户身份信息的CSV文件。
New-Item -Path C:\ -Name DataSource01 -ItemType Directory -ErrorAction SilentlyContinue | Out-Null
$users = @()
for ($i=1;$i -le 5;$i++)
{
$user = New-Object PSObject
$user | Add-Member -MemberType NoteProperty -Name "EmployeeID" -Value $($i.ToString("D3"))
$user | Add-Member -MemberType NoteProperty -Name "Name" -Value "Test $($i.ToString("D3"))"
$user | Add-Member -MemberType NoteProperty -Name "DisplayName" -Value "Test $($i.ToString("D3"))"
$user | Add-Member -MemberType NoteProperty -Name "FirstName" -Value $($i.ToString("D3"))
$user | Add-Member -MemberType NoteProperty -Name "LastName" -Value "Test"
$users += $user
}
$users | Export-Csv -Path C:\DataSource01\datasource01.csv -NoTypeInformation -Encoding UTF8
创建管理代理
然后打开Synchronization Server Manager,随后单击工具栏上的Management Agents,并单击右侧Actions栏中的Create按钮,打开管理代理创建向导。
随后在下拉框中选择Delimited text file作为管理代理的类型。然后输入合适的名称和描述之后单击下一步。在接下来的模板输入文件界面中选择刚才创建的模板文件及和合适的代码页(UTF-8,为了适应中文环境)。然后单击下一步。由于分隔文件中的分隔符可以是逗号,制表符,或者其它符号,因此在这个界面需要让管理代理知道分隔符是哪一个,同时告诉管理代理使用第一行中的名称作为每一列的列名。还有小知识点和CSV文件有关,一个合格的CSV文件,其中的值必须被双引号引起来,在RFC 4180中有详细的描述,大家可以看一下。
所有配置完成后,单击下一步。接下来要选择需要导入连接器空间(Connector Space)的对象属性,因为有些时候并不需要所有属性。这里有个设置(概念)需要注意,大家可能注意到了“Set Anchor”按钮,那Anchor到底是什么,在这里扮演了什么样的角色?被标记为Anchor的一个或多个属性通常是不变的,通常代表了外部系统中的对象和连接器空间中对象是通过这一个或多个属性链接的。一般会选择起到全局标识符作用的属性作为Anchor,常用的有员工号或者用户ID。设置完成之后单击下一步。
接下来来定义对象类型,在本实验环境下,对象类型是person。然后可以在这里设置属性的名称及这些属性是否必须在导入的时候包含值。因为有些属性虽然是需要的,但是导入的时候可能没有值,因此需要在这里控制这种情况是否被允许。完成之后单击下一步。
在连接器筛选器配置界面,单击下一步,因为暂时不需要配置。在配置结合(Join)及创建(Projection)界面,单击下一步。在属性流配置界面中,单击下一步,因为属性流的配置将在FIM Portal中完成。在Deprovisioning配置界面,单击下一步。在扩展配置界面,单击完成。
接下来来配置FIMMA。在设置FIMMA之前,需要准备一个专用帐号,不过这项工作已在之前的实验环境准备阶段就已经完成。因此接下来要做的就是打开管理代理创建向导,然后在管理代理类型下拉框中选择FIM Service Management Agent,并设置合适的名称和描述。
接下来,在数据库配置界面,需要填写实验环境中的FIM Service和FIM Synchronization Service的信息。以下截图是我实验环境中的配置。这里需要注意一点,FIM Service base address的值,由于实验环境中FIM Service和FIM Synchronization Service是安装在一台服务器上的,所以这里的服务器地址中使用localhost。同时还有一点需要注意FIM Service使用的端口是5725。当使用扩展部署时,请选择环境中FIM Service所在的服务器地址,这里可能还有使用负载均衡器的情况,以后如果有机会的话,会和大家分享。在所有配置完成后,单击下一步。
在对象类型配置界面中,除了默认选中的对象之外,还需要选择person。这里请各位注意到一点,ExpectedRuleEntry和SynchronizationRule在在之前已经解释过了,那么DetectedRuleEntry是什么东西?根据MSDN上的解释,DetectedRuleEntry(简称DRE)中保存了指向同步规则的引用数据。DRE由FIM同步服务创建并用来确定一个FIM资源是否会从FIM Service中调配(provisioning)到FIM Synchronization Service中。该对象的创建需要同时满足两个条件,一是勾选同步规则中的存在性测试,二是FIM Service验证完成之后。完成之后,单击下一步来到属性选择页面。
在当前的测试场景下,属性选择页面不需要进行额外设置,可以单击下一步继续。
然后在连接器筛选器页面,根据"Miss MIIS" Carol Wapshere的最佳操作实践的建议,需要为管理员和同步服务帐号建立筛选器。筛选器的建立方法如下:
在Filter Type中选择Declared,然后单击按钮“New...”,在出现的筛选器创建页面中选择MVObjectID作为筛选条件。然后分别添加GUID即可。而管理员和同步服务账号的GUID是已知GUID,因此可以作为筛选条件。
Administrator: 7fb2b853-24f0-4498-9534-4e10589723c4
Sync Account: fb89aefa-5ea1-47f1-8890-abe7797d6497
完成之后,下一步就来到配置对象映射的页面。高亮Person之后,单击Add Mapping按钮,然后选择person。这样就能确保外部系统中对象能被正确映射到Metaverse中,完成之后单击下一步。
接下来就是属性流配置页面,由于测试用的外部数据源只有五个属性,员工号,姓名,显示名,姓和名。因此配置起来相对比较容易。但是大家注意为了让用户能在FIM Portal中正常显示,姓名会被映射到多个Metaverse属性。我们先来看配置好的效果。
具体配置过程是,先选中“Object Type: Person”行,然后在“Build Attribute Flow”框中分别选择数据源中的属性和Metaverse中属性,并选择Row Direction中选择Import。最后单击New按钮,完成一个入站属性流的创建。接下来将Flow Direction改成Export,然后单击New按钮,随后就是为剩下的属性依次创建属性流。完成之后单击下一步。
在配置Deprovisioning选项页面中,目前可以保持默认的“Make them disconnectors”选项即可。完成之后单击下一步。
在配置扩展页面中,由于暂时不需要额外的扩展,因此单击完成即可。
通过以上的介绍,各位了解到了管理代理的创建过程,然后这只是万里长征中的第一步,接下来需要为管理代理配置创建运行配置信息,也就是定义管理代理的运行模式。
定义管理代理运行模式
首先是CORP File MA。因为该管理代理连接到的外部系统只是一个普通的文本文件而已,是无法实现所谓的增量导入和同步功能。因此与此相对应,Corp File MA的运行配置信息中只需要Full Import和Full Synchronization即可。运行配置信息的创建步骤如下:
选中某一个管理代理后,单击右键,在出现的快捷菜单中单击“Configure Run Profile”菜单项。随后就会出现“Configure Run Profile for "Corp File MA"”对话框,然后单击New按钮。依次设置配置信息名称,所要执行的步骤和File类型MA所需的数据文件。各位可以将最开始创建的CSV文件复制到界面中所示的位置。
随后我们在新建另外一个步骤为“Full Synchronization”的运行配置。完成后的效果如下图所示。
至此,File Corp MA的配置工作暂时就告一段落。接下来要为FIM MA配置相应的运行配置信息。由于FIM MA支持增量信息导入方式,因此在创建运行配置信息的时候需要把这个特性反映出来,所以需要为FIM MA创建5个运行配置信息。具体步骤和之前的相同,只需要注意在Configure Step的时候选择合适的Step即可。
(未完待续)