• 软件测试技术
  • 软件测试博客
  • 软件测试视频
  • 开源软件测试技术
  • 软件测试论坛
  • 软件测试沙龙
  • 软件测试资料下载
  • 软件测试杂志
  • 软件测试人才招聘
    暂时没有公告

字号: | 推荐给好友 上一篇 | 下一篇

怎样用微软IIS实现身份认证管理详解

发布: 2008-5-26 13:30 | 作者: webmaster | 来源: 本站原创 | 查看: 66次 | 进入软件测试论坛讨论

领测软件测试网 MIIS概观

MIIS(Microsoft Identity Integration Server)由包含配置信息及数据的后端SQL Server 2000数据库和服务组成。下图就是MIIS的逻辑构成:



数据源的数据进出MIIS都要经过名为连接器空间的区域。MIIS中的对象大致相当于数据库中的记录。连接器空间中的对象相应的称为连接器对象。当连接器空间中创建了连接器对象后,MIIS为后者分配一个全局唯一标识符(GUID)。

连接器对象具有属性。对象大致相当于数据库中的记录,属性则相当于记录的字段。连接器对象的锚属性常为数据源的关键字段。

Metaverse是存放传输到其他数据库的数据的地方。数据离开连接器空间、进入Metaverse的过程称为映射(projection)。管理代理通过以下操作控制数据进出连接器空间:

·导入(staging):将数据从数据源1输入连接器空间1

·同步(Sync):将数据输入Metaverse,并输出至连接器空间2

·导出(Export):将数据从连接器空间2输入到数据源2

MIIS通过上述操作记录对象是否发生过修改。这样MIIS就可以只移动修改过的数据,从而加快处理速度。

随着数据导出到数据源2,伴随着名为 "provisioning"的数据源增加新数据的过程以及名为"deprovisioning"的移除数据的过程。

样例描述

本文的样例代码模拟了一个典型的MIIS场景。它用SQL Server 2000 数据库中自带的Northwind数据作为员工信息来源。它的作用是从Northwind员工表发送员工身份号、姓、名和雇佣日期字段至Metaverse,随后再发送至另一个SQL Server 2000 数据库。

下载样例代码

下载地址:http://www.developer.com/img/2005/07/MIISSource.zip。

身份识别认证

所有操作及许多MIIS开发都是由身份管理器(identity manager )控制的。



身份管理器可分为三个主要工具:操作(operation)、管理代理(management agent)及Metaverse Designer。操作能使您看到MIIS内发生的活动。

用Metaverse Designer更新Metaverse 正如上面所讨论的,Metaverse是对象进出的中转站。Metaverse中包括您想与其他系统集成的数据。在Metaverse中,您必须创建两样东西:对象及其属性。当您从Metaverse Designer工具中选择"创建对象类型"选项,就会弹出下面的对话框:



一旦您选择了"创建对象类型",输入对象的名称,并选择可选属性(或自己创建新的属性)。下面是"新属性"对话框:



在属性类型下拉式列表中,属性类型有整数型、布尔型和其他数据类型。您还可以选择索引数据,加快数据库访问速度。注意:Metaverse中的属性名称必须是唯一的。

创建好Metaverse对象后,就可以开始向Metaverse内添加数据。管理代理将控制数据如何进出Metaverse。

配置管理代理

管理代理是MIIS活力的源泉。它们管理连接器空间,并配置进入Metaverse的数据。要创建新的管理代理,点击工具条上的管理代理按钮,并从动作菜单中选择"创建"项。从下图的管理代理设置对话框中,您可以看到有许多种管理代理可供选择。



事实上,除了上面列出的之外,您还可以创建自己的管理代理。MIIS的软件开发工具包中就有创建自定义的管理代理的文档。

在本例中,您需要创建两个管理代理:一个用于控制进入Metaverse的HumanResourceData对象的数据,另一个则是控制流出HumanResourceData对象的数据。由于您还要从SQL Server 2000数据库中移入和移出数据,所以您还得创建SQL Server管理代理。

配置SQL Server 2000管理代理的第一步是选择服务器和表(或视图)(见下图)。



如果您选择集成身份验证,就必须输入用户名和域。当您设置好数据库信息,MIIS管理代理就从表设置中读取信息,并在连接器空间中设置合适的信息。下图的对话框显示了表中的列设置信息。



这一对话框中两个主要的设置是锚(或关键字段)和连接器的对象类型。

MIIS管理代理下一步主要的设置是映射规则。您可以以两种方式设置流入Metaverse的信息:映射规则和加入规则。在这两种规则下,MIIS确定何时拷贝新对象到Metaverse的技术不同。映射规则把来自数据源的所有数据都输入到映射对话框中指定的Metaverse对象中。



加入规则相当于数据库的更新。当您启用加入规则后,就会根据您在管理代理中设置的加入规则,更新Metaverse 中已有的对象

最后一步是配置属性数据流动。属性数据流动把进出的数据映射到Metaverse 中的字段(属性)。下图显示了Northwind数据流入Metaverse 的属性数据流动。



数据流出Metaverse 的管理代理与流入时的管理代理有以下几个根本不同之处:

·它没有映射规则

·属性流动从Metaverse 指向流出的目标数据源

·在配置信息中没有锚值属性数据流动

·为了便于部署和版本控制,您可以将所有配置信息导出至XML文件

配置好管理代理之后,就可以定义开始导入、导出和同步的过程了。

复制数据至Metaverse 中:导入与同步

管理代理通过运行概要文件控制导入、导出和同步。运行概要文件包括一系列称为步骤的操作,步骤可以合并或者分离。下图显示了运行步骤的配置屏幕:



样例中创建了称为"导入(Import)"的运行概要文件,它的作用是导入Northwind对象类型。它还创建了名为"同步"的同步运行概要文件,它会根据您先前定义好的映射规则和属性流动规则,把导入的Northwind对象转移到Metaverse中。它随后继续与由名为"MetaverseToExternalDB"的管理代理所管理的"TestDatabase"连接器空间同步。下图是运行"同步"运行概要文件后的结果。



MIIS导出和Provisioning

正如之前提到的,Provisioning是创建帐号的过程。为了在连接器空间2内创建新的对象,您必须使用Visual Studio.NET创建和配置Metaverse规则扩展组件。在工具菜单中选择"选项",弹出"选项"对话框:



"创建规则扩展项目"选项会打开新的Visual Studio.NET项目,连同一个类和相应的存根函数(stub function)。为执行provisioning,IMVSynchronization.Provision 函数是您唯一需要编写的代码。代码如下:

void IMVSynchronization.Provision
(MVEntry mventry)
     {
               CSEntry csentry;
               ConnectedMA ManagementAgent;
			   // Management agent object
               int Connectors = 0;
			   // Management agent connectors
               ReferenceValue DN;
			   // Distinguished name attribute
 
               csentry = null;
 
               if(mventry["EmpID"].IsPresent)
               {
          ManagementAgent = 
		  mventry.ConnectedMAs["MetaverseToExternalDB"];
                           Connectors = 
		ManagementAgent.Connectors.Count;
                       if ( Connectors == 0 )
                     {
      DN = ManagementAgent.EscapeDNComponent(mventry["
	  EmpID"].Value.ToString());
 csentry = ManagementAgent.Connectors.
 StartNewConnector("TestDatabase");
         csentry.DN = DN;
           csentry["EmployeeID"].Value = 
		   mventry["EmpID"].Value.ToString();
              csentry.CommitNewConnector();
                     }
               }
         }


要增加帐号至连接器空间,您要用到两个关键对象:MVEntry和CSentry。MVEntry对象用于控制来自Metaverse对象的访问。CSentry对象代表了创建在连接器空间中的对象。

当MIIS确定必须要在连接器空间内创建新对象时,它就调用 provision 函数,通过MVentry类传输适当的Metaverse对象。要创建新的连接器空间对象,只需在管理代理中的连接器集合上调用"StartNewConnection"以创建CSentry对象,随后在CSentry对象上调用"CommitNewConnector",以把对象保存至连接器空间。

剩下的就是创建把数据从连接器空间2导出至目标数据源的运行概要文件。

调试和测试管理代理和Metaverse规则扩展

正如上述提到的,Metaverse规则扩展是您在Visual Studio中创建的.NET组件。与任何Visual Studio .NET项目一样,您可以用Visual Studio 工具菜单中的"Debug Processes"选项,调试您的组件。在Processes窗口内,显示所有会话的进程后,选择miiserver.exe进程,并点击"attach"按钮。

现在,当您改变Northwind数据库时,执行运行概要文件,就可以把数据复制到Metaverse及目标数据源。

延伸阅读

文章来源于领测软件测试网 https://www.ltesting.net/

TAG: iis 管理 微软 详解 IIS 身份认证


关于领测软件测试网 | 领测软件测试网合作伙伴 | 广告服务 | 投稿指南 | 联系我们 | 网站地图 | 友情链接
版权所有(C) 2003-2010 TestAge(领测软件测试网)|领测国际科技(北京)有限公司|软件测试工程师培训网 All Rights Reserved
北京市海淀区中关村南大街9号北京理工科技大厦1402室 京ICP备10010545号-5
技术支持和业务联系:info@testage.com.cn 电话:010-51297073

软件测试 | 领测国际ISTQBISTQB官网TMMiTMMi认证国际软件测试工程师认证领测软件测试网