此处提供了对 Esri 产品企业级解决方案的安全性信息的集中访问。目的是帮助 IT 架构师、管理者和管理员了解 Esri 的安全策略以及如何安全实施 ArcGIS 平台。
----------------------------------------------------------------------------------
版权所有,文章允许转载,但必须以链接方式注明源地址,否则追究法律责任!
From: resources.arcgis.com
Blog: http://blog.youkuaiyun.com/linghe301
----------------------------------------------------------------------------------
身份验证
身份验证是验证传输终端另一方身份的过程。
对于企业来说,有大量的身份验证方案可供选择。常规的企业身份验证机制使用 Web 服务器、由 JavaEE 容器管理的或单一登录网关解决方案。
本文提供了针对三种主要 GIS 解决方案访问机制的身份验证方法:
- Web 应用程序
- Web 服务
- 本地连接
身份验证方法
无
- 这是 ArcGIS Server 的默认配置,目的是简化初始设置。但从安全性角度考虑,不建议使用默认配置。
ArcGIS Server 本地连接
- 由 SOM 服务器上的操作系统的 agsusers 和 agsadmin 组进行处理。
- agsadmin 或 agsusers 组中的任意一名成员连接到服务器后,即可以访问服务器上所有正在运行的服务。
- 只可以对通过 Internet 进行的连接,限制同一服务器上部分服务的访问。
- 如果不希望用户通过本地连接使用服务,可选择保持 agsusers 组为空。
Web 服务器身份验证
- 基本式身份验证 - 使用针对某目录的用户名和密码来验证客户身份。客户凭据是以类似于明文形式的 Base64 编码串进行传输,因此,这并不是最安全的选择。为提高安全性,使用 SSL 证书和 HTTPS 进行身份验证。
- 摘要式身份验证 - 通常不使用。
- Windows 集成身份验证 - 可为拥有 Internet Explorer 浏览器的 Intranet 用户提供“单一登录”体验。在域中使用 Kerberos 或在工作组环境中部署时使用 NTLM。
- 证书 - 调用程序提供 Web 服务器稍后验证的 X.509 客户证书。
JavaEE 容器管理安全性
- 控制“Web 服务”和“Web 应用程序”的安全性
- 基本式、摘要式或基于窗体的登录控件
- 由 ArcGIS Server 管理器驱动用户界面
- 使用恰当的用户组和角色来配置您的应用程序容器
- 有关了解有关如何设置用户组和角色,请参阅您的 JavaEE 容器文档
ArcGIS Server 令牌服务
- 随 ArcGIS Server 9.3 引入
- 跨开发平台
- 跨 API - SOAP & REST
- 跨产品 - Desktop、Explorer、Web 服务和应用程序
- 不是基于 SAML 的令牌
- 根据客户的反馈/需求,Esri 会考虑提供可使用基于 SAML 或 CAS 令牌的可扩展的令牌服务。
基于 ArcGIS 窗体的身份验证
- 用于“Web 应用程序”
- 浏览器用户会在用于登录的 Web 页面中看到一个窗体。
同时支持多种身份验证方法
用户和角色存储
Java
- Apache Derby(默认)
- 用户、角色及权限可以完全在 ArcGIS Server 管理器中管理
- 外部数据库
- 用户、角色及权限可以完全在 ArcGIS Server 管理器中管理
- 关系数据库中的现有信息不能利用
- LDAP
- ArcGIS Server 管理器对“用户”和“角色”只有“只读”访问权限,因此可被分配各种权限
- MS-活动目录
- ArcGIS Server 管理器对“用户”和“角色”只有“只读”访问权限,因此可被分配各种权限
- 自定义主存储
.NET
- Windows 用户和组(默认)
- 通常用于本地网络用户,若与 Windows 集成身份验证相结合,可为用户提供 SSO 体验
- 通过本地 Web 服务器帐户或“域”帐户的“操作系统”工具来管理用户和组
- 服务权限由 ArcGIS Server 管理器管理
- 应用上述提及的任意 Web 服务器身份验证选项
- 一些客户倾向于根据需求设置“活动目录”提供程序,但是这需要进行其他配置
- SQL Server
- 用户、角色和权限全部在 ArcGIS Server 管理器中管理
- 自定义提供程序
- ASP .Net 活动目录提供程序
- 与 Windows 用户和组选项类似,但是提供了多个可导致大量其他配置的额外实现选项
- 通过将登录 UI 嵌入 Web 网页实现为 Web 应用程序使用令牌服务
- 可隐藏域名称(如适用)
- 可访问“匿名”角色
- 可与 MS AZMan 结合进行管理
- 使用身份验证管理器进行基于角色的访问控制
- ASP .Net 活动目录提供程序
----------------------------------------------------------------------------------
版权所有,文章允许转载,但必须以链接方式注明源地址,否则追究法律责任!
From: resources.arcgis.com
Blog: http://blog.youkuaiyun.com/linghe301
----------------------------------------------------------------------------------
授权
授权是指对某一用户、程序或进程授予访问权限。
ArcGIS 的既有设置提供基于角色的访问控制 (RBAC)
- 服务级别安全性
- ArcGIS 管理器可用于分配对服务的访问权限,这些服务可被分组到各个文件夹中,从而通过继承来简化管理
- 跨 Esri 产品线进行授权管理
依据角色显示或隐藏内容
- 通过 ArcObjects 和/或 Web 层限制 GUI
- 开发工具包中的示例 -“Common_Security”
- Silverlight 博客
- AzMan - 由微软提供的一个用于设计和实施基于角色的授权的工具。如果要围绕着具体的操作和任务来设计更加周密的基于角色的授权方式,或者如果要在运行时赋予管理员创建、删除和管理分配给角色的权限,可使用该工具。
高级别安全性
使用关系型数据库模式的“行级别安全”或“要素类级别安全”
- 多版本实例的应用可能会显著降低 RDBM 的性能
- SDE 视图可用于限制访问
通常,不同的角色在 ArcGIS Server 安全设置以外会分配到不同的协议和服务,如下图所示:
----------------------------------------------------------------------------------
版权所有,文章允许转载,但必须以链接方式注明源地址,否则追究法律责任!
From: resources.arcgis.com
Blog: http://blog.youkuaiyun.com/linghe301
----------------------------------------------------------------------------------
过滤器
过滤器是一类安全机制的统称,此类安全机制在 Web 服务器执行攻击或无效请求之前尝试将其截获。本文讨论的过滤器包括:
- 防火墙
- 反向代理
- Web 应用程序防火墙
- 反病毒软件和入侵检测
防火墙
为了达到最佳的性能和便于实现,Esri 建议不要使用防火墙来分隔以下 ArcGIS Server 组件。
- 应用程序开发框架 (ADF)
- 服务器对象管理器 (SOM)
- 服务器对象容器 (SOC)
通常在“隔离区”(DMZ) 中部署 Web 服务器,从而保护内部系统不受外部 Internet 用户的干扰。因为要将 ADF 部署至通过 DCOM 与 ArcGIS Server 组件进行通信的 web 服务器,所以通常的解决方案是在 DMZ 中部署反向代理 Web 服务器,而 DMZ 指向内部网络上安装了 ADF 且无需穿过其他防火墙就可与其他 ArcGIS Server 组件进行通信的 Web 服务器。
引入访问 REST API(无需 ADF)的客户端后,将 Web 服务器部署在 DMZ 中即无需为 DCOM 通信配置防火墙。这更符合标准的 Web 服务器部署,因此对客户安全团队更具吸引力。
反向代理
虽然反向代理有助于模糊内部网络的详细信息,但是模糊处理不一定会提升安全性。反向代理可以利用规则过滤出无效请求来提供更高的安全性。如果客户需求强烈,我们将考虑在“资源中心”中提供反向代理规则,以帮助锁定 ArcGIS 实现。
正如在“防火墙”部分所提及的,反向代理对于使用 ArcGIS Server ADF 的客户来说是一种常规的实现方法。Esri 现在提供三种反向代理解决方案的文档说明:
Web 应用程序防火墙
大部分流量都可通过 HTTP 端口 80 穿过防火墙。Web 应用程序防火墙可在 80 端口读取 Web 流量并尝试过滤出无效的请求和攻击。
ModSecurity 是组织使用的常规 WAF,并且与作为“反向代理”的 Apache 兼容。如果客户需求强烈,我们将考虑在“资源中心”中提供 ModSecurity WAF 规则,以帮助锁定 ArcGIS 实现。
侵入检测/防护
侵入检测和防护在降低由误报警带来的管理开销方面取得巨大进展。据“计算机安全协会”统计,现在 50% 以上的组织都使用这些类型的系统来辅助保护系统环境。
----------------------------------------------------------------------------------
版权所有,文章允许转载,但必须以链接方式注明源地址,否则追究法律责任!
From: resources.arcgis.com
Blog: http://blog.youkuaiyun.com/linghe301
----------------------------------------------------------------------------------
加密
加密可将信息变得无法读取,除非读取者持有密钥。在“ArcGIS 解决方案”的很多领域都可以利用加密来确保机密性。需重点考虑加密的领域有:
- 移动中的数据
- 网络(内部 LAN 以及与外部系统的通信)
- 静止数据
- 由“操作系统(文件)”或数据库管理的“数据存储”
- 配置文件的设置
网络
SSL
- SSL 是一种用于连接外部客户端的常规加密机制
- 在“高级安全性”部署的“内部系统”之间
- 客户端连接到 RDBMS SSL(由 RDBMS 通过“直连”提供)
- 客户端连接到 Web 服务器的 SSL(通常由 Web 服务器通过端口 443 提供)
- 将 SSL 限用于保护管理功能
- 有时足以满足“基本安全”需要
- .NET REST API 管理员将页面重新定向至 SSL
- 将属性 "UseSslForLoginAndAdminin" REST config.properties 设置为 true
- Java REST API 管理员将页面重新定向至 SSL
- 在 web.xml(REST war 文件一部分)中添加“传输保证”机密性安全约束
- “.NET 管理器”管理员重新定向至 SSL
- 利用 Web.config 中的属性来启用 SSL
- authenticationService enabled="true" requiredSSL="true"
- 为“管理器”将 IIS 网站设置为需要使用 SSL
- 利用 Web.config 中的属性来启用 SSL
IPSec
- 独立于应用程序图层进行加密管理
- VPN 通道的常规加密机制
- 在“高级安全性”部署的“内部系统”之间
- 在服务器 OS 或防火墙级别可进行配置
基于文件的数据存储
- 操作系统
- 实现成本低,但对性能的影响较明显
- 硬件(磁盘)
- 对性能的影响最小,但仅在近期才可行
- 应用程序
- “Adobe PDF 加密”可与 PKI 相结合
基于文件的配置设置
在可能情况下,利用“Windows 集成的安全性”来保护数据库连接字符串
- 字符串仅包含服务器位置和 DB 名称(无密码)
- 加密字符串并将其存储在“注册表”中
- 仅针对“系统管理员”和“进程”使用 ACL
默认情况下,ArcGIS Server 会加密存储在 Web.Config 文件中的敏感信息,但是当实现自定义应用程序时,您需要确保敏感信息已被加密
使用 Tomcat 的站点可能会在 JNDI 资源定义文件中明文存储 JDBC 数据资源连接的密码。
- 要满足“基本”安全需要,需创建可扩展 BasicDataSourceFactory 的类并使用加密密码进行配置,请参阅 http://java.sys-con.com/node/393364/print
- 要实现“标准”和“高级”安全性,需使用内置安全功能的 Web 应用程序服务器解决方案
- JBOSS 和 org.jboss.resource.security.SecureIdentityLoginModule 是低成本的解决方案
数据库
透明数据加密 (TDE)
- 低成本可移植解决方案 - SQL Express 2008 w/TDE
- 如今大部分数据库供应商都提供该方法
- 由于考虑到对性能的影响,通常仅在移动系统或“高级安全性”部署上进行实现
- 独立于 ArcGIS 软件进行操作
- 会对性能产生显著影响
----------------------------------------------------------------------------------
版权所有,文章允许转载,但必须以链接方式注明源地址,否则追究法律责任!
From: resources.arcgis.com
Blog: http://blog.youkuaiyun.com/linghe301
----------------------------------------------------------------------------------
日志记录与审核
提供有效的日志记录和检测对于应用程序的安全性及可靠性非常重要。日志可用于检测可疑活动,从而快速高效地提前指示系统所遭遇的所有攻击。如果日志指示失败,可导致您的应用程序易于受到否认威胁的攻击,即用户否认它们的操作。在法律诉讼中,也可能需要日志文件来证明罪行。如果日志信息恰好在资源访问时而且由访问资源的同一例程生成,则审核通常被视为最具权威性。
在企业级实现中,日志记录和审核可以由多个组件提供,这些组件包括:
- Esri 组件
- Web 服务器
- 操作系统
- 关系数据库
请考虑以下特定于 ArcGIS 的日志记录策略:
- 调整 ArcGIS Server 的日志记录级别以满足审核要求
- 可以使用 Esri 的“地理数据库历史”来追踪随时间的变化情况
- 可以使用 Esri 的 ArcGIS Job Tracking 在企业范围内对地理空间数据编辑执行历史追踪
- 在地理数据库中对记录的每次编辑以及编辑的描述信息,都将构成独立的事务
- 事务记录在 OGC GML 中以用于互操作
请考虑以下日志记录策略的通用最佳实践:
- 审核用户管理事件
- 集中日志记录和检测
- 审核非正常活动
- 审核关键业务的操作
- 创建安全日志文件管理政策,如,限制对日志文件的访问、仅允许用户拥有写入权限等。
- 不要在日志或审核文件中存储敏感信息
- 按角色审核数据库访问
- 基于 DML 关联审核事件
- 插入、更新、删除
- 基于 DML 关联审核事件
- “审核踪迹”以对象形式存储在数据库中
----------------------------------------------------------------------------------
版权所有,文章允许转载,但必须以链接方式注明源地址,否则追究法律责任!
Blog: http://blog.youkuaiyun.com/linghe301
----------------------------------------------------------------------------------