Internet 安全性总览
ArcGIS Server 可用于保护 Web 应用程序和 Web 服务。本节主要介绍如何将访问应用程序和服务的用户限制为已授权的用户。当然,其他安全性问题也适用于 ArcGIS Server 系统,例如 ArcGIS Server 访问数据时使用的帐户、在服务器上执行的代码的安全性,以及设备的物理安全性。有关使用 ArcGIS Server 安全性的附加信息,请参阅实现安全性的方法。
使用 ArcGIS Server 可以管理 Web 服务和 Web 应用程序的安全性。需要执行的安全性的关键任务如下:
ArcGIS Server 服务安全性的常见配置,这部分对各种选项予以总结。可以使用管理器执行其中的大多数任务。有关各项任务的详细信息将在此主题以下的各个章节中给出。Internet 安全性复选列表也用作实现服务和应用程序安全性的指南。
定义用户和角色的管理
任一访问控制机制的基本功能都包括验证用户身份的能力。所有的身份验证机制都要求将用户的信息以及用户所属的角色集中存储在系统中的某个位置。ASP.NET 应用程序允许通过操作系统或 ASP.NET 成员资格提供程序来存储和管理安全性。ArcGIS Server 使用由 ASP.NET 提供的这两个用户存储选项。
有关存储用户的位置的决策在很大程度上取决于应用程序和服务的访问群体。例如,如果您主要想构建 Intranet 应用程序,则最好利用操作系统中可用的现有用户和组来授予访问应用程序的权限。同样,如果要创建 Internet 应用程序并且不希望 Web 用户为活动目录中的用户,则最好在 ASP.NET 成员资格提供程序中存储这些用户。有关设置用户和角色的详细信息,请参阅有关设置用户和角色的概述。
在 ArcGIS Server 中,仅使用 ArcGIS Server 管理器即可轻松地为 Microsoft SQL Server 配置 ASP.NET 成员资格提供程序。不过,ASP.NET 成员资格框架非常灵活,可支持很多自定义的提供程序,例如其他数据库、XML 文件、活动目录、LDAP 等。在系统中配置了这些自定义提供程序后,可以配置 ArcGIS Server 来使用它们。
以下链接总结了配置用户和角色的方式并且提供了每个选项的详细信息:
- Windows 操作系统用户和组
- ASP.NET 成员资格提供程序
- Microsoft SQL Server(使用 ArcGIS Server 管理器配置)
- 自定义(由管理员/开发人员配置,随后使用 ArcGIS Server 管理器集成)
选择身份验证方法
身份验证是对正在尝试访问系统的用户进行识别的过程。用户提供凭据(通常是用户名和密码)来应对系统的身份验证。身份验证方法用于确定服务器验证用户身份的方式。
身份验证的选项取决于用户和角色存储的选择。
用户存储 |
身份验证 |
---|---|
Windows 操作系统用户和组 |
IIS |
ASP.NET 成员资格提供程序 |
ASP.NET |
身份验证方法也因所提供的安全级别而异。选择适合您情况的方法之前,请仔细阅读文档并与安全人员联系。
适用于 ArcGIS Server for Microsoft .NET Framework 的身份验证方法如下:
- IIS 身份验证
- 集成 Windows 身份验证
- 在 Windows Server 2008 和 Windows Vista 中被称为 Windows 身份验证。
- 通常仅用在 Intranet 中而不通过 Internet 使用。
- 仅当用户为 Windows 操作系统用户时使用。
- 当浏览器是与服务器在同一本地网络中的 Internet Explorer 时,会自然地通过用户的已登录识别,而没有登录提示。这同样适用于 ArcGIS 客户端(Desktop、Engine、ArcGIS Explorer)。这样,用户无需显式登录即可连接并使用服务。
- HTTP Basic 和 Digest
- 在 Intranet 和 Internet 中使用。
- 仅当用户为 Windows 操作系统用户时使用。
- 浏览器用户通常会看到一个标准的弹出登录对话框。
- 集成 Windows 身份验证
- ASP.NET 身份验证
- 基于窗体的身份验证
- 用于用户存储是 SQL Server 或自定义提供程序时的 Web 应用程序。
- 浏览器用户通常会在用于登录的 Web 页面中看到一个窗体。
- 基于令牌的身份验证
- 在 ArcGIS Server 中实现。
- 仅适用于 Web 服务,而不适用于应用程序。
- 客户端通过传递用户名和密码从服务器获得一个令牌,随后使用该令牌访问服务。
- 使用任一用户存储。
- 基于窗体的身份验证
可根据需要,通过设置多个 ArcGIS Server Web 实例支持多种身份验证方法。每个实例都要被绑定到同一 GIS 服务器,但要针对不同的身份验证方法进行配置。
有关身份验证方法的指导原则,请参阅 ArcGIS Server 服务安全性的常见配置。有关设置用户和角色的概述中包含关于身份验证方法的附加信息。
实现安全套接字层 (SSL)
根据用户存储和身份验证方法的要求,您可能需要获得一个 Web 服务器的 SSL 证书。SSL 能够使用 HTTPS,对客户端和 Web 服务器之间的通信进行加密。一般来说,SSL 在使用 HTTP Basic 身份验证、基于令牌的身份验证或基于窗体的身份验证对用户身份进行验证时是必不可少的,尽管使用其他身份验证方法 SSL 也可以增加凭据安全性。了解有关设置 SSL 的详细信息。
设置服务和应用程序的权限
对于要访问某个服务或应用程序的用户,必须在该服务或应用程序中为角色(该用户是此角色中的一个成员)添加权限。ArcGIS Server 权限以角色为基础。通过允许角色(而不是允许单个用户)来为管理器中的服务、服务文件夹或应用程序添加权限。
将安全性应用于 Web 服务时,它将应用于 Web 服务的所有窗体:SOAP、REST 和 OGC(例如 WMS)。如果允许某个角色(例如“规划员”)访问管理器中的服务,则该角色中的用户将可以通过 SOAP、REST 以及任何已针对服务启用的 OGC 方法来访问服务。“服务目录”也会自动考虑安全性设置,因此只有已登录用户才能查看允许他们访问的受保护服务。
了解有关保护与服务之间建立的 Internet 连接和保护 Web 应用程序的详细信息。
ArcGIS Server 服务安全性的常见配置
下表显示了 ArcGIS Server 服务安全性的常见配置。这基于服务配置方式和位置的三个方面:(1) 服务部署在 Intranet 上还是在 Internet 上;(2) 用户和角色存储的类型;(3) 身份验证方法。
除了添加注释的地方之外,其余所有配置均支持全部客户端(Web、JavaScript、ArcGIS Desktop、OGC 和 KML)。
网络 | 用户/角色存储 | 身份验证 | 注释 |
Intranet |
无 |
不适用 |
无 ArcGIS Server 安全性。防火墙将服务/应用程序限制为内部用户。 |
Windows 域用户/角色(组) |
集成的 Windows 身份验证 | ||
HTTP Basic/Digest |
JavaScript 应用程序必须使用代理服务器/重定向程序。 | ||
Windows 域用户,SQL Server 角色 |
集成的 Windows 身份验证 | ||
HTTP Basic/Digest |
JavaScript 应用程序必须使用代理服务器/重定向程序。 | ||
Internet |
无 |
不适用 |
无 ArcGIS Server 安全性。所有服务对全部用户开放。 |
Windows 用户/角色 |
HTTP Basic/Digest |
JavaScript 应用程序必须使用代理服务器/重定向程序。 | |
Windows 用户,SQL Server 角色 | 2 个 ArcGIS Web 实例
(1 个基于 HTTP Basic/Digest,1 个基于令牌) |
HTTP Basic/Digest 身份验证支持 SOAP、OGC、KML;基于令牌的身份验证支持 REST 访问。 | |
SQL Server 用户和角色 |
基于令牌 |
不支持 OGC 或 KML 客户端。 | |
自定义提供程序 |
基于令牌 |
不支持 OGC 或 KML 客户端。 |