ArcGIS 身份验证模型和提供程序

ArcGIS 借助标准 IT 身份验证机制、协议和技术实现构建、提供支持和不断演变,确保它与现有组织的安全策略、实践和基础架构顺利集成。ArcGIS 产品在访问受保护的资源(包括文件源、DBMS 源和基于 Web 的源)时遵循标准身份验证实践。ArcGIS Enterprise 和 ArcGIS Online 均支持内置用户存储以及 IT 组织使用和提供的各种企业身份提供者 (IdP),例如 Microsoft Entra ID、Active Directory 或 Okta。 ArcGIS 客户端和服务器支持跨单层或多层架构中的每一层进行身份验证,包括访问 Web 服务、门户、DBMS、文件存储、数据湖和其他源。 本主题将提供有关在架构设计过程中考虑的身份验证过程和选项的更多详细信息。

身份提供者

ArcGIS 支持并推广单点登录 (SSO) 用户身份验证体验,这些体验依赖于组织的现有 IdP 和相关安全基础架构来管理用户身份和凭据以及身份验证机制。以这种方式与 IdP 集成可确保 ArcGIS 在既有的任务关键型安全基础架构上无缝构建,并具有强大、集中的用户配置、管理、监测和审计资源。 ArcGIS 通过广泛接受的身份验证模式(例如 SAML、OIDC、IWA/AD、LDAP 或 PKI)与组织的 IdP 集成。 这种集成方法简化了安全模型,并允许 ArcGIS 依靠 IdP 直接对用户进行身份验证、提供身份验证服务、管理访问权限(例如,添加或移除权限,或启用或禁用账户),并提供单点登录 (SSO) 用户体验以及漏洞和防入侵资源。

使用 ArcGIS 建立身份

在 ArcGIS 中使用基于 Web 的资源时,用户会在初始身份验证后建立身份。 身份可通过多种方法建立,但常规顺序如下所述:

  1. 用户可通过 ArcGIS 登录对话框启动登录,也可以在系统提示他们进行身份验证时(例如,在访问受保护资源时)启动登录。
  2. ArcGIS 登录提示可能显示为重定向、弹出窗口或嵌入内容。 将显示该特定 ArcGIS Enterprise 部署或 ArcGIS Online 组织的可用登录选项,用户可在其中选择一个选项,或者如果仅启用了一个选项,则显示唯一可用选项。 此登录窗口和基础进程基于 OAuth 标准,因此,在某些情况下,系统可能会要求用户批准对外部应用程序的访问,就像其他应用程序或系统使用的其他 OAuth 工作流一样。
  3. 在大多数情况下,用户将选择使用其 SAML 或 OIDC 身份提供者登录。 在此过程中,他们会单击一个按钮,以触发该 IdP 的登录进程。 每个 IdP 的配置都不同,可以支持各种身份验证模式。 在该 IdP 中成功进行身份验证后,系统会让用户返回到 ArcGIS 并提供一个 SAML 声明或 OIDC 声明集,以从 IDP 的角度将用户标识为有效用户(已批准使用该应用程序并经过正确身份验证)。 此时,ArcGIS 会为用户生成 OAuth 代码和后续 ArcGIS 访问令牌,然后该用户可以访问所需的应用程序或服务。
  4. 或者,用户可以选择通过在 ArcGIS 应用程序的登录窗口中输入登录凭据,直接使用内置用户、AD 或基于 LDAP 的账户登录。 成功通过身份验证后,用户会收到一个 OAuth 代码,该代码可交换为访问令牌。

无论身份验证如何完成,生成的用户会话都将完全基于 ArcGIS 访问令牌。 此令牌在应用程序代码中维护,或作为 HTTP Cookie 存储和传递,并在特定持续时间内有效。 默认令牌过期时间为 120 分钟,但可以刷新令牌并请求延长时间。 除了访问令牌外,还会生成一个 refresh_token,可用于刷新用户的访问令牌,并在使用时间超过 2 小时后延长其会话。

用户身份还包括适用于整个 ArcGIS 系统和用户体验的用户特定属性,例如:

  • 用户类型 – 例如 Viewer、Contributor、Creator 或其他
  • 用户角色 – 例如发布者、管理员、自定义或其他
  • 授权许可证
  • 通过基于角色的访问控制设置的各种权限,例如群组成员资格

在传统的客户端 - 服务器配置(如 DBMS 或文件服务器)中使用基于桌面的资源时,用户的身份基于与服务器技术或操作系统功能关联的安全模型。

在后端自动化方案(例如服务器到服务器或操作系统基于进程的通信)中,这些交互中的客户端将遵循上述模式来建立具有关联登录凭据的身份。

有关 ArcGIS 特定身份验证模式的详细信息,请访问 Esri 开发人员站点

ArcGIS 中的用户身份验证协议和机制

要与 ArcGIS Enterprise 或 ArcGIS Online 建立用户或编程会话,可使用以下受支持的标准行业协议和机制对整个 ArcGIS 系统中的用户和客户端进行身份验证。 其中包括:

企业身份 - SAML 和 OIDC

Esri 在 ArcGIS EnterpriseArcGIS Online 中为基于 SAML 的登录账户提供支持,并提供一组特定于身份提供者的文档ArcGIS EnterpriseArcGIS Online 组织也完全支持 OpenID Connect (OIDC)。 对于可使用此选项的所有组织,Esri 建议使用 SAML 或 OIDC 登录账户。

在 ArcGIS 环境中,SAML 和 OIDC 都允许用户使用来自受信任身份提供者(例如 Google、Microsoft Entra ID、Okta 或其他企业身份系统)的现有凭据进行登录,从而促进安全访问。 当用户尝试在没有当前身份验证会话的情况下访问 ArcGIS 系统时,系统会将其重定向到身份提供者进行身份验证。 身份提供者将处理身份验证步骤,其中将向系统提供用户名、密码、一次性代码或其他因素,如果成功,则身份提供者将发出 SAML 声明或 OIDC 声明,该声明将发送回 ArcGIS 以验证用户的身份。

使用 SAML 或 OIDC 的优势如下:

  • 简化用户体验:通过 SAML 或 OIDC 支持的单点登录,用户可以使用一组凭证访问多个应用程序。 这减少了记住多个用户名和密码的x需求,从而增强了整体用户体验。
  • 提高安全性:这些模式利用身份提供者提供的强身份验证机制,例如多重身份验证 (MFA)。 这可确保只有授权用户才能访问敏感资源。
  • 集中式身份管理:组织可以通过其身份提供者集中管理用户身份和访问权限。 这简化了用户管理,并确保所有集成应用程序的安全策略一致。
  • 减少 IT 开销:通过使用 SAML 或 OIDC 进行身份验证,IT 部门可以减少管理多个身份验证系统所需的时间和精力。 这样可以降低管理成本并提高资源利用率。
  • 提高合规性:集中式身份验证和授权可帮助组织保持安全标准和法规的合规性。 它可实现对所有应用程序中的用户访问和活动进行清晰的审计追踪。
  • 灵活的身份验证选项:临时用户或第三方外部承包商可能没有集中式身份提供者的永久账户,可根据需要为他们创建内置账户以供其使用,并且 ArcGIS 支持同时使用这两种模式。
  • 移动 GIS 应用程序:对于用户需要随时随地访问安全资源的移动 GIS 应用程序,例如 ArcGIS Field Maps 和 ArcGIS Survey123,企业身份尤其有用。 使用此模式时,这些应用程序可利用现有身份提供者对用户进行身份验证,从而实现无缝且安全的登录体验。
  • 第三方应用程序:对于构建与 ArcGIS 交互的第三方应用程序的开发人员,他们可以使用类似的身份验证模式来安全地访问用户数据,并支持通过单点登录进行跨应用程序会话。 这允许创建创新型解决方案,以扩展 ArcGIS 的功能,同时保持稳健的安全标准。

适用于 ArcGIS Server 组件和 Portal for ArcGIS 的内置身份存储

工作原理

内置标识存储可用于直接在 ArcGIS Server 组件Portal for ArcGIS 中管理用户和群组。 这意味着您不需要外部系统即可处理用户身份验证。 ArcGIS 通过验证存储在其专用数据库中的用户名和密码处理身份验证过程。 此方法通常用于初始设置、开发和测试,因为它支持轻松快速地创建账户。

实例

假设您正在为一小组 GIS 专业人员设置一个新的 ArcGIS Enterprise 门户。 您可以直接在门户中为每个团队成员快速创建用户账户。 每个用户随后可以使用其凭据登录,以访问组织内的共享地图、应用程序和其他资源。

优点

易用 - 无需与外部系统进行复杂的集成。

设置快速 - 非常适合快速入门,尤其是在开发和测试环境中。

独立 - 所有用户数据都在门户内进行管理,从而简化管理过程。

局限性

可扩展性 - 不适合拥有许多用户的大中型组织,因为管理过程复杂。

安全性 - 与使用 LDAP 或 SAML 相比,可能无法满足某些组织的严格安全要求。

IWA、AD 和 LDAP

集成的 Windows 身份验证 (IWA)Active Directory (AD) 以及轻量级目录访问协议 (LDAP) 协议(仅适用于 ArcGIS Enterprise)通常在组织内用于面向内部或网络工作流。 Esri 建议仅将 IWA、AD 和 LDAP 配置用于面向内部的 ArcGIS Enterprise 部署。

其他模式

使用客户端证书的公钥基础设施 (PKI) 跨多种身份验证模式使用,包括 IWA、SAML 和 OIDC。

多重身份验证 (MFA) 通常应用于 ArcGIS 内置登录账户,或在使用外部身份提供者的 SAML 或 OIDC 进程中应用。 这是推荐的最佳实践,尤其是对于高权限账户。

基于应用程序的身份验证是另一种身份验证模式,与内置用户模式相关,其中身份验证使用 API 密钥或客户端 ID 和客户端密钥对完成。[^1]

对于需要对其 WAN 进行开放访问或通过 Internet 对应用程序进行公共访问的组织,ArcGIS 还支持匿名用户访问整个系统中的大多数资源类型。

[^1]:ArcGIS Location Platform、ArcGIS Online 和 ArcGIS Enterprise 11.4 或更高版本支持 API 密钥。

服务器到服务器身份验证

虽然在 ArcGIS 系统中完成的大多数使用工作流都基于用户,其中用户正在与向服务器发出请求的网页或应用程序进行交互,但其他工作流需要服务器到服务器或编程级别的交互,无论是用于系统之间的集成、自动执行数据任务,还是在不同的类服务器或后端系统之间提供其他级别的连接。

虽然允许匿名身份的基于服务器的请求很容易支持,但当服务或终端节点受到保护时,有许多选项可用于对这些请求进行身份验证,并且需要某种级别的身份验证或标识。 适用于该领域的一些常规建议如下:

  • 大多数服务器到服务器通信无法使用基于 SAML 或基于 OIDC 的身份验证模式,因为这些 IdP 需要使用 HTML 界面进行交互式登录体验,并且通常包括多重身份验证提示或验证码验证。
  • 源自服务器上运行的地理处理工具或计划脚本工具的请求通常采用运行该进程的服务账户或本地账户的身份。 尤其是在基于 IWA 的方案中,此用户账户的身份和设置可能会显著影响服务器端请求是否成功。
  • 可以将 ArcGIS OAuth 的 refresh_token(从内置或企业级身份提供者生成)的使用嵌入在系统中,并根据需要用于生成会话令牌。 有效的刷新令牌也可以交换为新的刷新令牌,因此可以创建逻辑来维护此刷新令牌并使其无限期有效。
  • API 密钥是另一种对服务器端进程进行身份验证的方法,其中可以为特定服务和工作流程生成 API 密钥,并在服务器端进程中用于进行身份验证和执行某些作,例如地理编码或路由请求。
Top