Automation Suite
2022.10
False
横幅背景图像
Automation Suite 管理页指南
上次更新日期 2024年3月25日

配置 Active Directory 集成

您可以使用 Windows 身份验证启用 SSO,并通过 Active Directory 集成启用目录搜索功能。目录搜索使您可以搜索目录帐户和组,并可以像使用本地帐户一样使用它们。

已知限制

  • 无法通过目录搜索找到外部信任域中的用户。不支持此功能,因为不存在具有外部信任的相互信任授权机构。
  • Windows 身份验证使用 Automation Suite 中的 Kerberos 协议,因此 Windows 登录只能用于已加入域的计算机。

步骤 1. 配置 Active Directory 集成

与您的 IT 管理员合作,确保 Automation Suite 集群可以访问您的 Active Directory (AD)。

可以使用以下两个选项之一配置 Active Directory 集成:

  1. Kerberos 身份验证
  2. 用户名和密码

建议使用 Kerberos 身份验证,因为它支持更多方案:

场景

用户名和密码

Kerberos 身份验证

目录搜索同一林中的域

支持

支持

针对受信任林中域的目录搜索

不支持

支持

目录搜索外部受信任域

不支持

不支持

a. Kerberos 配置(推荐)

  1. 按照设置 Kerberos 身份验证中的说明配置 Kerberos 身份验证。
  2. 以系统管理员身份登录 Automation Suite 主机门户
  3. 确保在左窗格顶部选择“主机”,然后单击“安全”
  4. 在“Active Directory”下,单击“配置”
    • (可选)如果您只想允许使用 Active Directory 帐户登录,请选中“使用此提供程序强制自动登录”复选框。仅当已成功验证与提供程序的集成以防止锁定时,才执行此操作。
    • 选中“使用 Kerberos 身份验证”复选框。
    • 在“ 显示名称” 字段中,键入要在“ 登录 ” 页面上的此登录选项下显示的文本。
  5. 单击“保存”以保存更改并返回上一页。
  6. 单击 Active Directory 左侧的切换按钮以启用集成。
  7. 重新启动 identity-service-api-* Pod。
    1. 通过 SSH 连接到主服务器。
    2. 运行以下命令:kubectl -n uipath rollout restart deployment identity-service-api

旧版管理员体验

如果您已关闭“新管理员体验”开关,请按照以下说明操作:

  1. 按照设置 Kerberos 身份验证中的说明配置 Kerberos 身份验证。
  2. 以系统管理员身份登录 Automation Suite 主机门户
  3. 前往安全性设置
  4. 在“外部提供程序”部分中,单击“Active Directory”下的“配置”。
    • 选中“已启用”复选框以启用集成。
    • 如果您只想允许使用 Active Directory 帐户登录,请选中“使用此提供程序强制自动登录”复选框。 :fa-warning: 仅当已成功验证与提供程序的集成以防止锁定时,才执行此操作。
    • 在“ 显示名称” 字段中,键入要在“ 登录 ” 页面上的此登录选项下显示的文本。
    • 选中“使用 Kerberos 身份验证”复选框。
  5. 单击“测试并保存”,以保存更改。
  6. 重新启动 identity-service-api-* Pod。
    1. 通过 SSH 连接到主服务器。
    2. 运行以下命令:kubectl -n uipath rollout restart deployment identity-service-api

b. 用户名和密码配置

重要提示:使用此选项时,UiPath 服务使用以明文形式提供的凭据与 Active Directory 通信。为防止出现这种情况,我们建议在此配置中使用 LDAP over SSL (LDAPS)
重要提示:只有在此页面配置的林中的用户才能与 UiPath 集群交互。受信任林中的用户将无法登录此 UiPath 集群。

B.1. 使用 LDAPS 的先决条件

如果您打算使用基于 SSL 的 LDAP (LDAPS),则必须首先在 AD 环境中配置基于 SSL 的 LDAP,并获取要在 UiPath 集群配置中使用的根证书。

备注:

已知问题:升级后未保留已配置的 LDAPS 证书。因此,在升级后,需要再次添加 LDAPS 证书,以使 LDAP 安全连接正常工作。

  1. 在每个域控制器上获取并安装 LDAPS 的 SSL 证书。

    有关更多信息和说明,请参阅文章 LDAP over SSL (LDAPS) 证书

  2. 通过运行以下命令,以 Base64 对根证书进行编码:
    [Convert]::ToBase64String([System.IO.File]::ReadAllBytes("<Path to the .crt or .cer file>"))[Convert]::ToBase64String([System.IO.File]::ReadAllBytes("<Path to the .crt or .cer file>"))
  3. 在 ArgoCD 中添加编码的根证书:
    1. 登录到 ArgoCD。
    2. 选择并转到 UiPath 应用程序。
    3. 单击左上角的“应用程序详细信息”。
    4. 在“参数”部分中,搜索参数 global.userInputs.certificate.identity.ldaps.customRootCA
    5. 将参数的值更新为您之前获取的编码内容。
    6. 保存。
    7. 单击“同步”以应用您的更改。

b.2.Azure Directory 配置

  1. 以系统管理员身份登录 Automation Suite 主机门户
  2. 确保在左窗格顶部选择“主机”,然后单击“安全”
  3. 在“Active Directory”下,单击“配置”
    • 如果您只想允许使用 Active Directory 帐户登录,请选中“强制使用此提供程序自动登录”复选框。
    • 清除“使用 Kerberos 身份验证”复选框。
    • (可选,但强烈推荐)选中“使用基于 SSL 的 LDAP (LDAPS)”复选框。
    • 在“显示名称”字段中,输入要在“登录”页面上为此登录选项显示的名称。
    • 在“默认域”字段中,键入 Active Directory (AD) 的完全限定域名 (FQDN)。
    • 在“用户名”字段中,输入 AD 用户的用户名。其格式必须为 DOMAIN\username。例如 TESTDOMAIN\user1
    • 在“用户密码”字段中,键入上述 AD 帐户的密码。
  4. 单击“测试与保存”以保存更改并返回到上一页面。
  5. 单击 Active Directory 左侧的切换按钮以启用集成。
  6. 重新启动 identity-service-api-* Pod。
    1. 通过 SSH 连接到主服务器。
    2. 运行以下命令:kubectl -n uipath rollout restart deployment identity-service-api
旧版管理员体验

如果您已关闭“新管理员体验”开关,请按照以下说明操作:

  1. 以系统管理员身份登录 Automation Suite 主机门户
  2. 前往安全性设置
  3. 在“外部提供程序”部分中,单击“Active Directory”下的“配置”。
    • 选择“已启用”复选框。
    • 如果您只想允许使用 Active Directory 帐户登录,请选中“强制使用此提供程序自动登录”复选框。
    • (可选,但强烈推荐)选中“使用基于 SSL 的 LDAP (LDAPS)”复选框。
    • 必须清除“使用 Kerberos 身份验证”复选框。
    • 在“显示名称”字段中,输入要在“登录”页面上为此登录选项显示的名称。
    • 在“默认域”字段中,键入 Active Directory (AD) 的完全限定域名 (FQDN)。
    • 在“用户名”字段中,输入 AD 用户的用户名。其格式必须为 DOMAIN\username。例如 TESTDOMAIN\user1
    • 在“用户密码”字段中,键入上述 AD 帐户的密码。
  4. 单击“测试并保存”,以保存更改。
  5. 重新启动 identity-service-api-* Pod。
    1. 通过 SSH 连接到主服务器。
    2. 运行以下命令:kubectl -n uipath rollout restart deployment identity-service-api

故障排除

域无法访问
如果收到错误 Domain unreachable,请使用命令 getent ahosts <AD domain> 检查 DNS 路由。
如果它没有返回 IP 地址,请检查节点 /etc/resolv.conf。名称服务器值应指向 AD 域 DNS。如果没有,请联系系统管理员以进行正确的配置。

如果节点在 Azure 上运行,请按照 Azure 虚拟网络中资源的名称解析的说明进行操作。

一种方法是:

  1. 在 Azure 中,转到节点虚拟网络并将虚拟网络 DNS 服务器设置为 Active Directory DNS。
  2. 通过运行以下命令检查 /etc/resolv.conf 是否已更新:

    systemctl restart NetworkManager.service

  3. 重新启动 ArgoCD 中的集群核心 DNS。
使用 LDAPS 时无法访问域
如果您在启用 LDAPS 时收到错误 Domain unreachable,则可能是由于使用了错误的证书。

检查 LDAP 服务器的本地计算机证书存储中是否有多个可用于服务器身份验证的证书。如果是这样,则可能会使用与所需证书不同的证书进行 LDAPS 通信。

最简单的解决方法是从本地计算机证书存储中删除所有不必要的证书,并仅保留一个可用于服务器身份验证的证书。

步骤 2. 配置 Windows 身份验证

先决条件

获取 <KERB_DEFAULT_KEYTAB>,这是在 Kerberos 设置过程中生成的密钥表文件的 base64 编码字符串。

配置 Automation Suite 集群

重要提示:

如果您已按照将 Automation Suite 配置为 Kerberos 客户端指南中所述的过程将 Automation Suite 配置为 Kerberos 客户端,请跳过此步骤。

如果您通过用户名和密码方法配置 Active Directory 集成(我们不建议您采取该方法),请执行以下步骤:

  1. 转到 Argo CD 并以管理员身份登录。
  2. 选择并转到“UiPath”应用程序。
  3. 单击左上角的“应用程序详细信息”。
  4. 在“参数”部分中,搜索 global.kerberosAuthConfig.userKeytab 参数。

    默认情况下,该参数具有占位符值。

  5. 使用<KERB_DEFAULT_KEYTAB>更新参数的占位符值,然后保存。
  6. 单击“同步”以应用更改。
  7. 同步成功后,通过运行以下命令重新启动 Identity Server:

    kubectl -n uipath rollout restart deployment identity-service-api

步骤 3:浏览器配置

Microsoft Internet Explorer

不支持

Microsoft Edge

无需额外配置。

Google Chrome

通常来说,Google Chrome 无需额外配置即可工作。

如未运作,请按照以下说明进行操作。

  1. 转到“工具”>“Internet 选项”>“安全性”。
  2. 选择“本地 Intranet”。
  3. 单击“站点”。
  4. 确保选择了“自动检测 Intranet 网络”或所有选项。
  5. 单击“高级”。
  6. 将 Automation Suite FQDN 添加到本地 Intranet
  7. 单击“关闭”和“确定”。
  8. 单击“自定义级别”。
  9. (可选)在“用户身份验证”下选择“仅在 Intranet 区域中自动登录”

    如果选中,则当浏览器收到重定向身份验证请求时,它会检查要求的来源。如果域或 IP 属于 Intranet,则浏览器会自动发送用户名和密码。如果不是,浏览器将打开用户名和密码输入对话框,您需要自行手动输入。

  10. (可选)在“用户身份验证”下选择“使用当前用户名和密码自动登录”。

    如果选中,则当浏览器收到重定向身份验证请求时,它会静默发送用户名和密码。如果身份验证成功,浏览器将继续执行原始操作。如果身份验证失败,浏览器将打开用户名和密码输入对话框,并重试直到验证成功。

  11. 确保在“Internet 选项”>“高级”选项卡下的“安全性”部分中选择了“启用集成 Windows 身份验证”。

Mozilla Firefox

  1. 打开浏览器配置窗口。
  2. 在地址栏中键入 about:config
  3. 指定使用 Kerberos 身份验证的 Automation Suite FQDN:
    1. 搜索词语 network.negotiate
    2. 为 Kerberos 启用并设置以下内容:network.negotiate-auth.delegation-uris(示例值:uipath-34i5ui35f.westeurope.cloudapp.azure.com)、network.negotiate-auth.trusted-uris(示例值:uipath-34i5ui35f.westeurope.cloudapp.azure.com)和 network.negotiate-auth.allow-non-fqdn(值:true)。

步骤 4:允许组织的 Windows 身份验证

现在,Automation Suite 已与 Windows 身份验证集成,在 Automation Suite 中为其创建用户帐户的用户可以使用“登录”页面上的“Windows”选项登录 Automation Suite。



如果想要允许使用 Windows 凭据登录,则每个组织管理员都必须为其组织执行此操作。

  1. 以组织管理员身份登录 Automation Suite
  2. 将组织级别的角色分配给 Active Directory 用户或组,您可以从搜索中选择该角色。
  3. 对要允许使用 Windows 身份验证登录的每个用户重复上述步骤。

然后,获赔角色的用户可以使用其 Active Directory 帐户登录 Automation Suite 组织。他们必须使用已加入域的计算机登录。

故障排除

如果您在尝试使用 Windows 凭据登录时收到 HTTP 500 错误,则需要检查以下内容:

  1. Windows 计算机是否已加入域?

    在计算机上,转到“控制面板”>“系统和安全性”>“系统”,然后检查是否显示了域。如果未显示任何域,请将计算机添加到域中。计算机必须加入域,才能通过 Kerberos 协议使用 Windows 身份验证。

  2. 您能否使用相同的凭据登录 Windows 计算机?

    如果不能,请向系统管理员寻求帮助。

  3. 您是否在使用 Microsoft Edge 以外的浏览器?

    除 Microsoft Edge 外,受支持的浏览器需要进行其他配置

  4. 检查密钥表配置:
    1. 生成密钥表后,在 Active Directory 服务器上,AD 用户的属性 (servicePrincpalName) 应为 HTTP/<Service Fabric FQDN> 格式,例如 HTTP/uipath-34i5ui35f.westeurope.cloudapp.azure.com
    2. 必须为 AD 中的用户帐户选择“此帐户支持 Kerberos AES 256 位加密”选项。

      如果配置有误,您可以在 identity-service-api 日志中看到:

      Microsoft.AspNetCore.Authentication.Negotiate.NegotiateHandler An exception occurred while processing the authentication request.
      GssApiException*GSSAPI operation failed with error - Unspecified GSS failure. Minor code may provide more information (Request ticket server HTTP/sfdev.eastus.cloudapp.azure.com@EXAMPLE.COM kvno 4 enctype aes256-cts found in keytab but cannot decrypt ticket).* at Microsoft.AspNetCore.Authentication.Negotiate.NegotiateHandler.HandleRequestAsync()Microsoft.AspNetCore.Authentication.Negotiate.NegotiateHandler An exception occurred while processing the authentication request.
      GssApiException*GSSAPI operation failed with error - Unspecified GSS failure. Minor code may provide more information (Request ticket server HTTP/sfdev.eastus.cloudapp.azure.com@EXAMPLE.COM kvno 4 enctype aes256-cts found in keytab but cannot decrypt ticket).* at Microsoft.AspNetCore.Authentication.Negotiate.NegotiateHandler.HandleRequestAsync()
  5. 如果您在使用的域中配置了多个 Active Directory,则身份验证将失败,并且您将在 identity-service-api 日志中看到:

    kinit: Client 'xyz@example.com' not found in Kerberos database while getting initial credentialskinit: Client 'xyz@example.com' not found in Kerberos database while getting initial credentials

    在这种情况下,请确保将为身份验证创建的计算机帐户复制到所有 Active Directory。

  6. 如果运行 ktpass 并为用户帐户分配新密码,则密钥版本 (kvno) 会提升,并使旧密钥表失效。在 identity-service-api 日志中,您可以看到:
    Request ticket server HTTP/rpasf.EXAMPLE.COM kvno 4 not found in keytab; ticket is likely out of dateRequest ticket server HTTP/rpasf.EXAMPLE.COM kvno 4 not found in keytab; ticket is likely out of date
    在这种情况下,您需要在 ArgoCD 中更新 krb5KeytabSecret
  7. 如果您在 identity-service-api Pod 中看到以下错误:
    GssApiException*GSSAPI operation failed with error - Unspecified GSS failure. Minor code may provide more information (Keytab FILE:/uipath/krb5/krb5.keytab is nonexistent or empty).GssApiException*GSSAPI operation failed with error - Unspecified GSS failure. Minor code may provide more information (Keytab FILE:/uipath/krb5/krb5.keytab is nonexistent or empty).
    1. 首先检查您是否在 ArgoCD 中提供了 global.userInputs.identity.krb5KeytabSecret 参数。 如果参数存在,请验证您是否可以使用用于生成密钥表的 AD 用户的凭据登录 Windows 计算机。 请注意,如果密码已更改或过期,则必须重新生成密钥表。
    2. 此问题的另一个可能原因是 ArgoCD 之前未正确同步。 要解决此问题,请删除现有的global.userInputs.identity.krb5KeytabSecret ,同步 ArgoCD,并在操作成功后更新global.userInputs.identity.krb5KeytabSecret ,然后再次同步。
  8. 浏览器是否使用预期的 SPN?

    如果按照这些说明启用了 Kerberos 事件日志记录,您将在 Kerberos 事件日志中看到 KDC_ERR_S_PRINCIPAL_UNKNOWN 错误。有关此问题的详细信息,请参阅 Microsoft 文档

    要解决此问题,请通过修改组策略在协商 Kerberos 身份验证时禁用 CNAME 查找。有关详细信息,请参阅有关 Google ChromeMicrosoft Edge 的说明。

此页面是否有帮助?

获取您需要的帮助
了解 RPA - 自动化课程
UiPath Community 论坛
Uipath 白色徽标
信任与安全
© 2005-2024 UiPath. All rights reserved.