安全声明标记语言 (SAML) 是一种在身份提供者与服务提供者(此处为 Portal for ArcGIS)之间交换身份验证和授权数据时提供安全保护的开放标准。完成此操作的方法被称为 SAML Web 单点登录。该门户与 SAML 2.0 兼容,并且能够与支持 SAML 2 Web 单点登录的身份提供者相集成。设置 SAML 的优势是您不需要为访问 Portal for ArcGIS 的用户创建其他登录帐户;他们可以使用在企业标识储存中已设置的登录帐户。本文档中将此过程描述为设置企业登录帐户。
此外,还可向门户提供有关标识存储中企业群组的元数据。此操作允许您 在使用标识存储中的现有企业群组的门户中创建群组。成员登录门户后,访问内容、项目和数据由企业组中定义的成员规则控制。如果您未提供必要的企业群组元数据,仍可以创建组。然而,成员规则将由 Portal for ArcGIS 而不是您的标识存储控制。
与 Portal for ArcGIS 中的 ArcGIS Online 用户名匹配
如果在您的 ArcGIS Online 组织和门户中使用的 SAML 兼容身份提供者相同,则可以将企业用户名配置为相匹配。ArcGIS Online 中的所有企业用户名的末尾均追加了组织简称。要在门户中使用相同的企业用户名,可通过在门户的安全性配置中定义 defaultIDPUsernameSuffix 属性并将其设置为与组织简称匹配。如果在企业用户从 ArcGIS Online 和门户编辑的要素服务上启用了编辑者追踪,则需要执行此操作。
SAML 登录体验
Portal for ArcGIS 支持启动服务提供者 (SP) 的企业登录帐户和启动身份提供者 (IDP) 的企业登录帐户。二者之间的登录体验不同。
启动服务提供者的登录
通过启动服务提供者登录帐户,用户可直接访问门户且系统会显示通过内置帐户(由门户管理)或由 SAML 兼容身份提供者管理的帐户进行登录的选项。如果用户选择 SAML 身份提供者选项,则将被重新定向到网页(称作企业登录管理器),系统将在此提示用户输入其企业用户名和密码。验证用户的登录帐户之后,企业级身份提供者将通知 Portal for ArcGIS 登录用户的验证身份,然后将用户重新定向回门户网站。
如果用户选择内置帐户选项,将打开门户网站的登录页面。随即用户便可输入其内置用户名和密码以访问网站。该选项不可禁用。在您的 SAML 兼容身份提供者不可用的情况下,可以使用内置帐户选项作为故障保护。
启动身份提供者的登录
通过启动身份提供者的登录帐户,用户可以直接访问企业登录管理器并登录他们的帐户。当用户提交其帐户信息时,身份提供者将直接向 Portal for ArcGIS 发送 SAML 响应。随即用户将登录并被重新定向到门户网站,用户可在该网站中立即访问资源而无需再次登录到组织。
在企业登录管理器中,使用内置帐户登录的选项不可用。要使用内置帐户登录到组织,成员需要直接访问门户网站。
SAML 身份提供者
以下教程演示了几个 SAML 兼容身份提供者与 Portal for ArcGIS 的配合使用:
- Active Directory 联合身份验证服务 (AD FS) 2.0 及更高版本
- NetIQ Access Manager 3.2 及更高版本
- OpenAM 10.1.0 及更高版本
- Shibboleth 2.3.8 及更高版本
- SimpleSAMLphp 1.10 及更高版本
在每一个链接中都会描述从身份提供者(如上所述)获取必要元数据的过程。下面介绍了通过 Portal for ArcGIS 配置身份提供者的过程。继续进行操作之前,建议联系您的企业级身份提供者的管理员以获取配置所需的参数。例如,如果组织使用 Microsoft 活动目录,则为了配置或启用企业级身份提供者的 SAML 并获取在门户上进行配置所需的参数,您应联系负责 Microsoft 活动目录的管理员。
支持多个 SAML 身份提供者
通过使用 SAML,您可以允许使用多个身份存储来访问您的门户。这是管理用户(位于组织内部或外部)的良好方式。
建立想要在门户中使用的身份存储之间的信任,可以实现这一点。这些通常由安全管理员来处理;不会在 Portal for ArcGIS 中配置信任。建立信任后,您只需要在您的门户(描述如下)中配置一个受信任的身份存储。当用户访问门户网站或身份提供者站点时,系统会通过由受信任的任意身份提供者管理的企业帐户向他们显示登录选项。
所需信息
当用户使用企业登录帐户进行登录时,Portal for ArcGIS 需要从身份提供者处接收某些属性信息。NameID 是强制属性,该属性必须由您的身份提供者在 SAML 响应中发送,才能使 Portal for ArcGIS 的联合身份验证起作用。IDP 中的用户登录时,Portal for ArcGIS 会在其用户存储中创建用户名为 NameID 的新用户。NameID 属性发送的值中允许使用的字符包括字母数字、_(下划线)、. (圆点)和 @(at 符号)。任何其他字符均会进行转义,从而在 Portal for ArcGIS 创建的用户名中包含下划线。
Portal for ArcGIS 支持企业登录的 givenName 和 email address 属性从身份提供者流入。当用户使用企业登录帐户进行登录时,如果 Portal for ArcGIS 收到名为 givenname 和 email 或 mail 的属性(无论哪种),则 Portal for ArcGIS 将使用从身份提供者处接收的值来填充用户帐户的全称和电子邮件地址。建议您从企业级身份提供者传递 email address,以便用户能够接收通知。
在您的门户中配置 SAML 身份提供者
- 以组织管理员的身份登录门户网站,并单击我的组织 > 编辑设置 > 安全性。
- 在企业登录部分,单击设置身份提供者按钮,并在打开的窗口中输入组织名称(例如,City of Redlands)。当用户访问门户网站时,此文本将显示为 SAML 登录选项的一部分(例如,Using your City of Redlands account)。
- 选择用户是否可以自动或在门户中添加帐户之后加入组织。选择第一个选项可以使用户通过其企业登录帐户登录组织,而不会受到管理员的任何干预。首次登录时,用户的帐户即会自动注册到该组织。第二个选项需要管理员使用命令行实用程序或 Python 脚本示例将必要的帐户注册到该组织。帐户注册完成后,用户即可登录组织。
提示:
建议您至少将一个企业帐户指定为门户的管理员并下移或删除初始管理员帐户。还建议您禁用门户网站中的创建帐户按钮和注册页面 (signup.html),这样用户便无法创建自己的帐户。有关详细说明,请参阅下面的将企业帐户指定为管理员部分。
- 提供 SAML 兼容企业身份提供者的必要元数据信息。您可通过指定门户将要访问以获取元数据信息的源来实现这一步。有关从认证的提供者处获取元数据的说明的链接,请参见上述 SAML 身份提供者部分。元数据信息有三个可能的源:
- URL - 提供一个能够返回有关身份提供者的元数据信息的 URL。
注:
如果您的企业级身份提供者包含自签名证书,则可能在尝试指定元数据的 HTTPS URL 时遇到错误。出现此类错误的原因是 Portal for ArcGIS 不能验证身份提供者的自签名证书。此外,可使用 URL 中的 HTTP(以下选项中的另一选项),或为您的身份提供者配置受信任的证书。
- 文件 - 上传一个包含有关身份提供者的元数据信息的文件。
- 此处指定的参数 - 通过提供以下参数直接输入有关身份提供者的元数据信息:
- 登录 URL(重定向)- 输入 Portal for ArcGIS 用来允许成员登录的身份提供者的 URL(支持 HTTP 重定向绑定)。
- 登录 URL (POST) - 输入 Portal for ArcGIS 用来允许成员登录的身份提供者的 URL(支持 HTTP POST 绑定)。
- 证书 - 为企业级身份提供者提供证书。借助此证书,可以验证 Portal for ArcGIS 从企业级身份提供者接收到的 SAML 响应中的数字签名。
注:
如需帮助确定需要提供哪些元数据信息,请联系身份提供者的管理员。
- URL - 提供一个能够返回有关身份提供者的元数据信息的 URL。
- 要完成配置过程并与身份提供者建立信任,请通过您的企业级身份提供者注册门户服务提供者元数据。从您的门户中获取元数据有两种方式:
- 在组织编辑设置页面的安全性部分,单击获取服务提供程序按钮。这样即可显示组织的元数据,然后将其作为 XML 文件保存在您的计算机上。
- 打开元数据的 URL,然后将其作为 XML 文件保存到您的计算机上。URL 为 https://webadaptorhost.domain.com/webadaptorname/sharing/rest/portals/self/sp/metadata?token=<token>,例如:https://samltest.domain.com/arcgis/sharing/rest/portals/self/sp/metadata?token=G6943LMReKj_kqdAVrAiPbpRloAfE1fqp0eVAJ-IChQcV-kv3gW-gBAzWztBEdFY。可使用 https://webadaptorhost.domain.com/webadaptorname/sharing/rest/generateToken 生成令牌。在生成令牌页面输入 URL 后,指定 Webapp URL 字段中身份提供者服务器的完全限定域名。不支持选择任何其他选项,如 IP 地址或此请求源的 IP 地址,如若选择,则可能生成无效标记。
有关在认证提供者处注册门户服务提供者元数据的说明的链接,请参见上述 SAML 身份提供者部分。
- 配置适用的高级设置:
- 加密声明 - 选择此选项以向 SAML 身份提供者指明 Portal for ArcGIS 支持加密 SAML 声明响应。启用此选项后,身份提供者将对 SAML 响应的声明部分进行加密。尽管已使用 HTTPS 对 Portal for ArcGIS 接收和发送的所有 SAML 通信进行了加密,此选项仍会添加其他加密图层。
- 启用签名请求 - 选择此选项可使 Portal for ArcGIS 对发送至身份提供者的 SAML 身份验证请求进行签名。对 Portal for ArcGIS 发送的初始登录请求签名,使身份提供者可以验证所有登录请求是否源自受信任服务提供者。
- 向身份提供者传递注销 - 选择此选项可使 Portal for ArcGIS 使用注销 URL 注销身份提供者中的用户。输入将在注销 URL 设置中使用的 URL。如果身份提供者需要对注销 URL 签名,还需选中启用签名请求选项。禁用此选项时,在 Portal for ArcGIS 中,单击登出将注销 Portal for ArcGIS 而非身份提供者中的用户。如果未清除用户的 web 浏览器缓存,使用企业登录选项尝试立即重新登录 Portal for ArcGIS 即可实现立即登录,无需向 SAML 身份提供者提供用户凭据。这是使用未授权用户或公众可轻松访问的计算机时可以利用的安全漏洞。
- 注销 URL - 输入用于注销当前登录用户的身份提供者 URL。如果身份提供者的元数据文件中已指定此属性,则会自动对其进行设置。
- 实体 ID - 可更新此值以使用新的实体 ID,以便将您的 Portal for ArcGIS 组织唯一识别到身份提供者。
- 此外,还可向门户提供有关标识存储中企业群组的元数据:
- 以组织管理员的身份登录到 ArcGIS Portal Directory。URL 格式为 https://webadaptorhost.domain.com/webadaptorname/portaladmin。
- 单击安全性 > 配置 > 更新标识存储。
- 将组配置 JSON 放置于组存储配置(JSON 格式)文本框中。
如果您的身份存储是 Windows Active Directory,请复制以下文本,然后对其进行更改,以使其包含您的站点指定的信息:
{ "type": "WINDOWS", "properties": { "isPasswordEncrypted": "false", "userPassword": "secret", "user": "mydomain\\winaccount" } }
大多数情况下,只需要更改 user 和 userPassword 参数的值。尽管以明文形式输入密码,但在门户的配置目录中存储或查看密码时,其为加密形式。用于 user 参数的帐户只需要具有在网络上查找 Windows 组的名称的权限。如果可以,请使用密码未过期的帐户。
如果您的身份存储是 LDAP,请复制以下文本,然后对其进行更改,以使其包含您的站点指定的信息:
{ "type": "LDAP", "properties": { "userPassword": "secret", "isPasswordEncrypted": "false", "user": "uid=admin,ou=system", "ldapURLForUsers": "ldaps://bar2:10636/ou=users,ou=ags,dc=example,dc=com", "ldapURLForRoles": "ldaps://bar2:10636/dc=example,dc=com", "usernameAttribute": "cn", "caseSensitive": "false", "userSearchAttribute": "cn", "memberAttributeInRoles": "member", "rolenameAttribute":"cn" } }
大多数情况下,只需要更改 user、userPassword、ldapURLForUsers 和 ldapURLForRoles 参数值。LDAP 的 URL 需要由 LDAP 管理员提供。
在上述示例中,LDAP URL 指的是特定 OU (ou=users) 中的用户。如果用户存在于多个 OU 中,则 LDAP URL 可指向较高级别的 OU,甚至是根级别(如有需要)。在这种情况下,URL 如下所示:
"ldapURLForUsers": "ldaps://bar2:10636/dc=example,dc=com",
用于用户参数的帐户需要具有在组织中查找组的名称的权限。尽管以明文形式输入密码,但在门户的配置目录中存储或查看密码时,其为加密形式。
如果将 LDAP 配置为区分大小写,则将 caseSensitive 参数设为 false。
- 输入用户存储配置 JSON 后,单击更新配置以保存更改,然后重新启动门户。
将企业帐户指定为管理员
作为门户管理员,您如何指定企业帐户将取决于用户是否能自动或在门户中添加帐户之后加入该组织。
自动加入组织
如果您选择了允许用户自动加入组织的选项,请在打开门户网站主页时登录您想用作门户管理员的企业帐户。
首次将帐户自动添加到门户时,会给帐户分配“用户”角色。只有组织的管理员可以更改帐户上的角色;因此必须使用初始管理员帐户登录门户,并将企业帐户分配给管理员角色。
- 请打开门户网站,单击“使用 SAML 身份提供者登录"选项,然后提供您想要用作管理员的企业帐户的凭据。如果此帐户属于其他人,则将用户登录到门户,以在门户中注册此帐户。
- 请验证是否已在门户中添加该帐户,然后单击登出。清除浏览器缓存和 cookies。
- 在浏览器中打开门户网站,单击“使用内置门户帐户登录”选项,然后在设置 Portal for ArcGIS 时,提供由您创建的初始管理员帐户的凭据。
- 找到将用于管理门户的企业帐户,并将此角色更改为管理员。单击登出。
您选择的企业帐户现在是门户的管理员。
手动将企业帐户添加到门户
如果您选择只允许用户在门户添加帐户之后加入组织,您将需要使用命令行实用程序或 Python 脚本示例来注册组织的必要帐户。针对用来管理门户的企业帐户,请确保选择管理员角色。
下移或删除初始管理员帐户
现在您拥有备选门户管理员帐户,可以将初始管理员帐户分配给用户角色或删除帐户。有关详细信息,请参阅关于初始管理员帐户。
防止用户创建自己的帐户
安全设置好门户的访问权限后,建议您禁用门户网站中的创建帐户按钮和注册页面 (signup.html),这样用户便无法创建自己的帐户。这意味着所有成员都使用其企业帐户和凭据登录到门户,且无法创建不必要的内置帐户。有关完整说明,请参阅禁止用户创建内置门户帐户。
禁用使用 ArcGIS 帐户登录
如果想阻止用户使用 ArcGIS 帐户登录门户,可禁用登录页面上的使用 ArcGIS 帐户按钮。为此,请执行以下步骤。
- 以组织管理员的身份登录门户网站,并单击我的组织 > 编辑设置 > 安全性。
- 在登录选项部分中,选择仅限 SAML IDP 帐户单选按钮,其中 IDP 将根据门户的配置情况而有所不同。
- 单击保存。
登录页面会显示使用身份提供者帐户登录门户按钮,而使用 ArcGIS 帐户登录按钮不可用。您可以使用 ArcGIS 帐户重新启用成员登录,方法是:在登录选项下选择 SAML IDP 帐户或 Portal for ArcGIS 帐户,其中门户的 IDP 和名称将根据配置情况而有所不同。
修改 SAML 身份提供者
可以使用移除身份提供者按钮移除当前已注册的身份提供者。仅在您已设置 SAML 兼容身份提供者的情况下才可以使用此按钮。移除身份提供者之后,可以根据需要随时设置新的身份提供者。