集成安全性是在ArcGIS10.0推出来的,可以将Server的用户角色权限传递到企业数据库中(目前只支持Oracle数据库),这样可以利用Oracle的权限功能,可以在图层和要素数据集级别对请求进行控制,例如可以对同一要素数据集的字段和要素个数进行控制,让不同的用户看到不同的字段和要素,跟多信息请查看Oracle相关资料。
集成安全性是一种安全模型,模型中发出命令或请求的最终用户的身份可在系统的所有层级中使用,以使每个层级都能够以最终用户的身份强制执行访问控制。
集成安全性可用于 Web 应用程序,该应用程序通过 Internet 连接使用 ArcGIS Web 服务。ArcGIS Server 通过 ArcGIS Web 服务处理程序将 Web 用户的身份从 Web 应用程序自动传输到 Oracle数据库。
要使用集成安全性,只需要按照如下步骤:
l 在数据库中创建一个创建地图的用户(数据来自数据库,可以使用已有的SDE)
CREATE USER map IDENTIFIED BY map
DEFAULT TABLESPACE SDE_TBS
TEMPORARY TABLESPACE temp;
GRANT CONNECT, RESOURCE TO map;
l 创建访问web service的数据库用户(用户名使用小写字母,因为web service将用户名以小写字母传递,对于域用户请用字符串括起来并带上域,如:CREATE USER "
CREATE USER liuyu IDENTIFIED by liuyu;
DEFAULT TABLESPACE SDE_TBS
TEMPORARY TABLESPACE temp;
GRANT CONNECT,RESOURCE to liuyu;
alter user liuyu grant connect through map 红色部分不能少不然会有问题
CREATE USER sishui198 IDENTIFIED by sishui198
DEFAULT TABLESPACE SDE_TBS
TEMPORARY TABLESPACE temp;
GRANT CONNECT,RESOURCE to sishui198;
alter user sishui198 grant connect through map
l 设置web service账号的访问权限
CREATE ROLE shengjie NOT IDENTIFIED;
GRANT SELECT ON map.shengjie TO shengjie;
GRANT shengjie to liuyu;
CREATE ROLE henghui NOT IDENTIFIED;
GRANT SELECT ON map.shenghui TO shenghui;
GRANT shenghui to sishui198;
l 在ArcGIS Server中创建和Oracle匹配的角色和用户
l 设置身份传递
在http://localhost:6080/arcgis/admin/system/properties中输入下列json语句,如下图:
l 创建地图文档并发布
用map用户连接map,作为数据源 ,配图完成以后发布成地图服务 ,下面是地图内容:
l 测试集成安全性
可以在catalog或者创建一个Web 应用程序来测试刚才的操作,看看是否有变化。
下面是我用liuyu这个用户看到的地图服务:
下面是我用sishui198这个用户看到的效果:
我们用下面这幅图对集成安全性的设置以及使用做一个完整的说明:
集成安全性简单的说就是将ArcGIS Server的用户和角色传递到数据库中,然后使用数据库的一些特性在数据访问上进行精细访问控制,这在我们遇到的一些用户需求中是很有用的,但是不足之处是只目前只支持Oracle数据库,更多信息请看:
http://resources.arcgis.com/en/help/main/10.1/index.html#/Integrating_ArcGIS_Server_security_with_an_Oracle_database/0154000005rq000000/
总结:集成安全性能是我们最大限度的使用数据库自身的安全特性(Oracle),这不仅可以然我们在图层方面进行控制,同时可以在字段和数据方面进行控制,这个安全特性也让我们的数据得到最大限度的保护,集成安全性只是ArcGIS Server安全的一个内容,关于更多的内容,请继续关注我们的博客。