安全声明标记语言 (SAML) 是一种在企业级身份提供者与服务提供者(此处为 Portal for ArcGIS)之间交换身份验证和授权数据时提供安全保护的开放标准。 完成此操作的方法被称为 SAML Web 单点登录。 该门户与 SAML 2.0 兼容,并且能够与支持 SAML 2 Web 单点登录的身份提供者相集成。 设置 SAML 的优势是您不需要为访问 ArcGIS Enterprise 门户的用户创建其他登录帐户;他们可以使用在企业标识储存中已设置的登录帐户。 本文档中将此过程描述为“设置企业登录帐户”。
此外,还可向门户提供有关标识存储中企业群组的元数据。 此操作允许您在使用标识存储中的现有企业群组的门户中创建群组。 成员登录门户后,访问内容、项目和数据由企业组中定义的成员规则控制。 如果您未提供必要的企业群组元数据,仍可以创建群组。 然而,成员规则将由 ArcGIS Enterprise 门户而不是您的标识存储控制。
匹配 ArcGIS Enterprise 门户中的 ArcGIS Online 用户名
如果在您的 ArcGIS Online 组织和门户中使用相同的 SAML 兼容身份提供者,则可以将企业用户名配置为匹配。 ArcGIS Online 中的所有企业用户名的末尾均追加了组织简称。 要在门户中使用相同的企业用户名,可通过在 ArcGIS Enterprise 门户的安全性配置中定义 defaultIDPUsernameSuffix 属性并将其设置为与组织简称匹配。 如果在企业用户从 ArcGIS Online 和门户编辑的要素服务上启用了编辑者追踪,则需要执行此操作。
SAML 登录体验
Portal for ArcGIS 支持服务提供者 (SP) 启动的企业登录帐户和身份提供者 (IDP) 启动的企业登录帐户。 二者之间的登录体验不同。
启动服务提供者的登录
通过启动服务提供者登录帐户,用户可直接访问门户且系统会显示通过内置帐户(由门户管理)或由 SAML 兼容身份提供者管理的帐户进行登录的选项。 如果用户选择 SAML 身份提供者选项,则将被重新定向到网页(称作企业登录管理器),系统将在此提示用户输入其企业用户名和密码。 验证用户的登录帐户之后,企业级身份提供者将通知 Portal for ArcGIS 登录用户的验证身份,然后将用户重新定向回门户网站。
如果用户选择内置帐户选项,则将打开 ArcGIS Enterprise 门户网站的登录页面。 随即用户便可输入其内置用户名和密码以访问网站。 该选项不可禁用。 在您的 SAML 兼容身份提供者不可用的情况下,可以使用内置帐户选项作为故障保护。
启动身份提供者的登录
通过启动身份提供者的登录帐户,用户可以直接访问企业登录管理器并登录他们的帐户。 当用户提交其帐户信息时,身份提供者将直接向 Portal for ArcGIS 发送 SAML 响应。 随即用户将登录并被重新定向到门户网站,成员可在该网站中立即访问资源,而无需再次登录到组织。
在企业登录管理器中,使用内置帐户登录的选项不可用。 要登录到内置帐户的组织,成员需要直接访问门户网站。
注:
如果由于 SAML 身份提供者的问题导致 SAML 登录失败,并且已禁用内置帐户选项,则重新启用此选项前,将无法访问 ArcGIS Enterprise 门户。 有关如何执行此操作的说明,请参阅常见问题和解决方案中的此问题。
SAML 身份提供者
Portal for ArcGIS 支持所有 SAML 兼容身份提供者。 您可以在 ArcGIS/idp GitHub 资料档案库中找到有关配置某些常见 SAML 兼容身份提供者的详细说明。
下面介绍了通过 ArcGIS Enterprise 配置身份提供者的过程。 继续进行操作之前,建议联系您的 SAML 身份提供者的管理员以获取配置所需的参数。
所需信息
当用户使用企业登录帐户进行登录时,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 身份提供者
您可以对门户进行配置,以便用户能够使用与现有本地系统配合使用的用户名和密码进行登录。 在设置企业登录帐户之前,您必须为您的组织配置默认用户类型。
- 以组织管理员的身份登录门户网站,然后单击组织 > 设置 > 安全性。
- 在通过 SAML 登录企业帐户部分中,选择一位身份提供者选项,单击设置企业登录按钮,并在随即出现的窗口中输入组织名称(例如,City of Redlands)。 当用户访问门户网站时,此文本将显示为 SAML 登录选项的一部分(例如,Using your City of Redlands account)。
- 选择用户是否可以自动或在门户中添加帐户之后加入组织。 选择第一个选项可以使用户通过其企业登录帐户登录组织,而不会受到管理员的任何干预。 首次登录时,用户的帐户即会自动注册到该组织。 第二个选项需要管理员使用命令行实用程序或 Python 脚本示例将必要的帐户注册到该组织。 帐户注册完成后,用户即可登录组织。
提示:
建议您至少将一个企业帐户指定为门户的管理员并下移或删除初始管理员帐户。 还建议您禁用门户网站中的创建帐户按钮和注册页面 (signup.html),这样用户便无法创建自己的帐户。 有关详细说明,请参阅下面的将企业帐户指定为管理员部分。
- 提供 SAML 兼容企业身份提供者的必要元数据信息。 您可通过指定门户将要访问以获取元数据信息的源来实现这一步。 您可以在 ArcGIS/idp GitHub 资料档案库中找到从认证提供者获取元数据的说明。 元数据信息有三个可能的源:
- URL - 提供一个能够返回有关身份提供者的元数据信息的 URL。
注:
如果您的企业级身份提供者包含自签名证书,则可能在尝试指定元数据的 HTTPS URL 时遇到错误。 出现此类错误的原因是 Portal for ArcGIS 不能验证身份提供者的自签名证书。 此外,可使用 URL 中的 HTTP(以下选项中的另一选项),或为您的身份提供者配置受信任的证书。
- 文件 - 上传一个包含有关身份提供者的元数据信息的文件。
- 此处指定的参数 - 通过提供以下参数直接输入有关身份提供者的元数据信息:
- 登录 URL(重定向)- 输入 Portal for ArcGIS 用来允许成员登录的身份提供者的 URL(支持 HTTP 重定向绑定)。
- 登录 URL (POST) - 输入 Portal for ArcGIS 用来允许成员登录的身份提供者的 URL(支持 HTTP POST 绑定)。
- 证书 - 为企业级身份提供者提供以 BASE 64 格式编码的证书。 借助此证书,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 地址,如若选择,则可能生成无效标记。
您可以在 ArcGIS/idp GitHub 资料档案库中找到向认证提供者注册门户服务提供者元数据的说明。
- 配置适用的高级设置:
- 加密声明 - 选择此选项以向 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 身份提供者提供用户凭据。 这是使用未授权用户或公众可轻松访问的计算机时可以利用的安全漏洞。
- 登录时更新个人资料 - 如果选择此选项,则 Portal for ArcGIS 将更新用户的 givenName 和 email address 属性(如果自上次登入后已更改)。 此选项默认为选中。
- 启用基于 SAML 的群组成员资格 - 如果选中此选项,则允许门户管理员将 SAML 身份提供者中的群组链接到在您的 ArcGIS Enterprise 门户中创建的群组。 如果选中此选项,则 Portal for ArcGIS 将解析 SAML 声明响应以确定成员所属的群组。 然后,您可以在门户中创建群组时,针对谁可以加入群组?指定由您的身份提供者提供的一个或多个企业群组。 默认情况下,此功能处于未选中状态。
- 注销 URL - 输入用于注销当前登录用户的身份提供者 URL。 如果身份提供者的元数据文件中已指定此属性,则会自动对其进行设置。
- 实体 ID - 可更新此值以使用新的实体 ID,以便将您的 Portal for ArcGIS 组织唯一识别到身份提供者。
为高可用性门户配置 SAML 兼容 IDP
在向 IDP 发送签名请求(用于登录和登出)以及解密来自 IDP 的加密响应时,Portal for ArcGIS 将使用带有别名 samlcert 的证书。 如果您正在配置高可用性 ArcGIS Enterprise 门户并使用 SAML 兼容 IDP,则在与 IDP 进行通信时,必须确保 Portal for ArcGIS 中的每个实例都使用相同证书。
确保所有实例针对 SAML 都使用相同证书的最佳方法是使用别名 samlcert 生成一个新证书,然后将其导入高可用性部署中的每个 Portal for ArcGIS 实例。
- 在 https://example.domain.com:7443/arcgis/portaladmin 登录到 Portal Administrator Directory。
- 浏览至安全性 > sslcertificates,然后单击现有 samlcert 证书。
- 单击删除。
- 重复步骤 1 到 3 以删除高可用性门户的所有实例中的现有 samlcert 证书。
- 在 ArcGIS Portal Administrator Directory 中生成新的自签名证书。
- 配置证书时,指定别名 samlcert,并将部署负载均衡器的主机名指定为常用名称以及主题备选名称中的 DNS 别名。
- 生成证书后,将其导出到 .pfx 文件:
- 启动终端会话并作为已安装 Portal for ArcGIS 的用户进行身份验证。
- 在命令行中,浏览至 <Portal installation location>/etc/ssl 目录。
- 输入以下命令以 .pfx 文件格式导出 samlcert:
..../framework/runtime/jre/bin/keytool.exe -importkeystore -srckeystore portal.ks -destkeystore samlcert.pfx -srcstoretype JKS -deststoretype PKCS12 -srcstorepass portal.secret -deststorepass password -srcalias samlcert -destalias samlcert -destkeypass password
- 从安全性 > sslcertificates > 导入现有服务器证书页面将新证书导入到每个 Portal for ArcGIS 实例中。
- 在高可用性门户中的每个实例上重新启动 Portal for ArcGIS。
可以在 ArcGIS Enterprise 门户中使用服务提供者元数据文件来验证用于与 SAML IDP 进行通信的证书在您的高可用性部署中是否相同。
- 在组织选项卡中,浏览至编辑设置 > 安全性。
- 在安全性页面上的通过 SAML 的企业登录帐户项目中,单击编辑身份提供者。 打开显示高级设置菜单,并确保选择加密声明选项。 如果未选择该选项,请将其选中,然后单击更新身份提供者以保存更改。
- 返回到通过 SAML 的企业登录帐户项目,然后选择获取服务提供者。 由此可将服务提供者元数据作为 .xml 文件导出到您的计算机。
- 打开下载的 .xml 文件。 确保存在以下短语:<md:KeyDescriptor use="encryption">。 这表示存在用于加密的证书。
- 记下小节 <ds:KeyInfo> 中的值。
- 针对部署中的每个 Portal for ArcGIS 实例重复这些步骤,以从每个实例中获取服务提供者元数据文件。
已导出的元数据文件应在 <ds:KeyInfo> 小节中具有相同的信息,由此表明在与 SAML 兼容 IDP 进行通信时,每个 Portal for ArcGIS 实例将使用相同的证书。
将企业帐户指定为管理员
作为门户管理员,您如何指定企业帐户将取决于用户是否能自动或在门户中添加帐户之后加入该组织。
自动加入组织
如果您选择了允许用户自动加入组织的选项,请在打开门户网站主页时登录您想用作门户管理员的企业帐户。
首次将帐户自动添加到门户时,会给帐户分配“用户”角色。 只有组织的管理员可以更改帐户上的角色;因此必须使用初始管理员帐户登录门户,并将企业帐户分配给管理员角色。
- 请打开门户网站,单击“使用 SAML 身份提供者登录”选项,然后提供您想要用作管理员的企业帐户的凭据。 如果该帐户属于其他人,则请该用户登录到门户,以便将帐户注册到门户。
- 请验证是否已在门户中添加该帐户,然后单击登出。 清除浏览器缓存和 cookies。
- 在浏览器中打开门户网站,单击“使用内置门户帐户登录”选项,然后在设置 Portal for ArcGIS 时,提供由您创建的初始管理员帐户的凭据。
- 找到将用于管理门户的企业帐户,并将此角色更改为管理员。 单击登出。
您选择的企业帐户现在是门户的管理员。
手动将企业帐户添加到门户
如果您选择只允许用户在门户添加帐户之后加入组织,您将需要使用命令行实用程序或 Python 脚本示例来注册组织的必要帐户。 针对用来管理门户的企业帐户,请确保选择管理员角色。
下移或删除初始管理员帐户
现在您拥有备选门户管理员帐户,可以将初始管理员帐户分配给用户角色或删除帐户。 有关详细信息,请参阅关于初始管理员帐户。
防止用户创建自己的帐户
安全设置好门户的访问权限后,建议您禁用门户网站中的创建帐户按钮和注册页面 (signup.html),这样用户便无法创建自己的帐户。 这意味着所有成员都使用其企业帐户和凭据登录到门户,且无法创建不必要的内置帐户。 有关完整说明,请参阅禁止用户创建内置门户帐户。
禁用使用 ArcGIS 帐户登录
如果希望阻止用户使用 ArcGIS 帐户登录门户,可禁用登录页面上的使用 ArcGIS 帐户按钮。 为此,请执行以下步骤。
- 以组织管理员的身份登录门户网站,然后单击组织 > 编辑设置 > 安全性。
- 在登录选项部分中,选择仅限 SAML IDP 帐户单选按钮,其中 IDP 将根据门户的配置情况而有所不同。
- 单击保存。
登录页面会显示使用身份提供者帐户登录门户按钮,而使用 ArcGIS 帐户登录按钮不可用。 您可以使用 ArcGIS 帐户重新启用成员登录,方法是:在登录选项下选择 SAML IDP 帐户或 Portal for ArcGIS 帐户,其中门户的 IDP 和名称将根据配置情况而有所不同。
修改 SAML 身份提供者
您可以使用编辑企业登录和移除企业登录按钮,编辑或移除当前注册的身份提供者。 仅在您已设置 SAML 兼容身份提供者的情况下才可以使用这些按钮。 移除身份提供者之后,您可以根据需要设置新的身份提供者。