配置 Active Directory 联合身份验证服务
在本主题中
您可在 Microsoft Windows Server 操作系统中将 Active Directory 活动目录联合服务 (AD FS) 2.0 及更高版本配置为 ArcGIS 中企业登录的身份提供者。配置过程涉及两个主要步骤:将企业级身份提供者注册到 Portal for ArcGIS,以及将 Portal for ArcGIS 注册到企业级身份提供者。
此外,还可向门户提供有关 Windows 活动目录中企业群组的元数据。此操作允许您在使用标识存储中的现有企业级群组的门户中创建群组。成员登录门户后,访问内容、项目和数据由企业群组中定义的成员规则控制。如果您未提供必要的企业群组元数据,仍可以创建组。然而,成员规则由 Portal for ArcGIS 而不是 Windows 活动目录控制。
所需信息
当用户使用企业登录帐户进行登录时,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,以便用户能够接收通知。
将 AD FS 作为企业级身份提供者注册到 Portal for ArcGIS
- 以组织管理员的身份登录门户网站,并单击我的组织 > 编辑设置 > 安全性。
- 在企业登录部分,单击设置身份提供者按钮,并在打开的窗口中输入组织名称(例如,City of Redlands)。当用户访问门户网站时,此文本将显示为 SAML 登录选项的一部分(例如,使用您的 City of Redlands 帐户)。
- 选择用户是否可以自动或在门户中添加帐户之后加入组织。选择第一个选项可以使用户通过其企业登录帐户登录组织,而不会受到管理员的任何干预。首次登录时,用户的帐户即会自动注册到该组织。第二个选项需要管理员使用命令行实用程序或 Python 脚本示例将必要的帐户注册到该组织。帐户注册完成后,用户即可登录组织。
提示:
建议您将至少一个企业帐户指定为门户的管理员并下移或删除初始管理员帐户。还建议您禁用门户网站中的创建帐户按钮和注册页面 (signup.html),这样用户便无法创建自己的帐户。有关完整说明,请参阅在门户中配置 SAML 兼容身份提供者。
- 要为身份提供者提供元数据信息,可选择以下三个选项之一:
- URL - 如果 AD FS 联合身份验证元数据的 URL 可供访问,请选择此选项并输入 URL(例如 https://<adfs-server>/federationmetadata/2007-06/federationmetadata.xml)。
注:
如果您的企业级身份提供者包含自签名证书,则可能在尝试指定元数据的 HTTPS URL 时遇到错误。出现此类错误的原因是 Portal for ArcGIS 不能验证身份提供者的自签名证书。 此外,可使用 URL 中的 HTTP(以下选项中的另一选项),或为您的身份提供者配置受信任的证书。
- 文件 - 如果无法访问 URL,请选择此选项。从 AD FS 下载或获取联合身份验证元数据文件的副本,并使用文件选项将该文件上传至 Portal for ArcGIS。
- 参数 - 如果 URL 或联合身份验证元数据文件无法访问,请选择此选项。手动输入值并提供所需参数:登录 URL 和证书。请联系 AD FS 管理员获取这些参数。
- URL - 如果 AD FS 联合身份验证元数据的 URL 可供访问,请选择此选项并输入 URL(例如 https://<adfs-server>/federationmetadata/2007-06/federationmetadata.xml)。
- 此外,还可向门户提供有关 Windows 活动目录中企业群组的元数据:
- 以组织管理员的身份登录到 ArcGIS Portal Directory。URL 格式为 https://webadaptor.domain.com/arcgis/portaladmin。
- 单击安全性 > 配置 > 更新标识存储。
- 将组配置 JSON 放置于组存储配置(JSON 格式)文本框中。
您可以复制下列文本,然后对其进行更改以包含站点的特定信息:
{ "type": "LDAP", "properties": { "userPassword": "secret", "isPasswordEncrypted": "false", "user": "cn=aduser,ou=users,ou=ags,dc=example,dc=com", "ldapURLForUsers": "ldap://bar2:10389/ou=users\,ou=ags\,dc=example\,dc=com", "ldapURLForRoles": "ldap://bar2:10389/dc=example,dc=com", "usernameAttribute": "sAMAccountName", "caseSensitive": "false", "userSearchAttribute": "sAMAccountName", "memberAttributeInRoles": "member", "rolenameAttribute":"sAMAccountName" } }
大多数情况下,只需要更改 user、userPassword、ldapURLForUsers 和 ldapURLForUsers 参数的值。LDAP 的 URL 需要由您的 AD 管理员提供。用于用户参数的帐户需要具有在组织中查找组的名称的权限。尽管以明文形式输入密码,但在门户的配置目录中存储或查看密码时,其为加密形式。
- 输入用户存储配置 JSON 后,单击更新配置以保存更改,然后重新启动门户。
将 Portal for ArcGIS 作为受信服务提供者注册到 AD FS
- 打开 AD FS 管理控制台。
- 选择依赖方信任 > 添加依赖方信任。
- 在添加依赖方信任向导中,单击开始按钮。
- 对于选择数据源,可选择以下选项之一以获取依赖方相关数据:从 URL 导入、从文件导入或手动输入。URL 和文件需要您从组织中获取元数据。如果您无权访问元数据 URL 或文件,可以手动输入信息。在某些情况下,手动输入数据可能是最轻松的选择。
- 导入在线发布或在本地网络上发布的依赖方相关数据
此选项使用 Portal for ArcGIS 组织的 URL 元数据。URL 为 https://webadaptor.domain.com/arcgis/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://webadaptor.domain.com/arcgis/sharing/rest/generateToken 生成令牌。在生成令牌页面输入 URL 后,指定 Webapp URL 字段中 AD FS 服务器的完全限定域名。不支持选择任何其他选项(如 IP 地址或此请求源的 IP 地址),如若选择,则可能生成无效令牌。
注:
上述示例 URL 的 arcgis 部分是 Web Adaptor 应用程序的默认名称。如果您的 Web Adaptor 没有命名为 arcgis,则可使用您的 Web Adaptor 名称替换 URL 的此部分。
- 从文件导入依赖方相关数据
此选项使用 Portal for ArcGIS 组织中的 metadata.xml 文件。 可通过两种方式获得元数据 XML 文件:
- 在组织编辑设置页面的安全性部分,单击获取服务提供程序按钮。这样即可获得组织的元数据,然后将其作为 XML 文件保存在您的计算机上。
- 打开 Portal for ArcGIS 组织元数据的 URL,将其作为 XML 文件保存在您的计算机上。URL 为 https://webadaptor.domain.com/arcgis/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://webadaptor.domain.com/arcgis/sharing/rest/generateToken 生成令牌。在生成令牌页面输入 URL 后,指定 Webapp URL 字段中 AD FS 服务器的完全限定域名。不支持选择任何其他选项(如 IP 地址或此请求源的 IP 地址),如若选择,则可能生成无效令牌。
注:
上述示例 URL 的 arcgis 部分是 Web Adaptor 应用程序的默认名称。如果您的 Web Adaptor 没有命名为 arcgis,则可使用您的 Web Adaptor 名称替换 URL 的此部分。
- 手动输入依赖方相关数据
如果选择此选项,添加依赖方信任向导将显示用于手动输入数据的附加窗口。下面的步骤 6 到 8 中对此进行了描述。
- 导入在线发布或在本地网络上发布的依赖方相关数据
- 在指定显示名称中输入显示名称。
显示名称用于标识 AD FS 中的依赖方。除此之外,没有任何意义。应将其设置为 ArcGIS 或 ArcGIS 中组织的名称,例如 ArcGIS—SamlTest。
提示:
上图中显示了从 URL 或文件导入数据源的步骤中对应的指定显示名称窗口。如果选择的是手动输入数据源信息,则向导左侧会显示在下面的步骤 6 到 8 中解释的附加步骤。如果选择 URL 或文件,则可跳到步骤 9。
- (仅限手动输入数据源)对于选择配置文件,选择 AD FS 2.0 配置文件(如果在环境中适用,也可选择 AD FS 更高版本的配置文件)。
- (仅限手动输入数据源)对于配置 URL,请选中启用对 SAML 2.0 WebSSO 协议的支持旁的复选框,并输入依赖方 SAML 2.0 SSO 服务的 URL。
依赖方 URL 应为 AD FS 在验证用户后发送 SAML 响应的 URL, 这应该是 HTTPS URL:https://webadaptor.domain.com/arcgis/sharing/rest/oauth2/saml/signin.
注:
上述示例 URL 的 arcgis 部分是 Web Adaptor 应用程序的默认名称。如果您的 Web Adaptor 没有命名为 arcgis,则可使用您的 Web Adaptor 名称替换 URL 的此部分。
- (仅限手动输入数据源)对于配置标识符,输入依赖方信任标识符的 URL。
这应该是portal.domain.com.arcgis。
- 对于选择发放授权规则中,选择允许所有用户访问此依赖方。
提示:
上图中显示了从 URL 或文件导入数据源的步骤中对应的选择发放授权规则窗口。如果选择的是手动输入数据源信息,则向导左侧将显示附加步骤。
- 对于准备添加信任,检查依赖方的所有设置。只有选择从 URL 导入数据源时,才会填充元数据 URL。下图显示的是选择手动输入数据源信息时的准备添加信任窗口。
单击下一步。
提示:
如果启用了监控依赖方选项,AD FS 将定期检查联合身份验证元数据 URL,并将其与依赖方信任的当前状态进行比较。但是,一旦联合身份验证元数据 URL 中的令牌过期,监控将失败。失败将记录在 AD FS 事件日志中。要抑制这些消息,建议您禁用监控或更新令牌。
- 对于完成,选中单击关闭按钮后自动打开编辑声明规则对话框。
提示:
上图中显示了从 URL 或文件导入数据源的步骤中对应的完成窗口。如果选择的是手动输入数据源信息,则向导左侧将显示附加步骤。
- 要设置声明规则,请打开编辑声明规则向导,然后单击添加规则。
- 在选择规则模板中,为想要创建的声明规则选择以声明形式发送 LDAP 属性,并单击下一步。
- 在配置声明规则中,提供规则名称,例如 DefaultClaims。
- 在属性存储中,选择 Active Directory。
- 在 LDAP 属性到外向声明类型的映射中,请为 LDAP 属性选择包含用户名(例如 SAM-Account-Name)的 LDAP 属性,并为外向声明类型选择 NameID。
注:
NameID 属性必须由 AD FS 在 SAML 响应中发送,才能使 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 将使用从身份提供者接收的值来填充用户帐户的全称和电子邮件地址。
按照以下说明编辑声明规则。
- 在 LDAP 属性列下选择显示名称(或从第二行的列表中选择其他属性),并将其映射到外向声明类型列下的给定名称。
- 在 LDAP 属性列下选择电子邮件地址,并将其映射到外向声明类型列下的电子邮件地址。
通过此声明,AD FS 会在对用户进行身份验证后将名称为 givenname 和 email 的属性发送至 Portal for ArcGIS。然后,Portal for ArcGIS 将使用 givenname 和 email 属性中接收的值,并填充用户帐户的全称和电子邮件地址。
建议您将电子邮件地址从企业级身份提供者传递到 Portal for ArcGIS。 如果用户日后成为管理员,此操作将很有帮助。帐户中存在电子邮件地址的用户拥有接收所有管理活动的相关通知以及向其他用户发送加入组织的邀请的权利。
- 单击完成,结束将 AD FS 身份提供者配置为将 Portal for ArcGIS 作为依赖方包括在内的流程。
启动 IDP 的登录
将 AD FS 配置为组织的身份提供者后,您可以选择启动利用身份提供者 (IDP) 的企业登录。你需要启用 IDP 登录以启动 AD FS 和 Portal for ArcGIS 的 IDP 登录。 如果您尚未执行此操作,请执行下列步骤以便在 AD FS 中启用 IDP 登录。Portal for ArcGIS 默认支持 IDP 登录,因此在 Portal for ArcGIS 中不需要额外的配置步骤;仅 AD FS 配置是必要的。
- 如果将 Windows Server 2008 和 AD FS 2.0 配合使用,则需验证您的 Windows Server 2008 计算机上是否安装了 AD FS 2.0 的更新汇总 2 修补程序,以及是否重新启动了 AD FS 实例。默认情况下,Windows Server 2012 计算机包括“更新汇总 2”。
- 启用 AD FS 以将 RelayState 参数发送至 web.config 文件。该参数用于标识用户登录后将访问的特定资源。
- 打开 web.config 文件。默认情况下,此文件位于 C:\inetpub\adfs\ls\。
- 将以下条目添加到 microsoft.identityServer.web 文件的 web.config 部分。
<microsoft.identityServer.web> ... <useRelayStateForIdpInitiatedSignOn enabled="true" /> </microsoft.identityServer.web>
- 生成 RelayState 参数。AD FS 需要具备两条信息才能生成 RelayState:
- 依赖方标识符 (RPID)。这表示在 AD FS 中进行配置的 Portal for ArcGIS 组织的依赖方标识符。要获得此标识符,请打开 AD FS 管理控制台的 Portal for ArcGIS 依赖方属性(例如 webadaptor.domain.com)。
- RelayState。这是用户在成功登录到 AD FS 站点后被重定向到的门户 URL(例如,https://webadaptor.domain.com/arcgis/)。
- 通过定义 RPID 和 RelayState 的值来生成 RelayState 参数。
- 对 RPID 和 RelayState 的值进行编码,例如:
- RPID:webadaptor.domain.com.arcgis
- RelayState: https%3A%2F%2Fwebadaptor.domain.com%2Farcgis%2F
- 将上一步中创建的编码值合并为单个字符串(例如 RPID=webadaptor.domain.com.arcgis&RelayState=https%3A%2F%2Fwebadaptor.domain.com%2Farcgis%2F)。
- 对合并的字符串进行编码(例如 RPID%3Dwebadaptor.domain.com.arcgis%26RelayState%3D%20https%253A%252F%252Fwebadaptor.domain.com%252Farcgis%252F)。
- 将 RelayState 参数添加到字符串,然后追加到 AD FS 的启动 IDP 的 SSO URL(例如 https://idphost.test.com/adfs/ls/idpinitiatedsignon.aspx?RelayState=RPID%3Dwebadaptor.domain.com.arcgis%26RelayState%3D%20https%253A%252F%252Fwebadaptor.domain.com%252Farcgis%252F)。这是将用于在 AD FS 站点上启动登录的 URL。
用户登录并成功通过身份验证后,AD FS 将生成 SAML 响应,并会将 RelayState 与组织的 URL 一同传递到 Portal for ArcGIS。门户将验证 SAML 响应,并会将用户重定向到相应的组织及其资源。