ArcGIS for Server安全与LDAP配置
1、安全性概述
ArcGIS Server使用基于角色的访问控制来管理对受保护资源的访问。访问GIS资源的权限只能分配给角色。单独的用户只能通过从其角色继承来获取权限。对GIS资源访问权限的身份验证一般有两种方式:基于ArcGIS令牌的身份验证;Web服务器身份验证。
(1)ArcGIS Server账号
安装ArcGIS for Server时指定的操作系统账号称为ArcGIS Server账号。ArcGIS Server账号的几种用途:
- 启动和停止支持 GIS 服务器和服务的进程。
- 读取服务后的 GIS 数据。
- 读取文件并将文件写入到 ArcGIS Server 目录;例如,创建地图缓存时,ArcGIS Server 帐户会将缓存切片写入服务器缓存目录中。
- 读取文件并将文件写入到配置存储中;例如,在管理器中创建新的集群时,ArcGIS Server 帐户会将集群配置信息写入配置存储中的文件。
- 读取文件并将文件写入 ArcGIS Server 安装位置与系统临时目录中;例如,该帐户会写入可用于排除服务器故障的日志文件。
- 读取日志消息并将日志消息写入日志目录中。
(2)集群部署时与ArcGIS Server账号相关的注意事项
- 每个 GIS 服务器都必须具有本地帐户和密码且它们完全相同。
- 授予ArcGIS for Server安装目录中所有文件夹的读取权限,以及以下文件夹的完全控制权限:
<ArcGIS for Server?安装目录 >\framework
<ArcGIS for Server?安装目录 >\geronimo
<ArcGIS for Server?安装目录 >\usr
<ArcGIS for Server?安装目录 >\bin
<ArcGIS for Server?安装目录 >\XMLSchema
- 授予服务器目录(arcgisserver\directories)的读写权限。
- 授予配置存储目录(arcgisserver\config-store)的读写权限。
- 授予日志目录(logs)的读写权限。
- 授予注册到ArcGIS Server的数据库连接文件所在目录的读写权限。
- 授予注册到ArcGIS Server的GIS数据目录的读写权限。
2、用户和角色的存储
ArcGIS Server中的用户和角色的存储主要有3中:
(1)使用内置存储的用户和角色
ArcGIS Server默认使用的是内置存储。该存储使用的是基于文件的格式。
(2)使用企业系统中的用户和角色
ArcGIS Server可采用在外部 Microsoft Active Directory 或 LDAP 服务器中管理的用户和角色实施安全性保护。ArcGIS Server将活动目录或 LDAP 服务器用作只读存储。
(3)使用企业系统中的用户和内置存储中的角色
ArcGIS Server可采用在外部 Microsoft Active Directory 或 LDAP 服务器中管理的用户和在 ArcGIS Server 内置存储中管理的角色来实施安全性保护。ArcGIS Server将活动目录或 LDAP 服务器用作只读存储。
此外,还可通过扩展实现自定义管理用户和角色的存储。
3、身份验证
前面提到,ArcGIS Server中身份验证有两种方式:基于ArcGIS令牌的身份验证;Web服务器身份验证。
基于ArcGIS令牌的身份验证主要是使用Web API开发的应用程序所采用的方式。ArcGIS Server可配置为委托第三方Web服务器(如Microsoft IIS或IBM Websphere)进行用户身份验证。这种方式下,可充分利用 Web 服务器所提供的标准身份验证机制,例如HTTP Digest 身份验证和 PKI 客户端认证身份验证等。
使用Web服务器身份验证必须在Web服务器上安装Web Adaptor,且必须启用管理选项。配置Web服务器身份验证后,ArcGIS Server将指派Web Adaptor进行身份验证。用户成功通过身份验证后, Web Adaptor会对用户信息进行加密并追加到请求中,然后转发至 ArcGIS Server。ArcGIS Server 接收用户信息并进行解密,以验证用户是否有权访问所请求的GIS服务。
4、使用OpenLDAP中的用户
OpenLDAP的部署与配置参考相关技术文档,其中定义的用户信息如下:
dn: dc=esrigz,dc=com
objectClass: domain
objectClass: top
o: esri guangzhou
dc: esrigz
?
?
dn: ou=Manager,dc=esrigz,dc=com
objectClass: organizationalUnit
ou: Manager
description: Container for manager entries
?
?
dn: ou=User,dc=esrigz,dc=com
objectClass: top
objectClass: organizationalUnit
ou: User
description: User container
?
?
dn: uid=xinli,ou=Manager,dc=esrigz,dc=com
uid: xinli
objectClass: inetOrgPerson
labeledURI: http://www.esri.com
userPassword: esri
sn: li
cn: xinli li
?
?
dn: uid=yun,ou=Manager,dc=esrigz,dc=com
uid: yun
objectClass: inetOrgPerson
mail: [email protected]
labeledURI: http://www.esri.com
sn: xin
cn: yun xin
userPassword: esri
?
?
dn: uid=arcgis,ou=User,dc=esrigz,dc=com
objectClass: inetOrgPerson
uid: arcgis
userPassword: esri
labeledURI: http://www.esri.com
sn: esri
cn: arcgis esri
mail: [email protected]
(1)在ArcGIS Server Manager站点中配置使用LDAP存储用户
端口:OpenLDAP安装时设置的端口,默认是389。
基本DN:记录用户信息的目录服务器节点标识名。如上面用户信息存储在Manager和User角色下。这里只能填其中一个。
URL:系统自动获取。
RDN属性:相对标识名,用于标识用户名称。
管理员的DN:LDAP服务器管理员的DN。
(2)测试LDAP用户信息的读取
在manager中点击用户即可查看LDAP中的用户信息。
?
?
??