ArcGIS Server 集成安全性
集成安全性是一种安全模型,模型中发出命令或请求的最终用户的身份可在系统的所有层级中使用,以使每个层级都能够以最终用户的身份强制执行访问控制。
在 ArcGIS Server 10 版本中,集成安全性可用于 Web 应用程序,该应用程序通过 Internet 连接使用 ArcGIS Web 服务。ArcGIS Server 通过 ArcGIS Web 服务处理程序 (WSH) 将 Web 用户的身份从 Web 应用程序自动传输到 ArcGIS SOM 和 SOC 进程。
如果 ArcGIS Web 服务使用的是 Oracle 数据库中的数据,那么 Web 用户的身份还可被传递到数据库。此功能目前不适用于其他数据库系统。
集成安全性配置
如果已在 ArcGIS Server 上启用安全性,则 Web 用户的身份会自动传递到 ArcGIS Web 服务。随后 ArcGIS SOM 和 SOC 进程便能够以此用户身份强制执行访问控制。
在配置数据库层级的安全性时,将为每个用户分配对数据库中的表(和/或列和行)的访问权限,而不是像在 ArcGIS Server 中那样分配对角色/组的访问权限。要配置 Oracle 数据库的集成安全性,需要执行以下操作:
定义地图作者
为支持集成安全性,地图文档的作者必须具备所需的数据库权限。您需要定义创作地图文档要使用的数据库帐户。作为数据库管理员,可通过如下方式创建权限并将其分配给将创作地图的用户:
CREATE USER <map author> IDENTIFIED BY <map author password> DEFAULT TABLESPACE <tablespace_name> TEMPORARY TABLESPACE <temp_tablespace_name>; GRANT CONNECT, RESOURCE TO <map author>;
有关用于创建用户的附加信息和要求,请参阅 Oracle 文档。
为 ArcGIS Web 服务用户定义数据库帐户
对于要使用的集成安全性,每个 ArcGIS Web 服务用户都必须具备相应的数据库帐户。作为数据库管理员,可以为每个将使用 ArcGIS Web 服务的用户创建数据库帐户。还需要通过地图作者数据库帐户授予每个用户连接权限。
CREATE USER <ArcGIS Web user> IDENTIFIED by <ArcGIS Web user> DEFAULT TABLESPACE <tablespace_name> TEMPORARY TABLESPACE <temp_tablespace_name>; GRANT CONNECT,RESOURCE to <ArcGIS Web user>; ALTER USER <ArcGIS Web user> GRANT CONNECT THROUGH <map author>;
CREATE USER "<domain name>\<user name>" IDENTIFIED by <user name>
可根据需要对每个创建的数据库帐户授予权限,以与用户被授予的 Oracle 地理数据库的使用权限相对应。有关设置用户权限的详细信息,请参阅什么是用户权限。
以下示例中定义了两个角色,以便向 ArcGIS Web 服务用户授予权限。定义的第一个角色可以使数据库在两个地理数据库图层中进行选择(查看数据的权限),第二个角色可以编辑图层。
--Role for displaying boundary layers CREATE ROLE sel_boundary_role NOT IDENTIFIED; GRANT SELECT ON <map author>.States TO sel_boundary_role; GRANT SELECT ON <map author>.Counties TO sel_boundary_role; GRANT sel_boundary_role to <user one>; -- Role for displaying transportation layer CREATE ROLE sel_trans_role NOT IDENTIFIED; GRANT SELECT,UPDATE,INSERT,DELETE ON <map author>.Roads TO sel_trans_role; GRANT sel_trans_role to <user two>;
还可以配置 Oracle 数据库中各行(要素)和各列(属性字段)的权限。有关详细信息,请参阅 Oracle 数据库文档。
创建地图文档并将其发布到 ArcGIS Server
可使用 ArcMap 或任何其他 ArcGIS 客户端来创建文档。在添加地理数据库资源时,需要使用定义地图作者中所介绍的地图作者数据库帐户的凭据。使用任意 ArcGIS Server 客户端将地图文档发布到 ArcGIS Server。请注意,地图服务能力(例如 WMS 和 KML)将强制施行与标准 ArcGIS Web 服务 (SOAP/REST) 相同的安全性限制。
启用 Oracle 的集成安全性
在配置 Oracle 数据库后,需要在 ArcGIS Server 中启用安全性。而且在配置 ArcGIS Server 安全性期间,需要创建与之前部分中创建的 Oracle 用户和角色完全匹配的用户和角色。有关配置 ArcGIS Server 安全性的说明,请参阅配置安全性概述。
在配置 ArcGIS Server 安全性后,需要启用 ArcGIS Server 数据库集成安全性。在启用该功能后,ArcGIS Server 会将从 Web 服务处理程序接收到的身份传递到 Oracle 数据库。要启用数据库集成安全性,可使用文本或 XML 编辑器打开位于 <ArcGIS 安装目录>\server\system\ 文件夹中的 Server.dat 文件。在该文件内部找到 <属性> 元素。在此元素中,可按如下方式添加新的属性元素:
<Properties> <PushIdentityToDatabase>true</PushIdentityToDatabase> ... </Properties>
在更新 Server.dat 文件后,将其保存并关闭。重新启动 ArcGIS 服务器对象管理器进程以应用此更改。
测试集成安全性
通过 ArcGIS Server 管理器或 Eclipse/NetBeans IDE 可创建 Web 制图应用程序,该应用程序将调用对集成安全性提供支持的 ArcGIS Web 服务。在 Web 浏览器中查看已部署的 Web 应用程序。只有用户授予权限的图层/要素应该显示在 Web 应用程序中。通过创建使用不同 ArcGIS Web 用户的凭据的新 Web 制图应用程序,就可以重复进行此测试。
ArcGIS Web 服务必须通过 ArcGIS Server Internet 连接来使用。还必须提供用于连接服务的 ArcGIS Web 用户名和密码。