Kerberos 身份验证的服务主体名称 (SPN) 配置

如果对 Blue Prism 服务器连接使用以下连接模式,则必须针对运行每个 Blue Primas 服务器服务实例的 Active Directory (AD) 帐户配置服务主体名称 (SPN):

  • WCF:采用消息加密和 Windows 身份验证的 SOAP
  • WCF:采用传输加密和 Windows 身份验证的 SOAP
  • .NET Remoting 安全

这是因为,当 Blue Prism 交互式客户端或运行时资源使用上述连接模式之一连接到应用程序服务器时,会使用 Microsoft Negotiate 安全包选择最佳的安全支持提供程序 (SSP) 来验证连接。如果预期的 SPN 在 Active Directory 中存在,则 Blue Prism 交互式客户端的内部代码会将其提供给 Microsoft Negotiate 安全包,而该安全包会提示 Microsoft Negotiate 选择 Kerberos SSP 而不是 New Technology LAN Manager (NTLM) SSP。如果 SPN 在 Active Directory 中不存在,Kerberos 身份验证将失败。有关影响此行为的 CVE-2022-21920 Windows 安全更新的更多详细信息,请参阅本知识库文章在 Blue Prism 7.0.2 中,如果 Active Directory 中不存在 SPN,并且 /forcentlm <flag>在 Automate C 中设置,则将使用 NTLM SSP。

建议联系您组织的 IT 团队,获得有关此配置的帮助,并首先在非生产环境中测试配置。

此配置应用于所有 Blue Prism 环境,但是,如果用于运行 BP 服务器实例的 Active Directory 帐户所在的域与用于 Blue Prism 交互式客户端和运行时资源的 Active Directory 帐户所在的域不同,我们建议您不要安装 CVE-2022-21920 的 Windows 安全更新。如果您已安装,我们建议您将其卸载。从 Blue Prism 7.0.2 中,需要在 Automate C 中进行以下列出的其他配置。

要配置 SPN,请在每个 Blue Prism 服务器服务实例上按照以下步骤操作:

  1. 使用属于“域管理员”或“企业管理员”组成员的特权 Windows 用户帐户登录 Blue Prism 服务器。

    有关包括所需权限在内的更多详细信息,请参阅本主题中的 Microsoft 文档。这是必要步骤,用于与您的组织的 IT 团队一起审查以确保 Setspn 命令不会因缺少帐户权限而无法执行。

  2. 在应用程序服务器上以管理员身份打开命令提示符,然后运行以下命令。

    如果 Blue Prism 服务器作为本地系统帐户运行:

    复制
    Setspn -S HTTP/SERVER_FQDN:SERVER_PORT/BPServer COMPUTER_HOSTNAME 

    如果 Blue Prism 服务器作为用户帐户运行:

    复制
    Setspn -S HTTP/SERVER_FQDN:SERVER_PORT/BPServer DOMAIN\Username

    其中:

    • 适用于 HTTP 和 HTTPS 的 HTTP 帐户。请勿将命令更改为包含 HTTPS,如这样做,配置将失败。

    • SERVER_FQDN:SERVER_PORT 必须是 Blue Prism 应用程序服务器的完全限定域名 (FQDN)。
    • 如果 BP 服务器服务作为本地系统帐户运行,则 COMPUTER_HOSTNAME 是计算机的主机名称。

    • 如果 BP 服务器服务作为用户帐户运行,域用户名为 DOMAIN\Username。

      这应与 Blue Prism 服务器属性(本地计算机)窗口中的登录身份设置相匹配。

    本地系统示例:

    DOMAIN\Username 示例:

  3. 设置 SPN 后,您需要等待 Kerberos 工单缓存更新(默认设置为 15 分钟,但可以通过组策略更改)。有关详细信息,请参阅 Kerberos 身份验证文档

    或者,您可以:

    • 重新启动 Blue Prism 交互式客户端或运行时资源;或
    • 在运行交互式客户端或运行时资源的计算机上,打开命令提示符并运行 Klist 清除以刷新 Kerberos 工单。

      此命令不应在升级的命令提示符内执行,因为它不会清除所有用户 Kerberos 工单。

  4. 从另一台计算机上运行的 Blue Prism 交互式客户端连接到 Blue Prism 服务器,检查其是否按预期工作。
  5. 在每个 Blue Prism 服务器上运行的 Blue Prism 服务器服务的每个实例上重复上述步骤。

检查 SPN 项并删除不正确的 SPN

  1. 要检查 SPN 项进行故障排除,您可以使用以下命令查看应用程序服务器上添加的 SPN 列表:

    复制

    Setspn—L 账户名称

  2. SPN 列表示例:

  3. 检查您为 BP 服务器服务添加的 SPN 条目。您可以使用下列命令删除错误添加的条目:

    复制
    Setspn -D SPN_NAME ACCOUNTNAME

    其中 SPN_NAME 是 SPN 条目列表中显示的名称,例如 HTTP/SERVER_FQDN:SERVER_PORT/BPServer。

负载均衡环境中 Blue Prism 应用程序服务器的其他配置

在同一负载均衡器池中,Blue Prism 服务器服务的所有实例必须在同一服务帐户下运行,并且 SPN 已注册到此帐户。

此外,建议将应用程序服务器的 FQDN 的 SPN 注册到同一服务帐户,因为这将允许测试与应用程序服务器的直接连接。有关更多信息,请参阅 SPN 故障排除

多林环境中的 Active Directory 身份验证的其他配置

此功能仅自 Blue Prism 7.0.2 开始提供。

要在配置为在多个林中使用 Active Directory 身份验证的 Blue Prism 环境中支持 Kerberos 身份验证,必须在 Automate C 中配置以下设置:

  • /setkerberosrealm—例如,/setkerberosrealm mycompany.com。必须针对交互式客户端中的每个 BP 服务器连接进行此配置,其中用户的 Kerberos 领域与配置为运行 BP 服务器的用户帐户的领域不同。

    Kerberos 领域通常与域名相同,但是,请与您的 IT 团队确认正确的值。这应该是运行 Blue Prism 服务器服务的服务帐户的领域。在某些环境中,如果服务帐户存在于同一林中的另一个域中,则可能需要应用相同的配置。您可以针对 SPN 运行 klist get 命令,验证是否必须指定 Kerberos 领域。有关更多信息,请参阅 SPN 故障排除

  • /forcentlm <flag>—例如,/forcentlm true。在对 Blue Prism 服务器连接进行身份验证时,强制 Microsoft Negotiate 安全包为上次使用的连接或指定的连接(使用 /dbconname 开关)选择 New Technology LAN Manager (NTLM) 作为安全支持提供程序 (SSP)。提供此选项是为了在 Kerberos 不可用或未配置时可以使用 NTLM。

    在启用此选项之前,请咨询您的安全团队,因为 NTLM 被认为是不太安全的协议。