- 入门指南
- 主机管理
- 组织
- 租户和服务
- 身份验证和安全性
- 许可
- 帐户和角色
- 外部应用程序
- 通知
- 日志记录
- 故障排除
配置 Active Directory 集成
您可以使用 Windows 身份验证启用 SSO,并通过 Active Directory 集成启用目录搜索功能。目录搜索使您可以搜索目录帐户和组,并可以像使用本地帐户一样使用它们。
已知限制
- Directory search does not find users from an external trust domain). This feature is not supported because there isn't a mutually-trusted authority with external trusts.
- Windows 身份验证使用 Automation Suite 中的 Kerberos 协议,因此 Windows 登录只能用于已加入域的计算机。
步骤 1. 配置 Active Directory 集成
与您的 IT 管理员合作,确保 Automation Suite 集群可以访问您的 Active Directory (AD)。
可以使用以下两个选项之一配置 Active Directory 集成:
- Kerberos 身份验证
- 用户名和密码
建议使用 Kerberos 身份验证,因为它支持更多方案:
| 场景 | 用户名和密码 | Kerberos 身份验证 |
|---|---|---|
| 目录搜索同一林中的域 | 支持 | 支持 |
| 针对受信任林中域的目录搜索 | 不支持 | 支持 |
| 目录搜索外部受信任域 | 不支持 | 不支持 |
a. Kerberos 配置(推荐)
-
按照设置 Kerberos 身份验证中的说明配置 Kerberos 身份验证。
-
以系统管理员身份登录。
-
前往安全性设置。
-
在“外部提供程序”部分中,单击 Active Directory 下的“配置”。
- 选中“已启用”复选框以启用集成。
- 如果您只想允许使用 Active Directory 帐户登录,请选中“使用此提供程序强制自动登录”复选框。:fa-warning: 仅当已成功验证与提供程序的集成以防止锁定时,才执行此操作。
- 在“显示名称”字段中,键入要在“登录” 页面上的此登录选项下显示的文本。
- 选中“使用 Kerberos 身份验证”复选框。
-
单击“测试并保存”,以保存更改。
-
重新启动
identity-service-api-*Pod。-
通过 SSH 连接到主服务器。
-
运行以下命令:
kubectl -n uipath rollout restart deployment identity-service-api
-
b. 用户名和密码配置
When you use this option, UiPath® service uses credentials provided in clear text to communicate with Active Directory. To prevent this, we recommend using LDAP over SSL (LDAPS) with this configuration.
只有在此页面配置的林中的用户才能与 UiPath 集群交互。受信任林中的用户将无法登录此 UiPath 集群。
B.1. 使用 LDAPS 的先决条件
如果您打算使用基于 SSL 的 LDAP (LDAPS),则必须首先在 AD 环境中配置基于 SSL 的 LDAP,并获取要在 UiPath 集群配置中使用的根证书。
已知问题:升级后未保留已配置的 LDAPS 证书。因此,在升级后,需要再次添加 LDAPS 证书,以使 LDAP 安全连接正常工作。
-
在每个域控制器上获取并安装 LDAPS 的 SSL 证书。
For more information and instructions, refer to the article LDAP over SSL (LDAPS) Certificate.
-
通过运行以下命令,以 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>")) -
在 ArgoCD 中添加编码的根证书:
- 登录到 ArgoCD。
- 选择并转到 UiPath 应用程序。
- 在左上角,选择“应用程序详细信息”(“应用程序详细信息” >“应用程序详细信息” >“应用程序详细信息” )。
- 在“参数”部分中,搜索参数
global.userInputs.certificate.identity.ldaps.customRootCA。 - 将参数的值更新为您之前获取的编码内容。
- 保存。
- 选择“同步”以应用更改。
b.2.Azure Directory 配置
-
以系统管理员身份登录。
-
前往安全性设置。
-
在“外部提供程序”部分中,单击 Active Directory 下的“配置”。
- 选择已启用复选框。
- 如果您只想允许使用 Active Directory 帐户登录,请选中“强制使用此提供程序自动登录”复选框。
- (可选,但强烈推荐)选中“使用基于 SSL 的 LDAP (LDAPS)”复选框。
- 必须清除“使用 Kerberos 身份验证”复选框。
- 在“显示名称”字段中,输入要在“登录”页面上为此登录选项显示的名称。
- 在“默认域”字段中,键入 Active Directory (AD) 的完全限定域名 (FQDN)。
- 在“用户名”字段中,输入 AD 用户的用户名。其格式必须为
DOMAIN\username。例如TESTDOMAIN\user1。 - 在“用户密码”字段中,键入上述 AD 帐户的密码。
-
单击“测试并保存”,以保存更改。
-
重新启动
identity-service-api-*Pod。-
通过 SSH 连接到主服务器。
-
运行以下命令:
kubectl -n uipath rollout restart deployment identity-service-api
-
故障排除
域无法访问
如果收到错误 Domain unreachable,请使用命令 getent ahosts <AD domain> 检查 DNS 路由。
如果它没有返回 IP 地址,请检查节点 /etc/resolv.conf。名称服务器值应指向 AD 域 DNS。如果没有,请联系系统管理员以进行正确的配置。
If the node runs on Azure, follow the instructions in Name resolution for resources in Azure virtual networks.
一种方法是:
- 在 Azure 中,转到节点虚拟网络并将虚拟网络 DNS 服务器设置为 Active Directory DNS。
- 运行
systemctl restart NetworkManager.service并检查/etc/resolv.conf是否已得到更新。 - 重新启动 ArgoCD 中的集群核心 DNS。
使用 LDAPS 时无法访问域
如果您在启用 LDAPS 时收到错误 Domain unreachable,则可能是由于使用了错误的证书。
检查 LDAP 服务器的本地计算机证书存储中是否有多个可用于服务器身份验证的证书。如果是这样,则可能会使用与所需证书不同的证书进行 LDAPS 通信。
最简单的解决方法是从本地计算机证书存储中删除所有不必要的证书,并仅保留一个可用于服务器身份验证的证书。
步骤 2. 配置 Windows 身份验证
先决条件
获取 <KERB_DEFAULT_KEYTAB>,这是在 Kerberos 安装过程中生成的密钥表文件的 base64 编码字符串。
配置 Automation Suite 集群
-
转到 Argo CD 并以管理员身份登录。
-
选择并转到“UiPath”应用程序。
-
单击左上角的“应用程序详细信息”。
-
在“参数”部分中,搜索
global.userInputs.identity.krb5KeytabSecret参数。默认情况下,该参数具有占位符值。
-
使用
<KERB_DEFAULT_KEYTAB>更新参数的占位符值,然后保存。 -
单击“同步”以应用更改。
-
成功同步后,运行命令
kubectl -n uipath rollout restart deployment identity-service-api以重新启动 Identity Server。
步骤 3:浏览器配置
Microsoft Internet Explorer
不支持
Microsoft Edge
无需额外配置。
Google Chrome
通常来说,Google Chrome 无需额外配置即可工作。
如果不起作用,请执行以下步骤:
-
转到“工具” > “Internet 选项” > “安全性”。
-
选择“本地 Intranet”。
-
选择“站点” 。
-
确保选择了“自动检测 Intranet 网络”或所有选项。
-
在“高级”上选择。
-
将 Automation Suite FQDN 添加到“本地 Intranet”。
-
选择“关闭”和“确定” 。
-
按“自定义级别”选择。
-
(可选)在“用户身份验证”下选择“仅在 Intranet 区域中自动登录”
如果选中,则当浏览器收到重定向身份验证请求时,它会检查要求的来源。如果域或 IP 属于 Intranet,则浏览器会自动发送用户名和密码。如果不是,浏览器将打开用户名和密码输入对话框,您需要自行手动输入。
-
(可选)在“用户身份验证”下选择“使用当前用户名和密码自动登录”。
如果选中,则当浏览器收到重定向身份验证请求时,它会静默发送用户名和密码。如果身份验证成功,浏览器将继续执行原始操作。如果身份验证失败,浏览器将打开用户名和密码输入对话框,并重试直到验证成功。
-
确保在“Internet 选项” > “高级”选项卡下的“安全性”部分中选择了“启用集成 Windows 身份验证”。
Mozilla Firefox
- 打开浏览器配置窗口。
- 在地址栏中键入 about:config。
- 指定使用 Kerberos 身份验证的 Automation Suite FQDN:
- 搜索词语
network.negotiate。 - 为 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 身份验证
现在,UiPath 平台已与 Windows 身份验证集成,在 UiPath 中为其创建用户帐户的用户可以使用“登录”页面上的“Windows”选项登录 UiPath 平台。
图 1.Windows 登录选项
如果想要允许使用 Windows 凭据登录,则每个组织管理员都必须为其组织执行此操作。
- 以组织管理员身份登录。
- 将组织级别的角色分配给 Active Directory 用户或组,您可以从搜索中选择该角色。
- 对要允许使用 Windows 身份验证登录的每个用户重复上一步。
然后,获赔角色的用户可以使用其 Active Directory 帐户登录 UiPath 组织。 他们必须使用已加入域的计算机登录。
故障排除
如果您在尝试使用 Windows 凭据登录时收到 HTTP 500 错误,请执行以下检查:
-
Windows 计算机是否已加入域?
在计算机上,转到“控制面板”>“系统和安全性”>“系统”,然后检查是否显示了域。如果未显示任何域,请将计算机添加到域中。计算机必须加入域,才能通过 Kerberos 协议使用 Windows 身份验证。
-
您能否使用相同的凭据登录 Windows 计算机?
如果不能,请向系统管理员寻求帮助。
-
您是否在使用 Microsoft Edge 以外的浏览器?
Additional configuration is required for supported browsers other than Microsoft Edge.
-
检查密钥表配置:
-
生成密钥表后,在 Active Directory 服务器上,AD 用户的属性 (
servicePrincpalName) 应为HTTP/<Service Fabric FQDN>格式,例如HTTP/uipath-34i5ui35f.westeurope.cloudapp.azure.com。 -
必须为 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()
-
-
如果您在使用的域中配置了多个 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。
-
如果运行
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。 -
如果您在
identity-service-apiPod 中遇到以下错误: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).- 首先检查您是否在 ArgoCD 中提供了
global.userInputs.identity.krb5KeytabSecret参数。 如果参数存在,请验证您是否可以使用用于生成密钥表的 AD 用户的凭据登录 Windows 计算机。 请注意,如果密码已更改或过期,则必须重新生成密钥表。 - 此问题的另一个可能原因是 ArgoCD 之前未正确同步。 要解决此问题,请删除现有的
global.userInputs.identity.krb5KeytabSecret,同步 ArgoCD,并在操作成功后更新global.userInputs.identity.krb5KeytabSecret,然后再次同步。
- 首先检查您是否在 ArgoCD 中提供了
-
浏览器是否使用预期的 SPN?
如果按照这些说明启用了 Kerberos 事件日志记录,则 Kerberos 事件日志中将显示
KDC_ERR_S_PRINCIPAL_UNKNOWN错误。有关此问题的详细信息,请参阅Microsoft 文档。要解决此问题,请通过修改组策略在协商 Kerberos 身份验证时禁用 CNAME 查找。有关详细信息,请参阅有关 Google Chrome和Microsoft Edge的说明。