Security Assertion Markup Language (SAML) 是一种用于在组织特定的身份提供者与服务提供者(此处为 ArcGIS Enterprise 组织)之间交换身份验证和授权数据时提供安全保护的开放标准。 此方法被称为 SAML Web 单点登录。
该组织与 SAML 2.0 兼容,并且能够与支持 SAML 2 Web 单点登录的身份提供者相集成。 设置 SAML 的优势是您不需要为访问您组织的用户创建其他登录帐户;他们可以使用在标识存储中已设置的登录帐户。 本文档中将此过程描述为设置组织特定的登录帐户。
此外,还可向门户提供有关标识存储中 SAML 群组的元数据。 此操作允许您在使用标识存储中的现有 SAML 群组的门户中创建群组。
成员登录门户后,访问内容、项目和数据由 SAML 群组中定义的成员规则控制。 如果您未提供必要的 SAML 群组元数据,仍可以创建群组。 然而,成员规则将由 ArcGIS Enterprise 门户而不是标识存储控制。
匹配 ArcGIS Enterprise 门户中的 ArcGIS Online 用户名
如果在您的 ArcGIS Online 组织和门户中使用的 SAML 兼容身份提供者相同,则可以将组织特定的用户名配置为相匹配。 ArcGIS Online 中的所有组织特定的用户名的末尾均追加了组织简称。 要在门户中使用相同的组织特定的用户名,可通过在 ArcGIS Enterprise 门户的安全性配置中定义 defaultIDPUsernameSuffix 属性并将其设置为与组织简称匹配。 如果在组织特定的用户从 ArcGIS Online 和门户编辑的要素服务上启用了编辑者追踪,则需要执行此操作。
SAML 登录
ArcGIS Enterprise 支持启动服务提供者 (SP) 的组织特定的登录帐户和启动身份提供者 (IdP) 的组织特定的登录帐户。 二者之间的登录体验不同。
启动服务提供者的登录
通过启动服务提供者登录帐户,用户可直接访问门户且系统会显示通过内置帐户(由门户管理)或由 SAML 兼容身份提供者管理的帐户进行登录的选项。 如果用户选择 SAML 身份提供者选项,则将被重新定向到网页(称作登录管理器),系统将在此提示用户提供其 SAML 用户名和密码。 验证用户的登录凭据之后,SAML 兼容身份提供者将通知 ArcGIS Enterprise 登录用户的验证身份,然后将用户重新定向回门户网站。
如果用户选择内置帐户选项,则将打开 ArcGIS Enterprise 门户网站的登录页面。 随即用户便会输入其内置用户名和密码以访问网站。 可将内置帐户选项用作故障保护,以防 SAML 兼容身份提供者不可用,前提是尚未禁用使用 ArcGIS 帐户登录的选项。
启动身份提供者的登录
通过启动身份提供者的登录帐户,用户可以直接访问登录管理器并登录他们的帐户。 当用户提交其帐户信息时,身份提供者将直接向 ArcGIS Enterprise 发送 SAML 响应。 随即用户将登录并被重新定向到门户网站,成员可在该网站中立即访问资源,而无需再次登录到组织。
在登录管理器中,使用内置帐户登录的选项不可用。 要登录到内置帐户的组织,成员必须直接访问门户网站。
注:
如果由于身份提供者的问题导致 SAML 登录失败,并且已禁用内置帐户选项,则重新启用此选项前,将无法访问 ArcGIS Enterprise 门户。 有关说明,请参阅常见问题和解决方案中的此问题。
SAML 身份提供者
ArcGIS Enterprise 支持所有 SAML 兼容身份提供者。 您可以在 ArcGIS/IdP GitHub 资料档案库中找到有关配置某些常见 SAML 兼容身份提供者的详细说明。
下面介绍了通过 ArcGIS Enterprise 配置身份提供者的过程。 继续进行操作之前,建议联系您的 SAML 身份提供者的管理员以获取配置所需的参数。
所需信息
当用户使用 SAML 登录帐户进行登录时,ArcGIS Enterprise 需要从 IdP 处接收某些属性信息。 NameID 属性为强制属性,并且必须由您的 IdP 在 SAML 响应中发送,才能使联合起作用。 由于 ArcGIS Enterprise 使用 NameID 的值唯一标识指定用户,因此建议使用常量值来唯一标识用户。 IdP 中的用户登录时,ArcGIS Enterprise 组织会在其用户存储中创建用户名为 NameID 的新用户。 NameID 发送的值中允许使用的字符包括字母数字、_(下划线)、.(点)和 @(at 符号)。 任何其他字符均会进行转义,从而在 ArcGIS Enterprise 创建的用户名中包含下划线。
ArcGIS Enterprise 支持用户的电子邮件地址、群组成员资格、名字以及姓氏从 SAML 身份提供者处流入。
用户配置文件映射
下表列出了哪些 SAML 声明值映射到哪些 Portal 用户属性:
ArcGIS 用户属性 | IdP 定义的声明属性 |
---|---|
电子邮件地址 | 电子邮件 emailaddress 邮件 urn:oid:0.9.2342.19200300.100.1.3 http://schemas.xmlsoap.org/ws/2005/05/identity/claims/emailaddress |
名字 | givenName urn:oid:2.5.4.42 http://schemas.xmlsoap.org/ws/2005/05/identity/claims/givenname |
姓氏 | surname urn:oid:2.5.4.4 http://schemas.xmlsoap.org/ws/2005/05/identity/claims/surname |
群组 | Group 群组 Role Roles MemberOf member-of http://wso2.com/claims/role http://schemas.xmlsoap.org/claims/Group urn:oid:1.3.6.1.4.1.5923.1.5.1.1 urn:oid:2.16.840.1.113719.1.1.4.1.25 注:只应为多个群组声明指定一个属性名称。 |
在门户中配置 SAML 身份提供者
您可以对门户进行配置,以便用户能够使用与现有本地系统配合使用的用户名和密码进行登录。 在设置组织特定的登录帐户之前,您必须为您的组织配置默认用户类型。
- 以组织管理员的身份登录门户网站,然后单击组织 > 设置 > 安全性。
- 在登录部分中,单击新建 SAML 登录帐户按钮,然后选择一个身份提供者选项。 在指定属性页面上,输入组织名称(例如,City of Redlands)。
当用户访问门户网站时,此文本将显示为 SAML 登录选项的一部分(例如,Using your City of Redlands account)。
- 选择自动或应管理员的邀请来指定用户是自动,还是应邀加入组织。第一个选项允许用户通过其组织特定的登录帐户登录组织,而不会受到管理员的干预。 首次登录时,用户的帐户即会自动注册到该组织。 第二个选项要求管理员使用命令行实用程序将必要的帐户注册到该组织。 帐户注册完成后,用户即可登录组织。
提示:
建议您至少将一个 SAML 帐户指定为门户的管理员并降级或删除初始管理员帐户。 还建议您禁用门户网站中的创建帐户按钮,这样用户便无法创建自己的帐户。 有关说明,请参阅下面的将组织特定的帐户指定为管理员部分。
- 指定门户将要访问以获取元数据信息的源 这将提供 SAML 兼容身份提供者的必要元数据信息。 您可以在 ArcGIS/IdP GitHub 资料档案库中找到从认证提供者获取元数据的说明。 元数据信息有三个可能的源:
- URL - 提供一个能够返回有关身份提供者的元数据信息的 URL。
注:
如果您的身份提供者包含自签名证书,则可能在指定元数据的 HTTPS URL 时遇到错误。 出现此类错误的原因是 ArcGIS Enterprise 不能验证身份提供者的自签名证书。 此外,可使用 URL 中的 HTTP(以下选项中的另一选项),或为您的身份提供者配置受信任的证书。
- 文件 - 上传一个包含有关身份提供者的元数据信息的文件。
- 此处指定的参数 - 通过提供以下参数直接输入有关身份提供者的元数据信息:
- 登录 URL(重定向)- 提供 ArcGIS Enterprise 将用来允许成员登录的身份提供者的 URL(支持 HTTP 重定向绑定)。
- 登录 URL (POST) - 提供 ArcGIS Enterprise 将用来允许成员登录的身份提供者的 URL(支持 HTTP POST 绑定)。
- 证书 - 为身份提供者提供以 BASE 64 格式编码的证书。 借助此证书,可以验证 ArcGIS Enterprise 从身份提供者接收到的 SAML 响应中的数字签名。
注:
如需帮助确定需要提供哪些元数据信息,请联系身份提供者的管理员。
- URL - 提供一个能够返回有关身份提供者的元数据信息的 URL。
- 通过您的身份提供者注册门户的服务提供者元数据,以完成配置过程并与身份提供者建立信任。 要从门户获取元数据,请执行以下操作之一:
- 在组织设置选项卡的安全性部分下,单击下载服务提供者元数据按钮以下载组织的元数据文件。
- 打开元数据的 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 身份提供者指明 ArcGIS Enterprise 支持加密 SAML 声明响应。 选中此选项后,身份提供者将对 SAML 响应的声明部分进行加密。 尽管已使用 HTTPS 对 ArcGIS Enterprise 接收和发送的所有 SAML 通信进行了加密,此选项仍会添加其他加密图层。
- 启用签名请求 - 可让 ArcGIS Enterprise 对发送至身份提供者的 SAML 身份验证请求进行签名。 对 ArcGIS Enterprise 发送的初始登录请求签名,使身份提供者可以验证所有登录请求是否源自受信任服务提供者。
提示:
启用此设置以确保 SAML 请求的完整性。 您可以随时在高级设置中启用此选项,即使您在门户的初始配置过程中跳过了此选项也是如此。
- 向身份提供者传递注销 - 可让 ArcGIS Enterprise 使用注销 URL 来注销身份提供者的用户。 输入将在注销 URL 设置中使用的 URL。 如果身份提供者需要对注销 URL 签名,还需启用启用签名请求设置。 未选中此设置时,在 ArcGIS Enterprise 中单击登出将注销 ArcGIS Enterprise 而非身份提供者中的用户。 如果未清除用户的 web 浏览器缓存,使用组织特定的登录选项立即重新登录 ArcGIS Enterprise 即可实现登录,无需向 SAML 身份提供者提供用户凭据。 这是使用未授权用户或公众可访问的计算机时可以利用的安全漏洞。
- 登录时更新个人资料 - 可让 ArcGIS Enterprise 更新用户的 givenName 和 email address 属性(如果自上次登入后已更改)。 默认情况下,会启用该选项。
- 启用基于 SAML 的群组成员资格 - 可让门户管理员将 SAML 身份提供者中的群组链接到在您的 ArcGIS Enterprise 门户中创建的群组。 如果启用此设置,则 ArcGIS Enterprise 将解析 SAML 声明响应以确定成员所属的群组。 然后,您可以在门户中创建新群组时,针对谁可以加入群组?指定由您的身份提供者提供的一个或多个 SAML 群组。默认情况下,该功能已禁用。
注:
在 ArcGIS Enterprise 门户中创建新群组时,您输入的群组名称必须与 SAML 声明中的属性值中返回的外部 SAML 群组的精确值相匹配。 如果您不确定正确的值,请联系负责配置您组织的 SAML 系统的管理员。
- 注销 URL - 输入用于注销当前登录用户的身份提供者 URL。 如果身份提供者的元数据文件中已指定此属性,则会自动对其进行设置。
- 实体 ID - 可更新此值以使用新的实体 ID,以便 SAML 身份提供者可以唯一地识别您的 ArcGIS Enterprise 组织。
将组织特定的帐户指定为管理员
作为门户管理员,您指定组织特定的帐户的方式具体取决于用户是否能够自动或应管理员的邀请加入该组织。
自动加入组织
如果您选择了允许用户自动加入组织的自动选项,请在打开门户网站主页时登录您想用作门户管理员的组织特定的帐户。
首次将帐户自动添加到门户时,会给帐户分配为新成员配置的默认角色。 只有组织的管理员可以更改帐户上的角色;必须使用初始管理员帐户登录门户,并将组织特定的帐户分配给管理员角色。
- 请打开门户网站,单击“使用 SAML 身份提供者登录”选项,然后提供您想要用作管理员的 SAML 帐户的凭据。 如果该帐户属于其他人,则请该用户登录到门户,以便将帐户注册到门户。
- 请验证是否已在门户中添加该帐户,然后单击登出。 清除浏览器缓存和 cookies。
- 在浏览器中,打开门户网站,单击“使用内置门户帐户登录”选项,然后在设置 ArcGIS Enterprise 时,提供由您创建的初始管理员帐户的凭据。
- 找到您想要用于管理门户的 SAML 帐户,并将此角色更改为管理员。 单击登出。
您选择的 SAML 帐户现在是门户的管理员。
手动将组织特定的帐户添加到门户
如果您选择应管理员的邀请选项只允许用户通过邀请加入组织,则您必须使用命令行实用程序将必要的帐户注册到该组织。 针对用来管理门户的 SAML 帐户,请选择管理员角色。
下移或删除初始管理员帐户
现在您拥有备选门户管理员帐户,可以将初始管理员帐户分配给其他角色或删除帐户。 有关详细信息,请参阅关于初始管理员帐户。
防止用户创建自己的帐户
您可以通过在组织设置中禁止用户创建内置帐户来防止用户创建自己的内置帐户。
阻止用户使用 ArcGIS 帐户登录
要阻止用户使用 ArcGIS 帐户登录门户,请关闭登录页面上的 ArcGIS 登录切换按钮。
- 以组织管理员的身份登录门户网站,然后单击组织 > 设置 > 安全性。
- 在登录部分,关闭 ArcGIS 登录切换按钮。
登录页面会显示使用身份提供者帐户登录门户的按钮,而 ArcGIS 登录按钮不可用。 要以 ArcGIS 帐户重新启用成员登录,请打开登录部分中的 ArcGIS 登录切换按钮。
修改或移除 SAML IdP
设置 SAML IdP 后,您可以单击当前已注册 SAML IdP 旁边的编辑按钮 来更新其设置。 在编辑 SAML 登录帐户窗口中更新设置。
要删除当前注册的 IdP,请单击 IdP 旁边的编辑按钮 ,然后在编辑 SAML 登录帐户窗口中单击删除登录帐户。 移除 IdP 后,可以选择设置新的 IdP 或 IdP 联合。
SAML 安全性的最佳做法
要启用 SAML 登录帐户,可以将 ArcGIS Enterprise 配置为 SAML IDP 的 SP。 为确保获得可靠的安全性,请考虑实施以下描述的最佳做法。
对 SAML 登录和注销请求进行数字签名,并对 SAML 声明响应进行签名
签名旨在确保 SAML 消息的完整性,并在面对中间人 (MITM) 攻击时起到防护作用。 对 SAML 请求进行数字签名还可以确保该请求由受信任的 SP 发送,从而使 IdP 能够更好地处理拒绝服务 (DOS) 攻击。 配置 SAML 登录帐户时,请在高级设置中打开启用签名请求选项。
注:
要启用签名请求,您需要在 SP 所使用的签名证书被更新或替换时更新 IdP。
请配置 SAML IdP 以对 SAML 响应进行签名,以防止 SAML 声明响应在传输过程中发生更改。
注:
要启用签名请求,您需要在 IdP 所使用的签名证书被更新或替换时更新 SP (ArcGIS Enterprise)。
使用 IdP 的 HTTPS 端点
通过内部网络或 Internet 以未加密格式发送的 SP、IdP 和用户浏览器之间的任何通信都可能被恶意行为者拦截。 如果您的 SAML IdP 支持 HTTPS,建议您使用 HTTPS 端点来确保 SAML 登录期间所传输数据的机密性。
对 SAML 声明响应进行加密
使用 HTTPS 进行 SAML 通信可确保在 IdP 和 SP 之间发送的 SAML 消息的安全性。但是,已登录用户仍然可以通过 Web 浏览器来解码和查看 SAML 消息。 启用声明响应的加密功能可防止用户查看 IdP 与 SP 之间传输的机密或敏感信息。
注:
要启用加密声明,您需要在 SP (ArcGIS Enterprise) 所使用的加密证书被更新或替换时更新 IdP。
安全地管理签名和加密证书
使用具有强密钥的证书对 SAML 消息进行数字签名或加密,并且每隔三到五年更新或更换证书。