ArcGIS Server 9.3 安全管理机制(转)

内容来源于esri.com的training seminar,Implementing Security for ArcGIS Server dot net Solutions,由diligentpig翻译整理

一、概览
连接ArcGIS Server的两种方式:
Local:对于此种连接方式,客户端(如Desktop)直接通过Local Connection连接到GIS Server(SOM&SOC),AGS通过Windows用户组保证安全性,即agsusers和agsadmin组。添加到agsusers用户组中的成员可以使用GIS Server,添加到agsadmin用户组中的成员可以管理agsserver。9.2和9.3中都采用此种方式来保证GIS Server的安全性。
Internet:对于此种连接方式,客户端(Desktop,Explorer或Web浏览器)通过www方式链接到Web Server(Web Services&Web Applications)。AGS通过ArcGIS Server Manager来管理Web Server的安全性。
如图:


1.jpg


控制资源的访问权限。对于Web Applications,不同的用户对于app的访问权限不同。比如,分析人员可以访问用于地图分析的web app,而制图人员可以访问用于地图编辑的web app;对于Web Services,不同的用户对于各种services的访问权限也不同。比如,所有用户都可以使用一台GIS Server上的用于地图浏览的service,而只有分析人员能够使用具有地图分析功能的service,制图人员则可以访问用于地图编辑的service。如图:


2.jpg


AGS通过三个步骤来实现自己的安全机制。
Users&Roles                       用户&角色。将不同需求的用户赋予不同的角色(将用户分组),同一个Role的用户拥有相同的权限。
Authentication                    识别。通过用户名和密码来识别用户身份。
Authorization                      授权。根据识别出来的用户身份赋予其相应的权限。

存储Users&Roles的途径:Windows,SQL Server,自定义途径。
Windows:如采取此种方式,则相同roles的用户分到同一用户组中。Authenticate(用户身份识别)由IIS来完成。一般对局域网用户采取此种方式,因为本机上可能已经存储了网内的账户信息。通过计算机管理,本地用户和组来操作。如图:首先禁用匿名账户访问,然后根据需求使用下面不同的选项。


3.jpg



SQL Server:将用户和角色信息存储在SQL Server数据库中(一般是SQL Server 2005 Express,因为VS开发环境附带此数据库;Server的安装盘上也有)。通过ArcGIS Server Manager来操作。Authentication的工作由ASP.NET完成。具体操作:进入manager,左侧security,configure locations use SQL Server。如图:


4.jpg


之后具体操作可根据屏幕提示完成。

自定义途径:如Oracle Provider或XML Provider。Authentication的工作由ASP.NET完成。如果自定义的方式提供了相应api,则可以在ags manager中进行操作,否则使用与之配套的工具进行操作。获得了custom provider后,通过修改ags的安全配置文件,在manager中增加操作选项。具体请参见帮助。略。

至此,完成了对用户身份鉴别的准备工作。
为方便后面描述,我们在manager中,security,roles中创建browser,analyst,editor三个角色,在security,users中创建一个user1用户(用户密码至少由7个字符组成,并且须包含字母数字意外的字符,如_,#,$,%等),将此用户添加到browser角色中。如图:


5.jpg


[ 本帖最后由 diligentpig 于 2008-10-27 21:01 编辑 ]

TAG:

菩提老王的葡萄架 diligentpig 发布于2008-10-27 19:39:16
二、Web Applicaitons的安全管理
1、定义用户与角色。(已完成)
2、设置web app权限。权限存储在app本身中,asp.net通过web.config来赋予不同角色不同的访问权限。如图:


6.jpg



此图中,浏览器发出请求,根据user存储位置的不同,来判断是由IIS还是ASP.NET来完成识别用户身份和角色的工作;然后由ASP.NET根据用户身份赋予其一定权限来访问web app。
需要注意的是,根据前面的设置,如果是由IIS完成Authentication,则需要禁用IIS中的匿名用户访问;如果是由ASP.NET完成Authentication,则可以继续启用IIS的匿名用户访问。
接下来的操作:


7.jpg



manager中,application,点击需要进行安全管理的应用程序后面的小锁,在弹出的对话框中添加允许访问此应用程序的角色(用户组),则该角色中的所有用户可以通过登陆来访问此应用程序。未添加的角色中的用户或其他用户不能访问此程序。在前面添加的user1可以通过登陆访问此程序(设置了应用程序权限后,登陆页面由ags自动生成),其他用户则不能访问。这样就实现了对Web Applicaitons的安全管理。
对web app进行安全管理后的登陆界面:


10.jpg



此外,可以在manager中相应的Applicaiton高级选项中:


8.jpg


选择https(默认是http)来启用SSL加密web通信,从而有效保护通信不被泄漏。这需要在IIS的设置中,选择Digest Authentication一项。如图:


9.jpg



这样就完成了对Web Applicaitons的安全管理工作。

[ 本帖最后由 diligentpig 于 2008-10-27 20:09 编辑 ]
菩提老王的葡萄架 diligentpig 发布于2008-10-27 19:40:04
三、对Web Services的安全管理


1.jpg



我们也可以对GIS Server上发布的Services进行安全管理。不同于对Web App的安全管理,如果一个service启用了安全机制,那么安全验证由使用这个service的web app来提供,这是自动完成的,而每一个使用此web app的用户则不需要注意到这些细节(而对web app进行管理之后,每个使用此web app的用户都得通过登陆来通过安全验证以使用此web app);如果是通过客户端比如Desktop来使用一个启用了安全机制的service,则需要在catalog中进行验证后使用,如图:(add gisserver,use services,填写用户名和密码。是在manager中创建的用户和相应的密码)


2.jpg



与前面相同,访问启用了安全管理的services首先要完成对用户身份的Authentication,根据users&roles存储位置的不同来决定是由IIS还是ASP.NET来完成此项工作;在Authentication之后,由SOM根据用户身份来赋予用户对service的访问权限。如图:


3.jpg



首先需要说明一下GIS Server中services的组织方式。9.3中可以通过文件夹来组织发布的services,即将services发布到不同的文件夹中(不论是在manager或catalog中发布service的时候都有相应的选项)。如图:


5.jpg



在上图中,根文件夹中有一个service(左下角的),每一个客户端都可以使用这个service;在根文件夹中创建了一个internal文件夹,里边有两个services。而对internal这个文件夹赋予相应的role:anylists,则只有anlysts角色的用户才能使用这个文件夹底下的services。对右下角这个service(在internal文件夹中)赋予editor角色,则只有editor角色的用户才能访问这个服务,即使是analysts角色也不能访问。可以看出,可以在文件夹和各服务两个级别对service进行安全管理,而每个service的设置会覆盖父文件夹的设置。

那么如何对services进行安全管理呢?也是通过manager来完成。首先需要在manager,security,settings中启用对services的安全管理,如图:


6.jpg


启用后:


7.jpg



注意:一旦启用了对services的安全管理,则无法在manager中关闭这个功能(至于在什么地方来关闭它,我想……这和没有钥匙却要开保险柜是一个道理)。因为设计中考虑,既然开启了对services的安全管理,则不允许任意一个可以访问manager的人来轻易禁用已经设计好或者已经在使用的安全管理了。

具体操作,可以在manager,services,manage folder,permissions中来添加对一个文件夹的角色管理,


8.jpg



也可通过每个service后面的小锁来针对单独的serivce进行角色管理。


9.jpg



至此,就实现了ArcGIS Server 9.3中的安全管理机制。

 

posted on 2009-12-01 15:17  鱼香肉丝  阅读(233)  评论(0编辑  收藏  举报