订阅

UiPath Automation Suite

UiPath Automation Suite 指南

设置 Kerberos 身份验证

先决条件


要成功设置 Kerberos 身份验证,您必须满足以下先决条件:

 

确保 Automation Suite 集群可以访问您的 AD

在配置 Kerberos 身份验证之前,请与 IT 管理员合作,确保 Automation Suite 集群可以访问您的 AD。
必须满足以下要求:

  • Automation Suite 集群必须与 AD 域位于同一网络上;
  • 在网络上正确设置 DNS,以便 Automation Suite 集群可以解析 AD 的域名。

📘

备注:

Automation Suite 集群必须能够解析 AD domain names。您可以通过在主机上运行 nslookup <AD domain name> 来验证这一点。

 

配置 AD 服务帐户以进行 Kerberos 身份验证

生成 Kerberos 默认密钥表和用户名参数

选项 1:通过运行脚本(推荐)

  1. 在已加入域的 Windows 计算机上使用 AD 管理员帐户登录。
  2. Run the keytab-creator.ps1 script as administrator.
  3. Input the following values to the script:
    3.1. Service Fabric FQDN. For example, uipath-34i5ui35f.westeurope.cloudapp.azure.com.
    3.2. AD domain FQDN. For example, TESTDOMAIN.LOCAL.
    3.3. AD 用户帐户。您可以使用现有帐户,例如 sAMAccountName,也可以允许脚本创建新帐户。

输出文件包含 Kerberos 设置所需的 <KERB_DEFAULT_USERNAME><KERB_DEFAULT_KEYTAB> 参数。

Option 2: manually

请联系 AD 管理员以获取 AD 用户帐户,并检索该帐户的 <KERB_DEFAULT_USERNAME><KERB_DEFAULT_KEYTAB>,如下所示:

  1. 在 AD 服务器中,创建一个新的计算机帐户。如果您已有帐户,请跳到步骤 2。
    1.1.在 Active Directory 的“用户和计算机”控制台中,右击“用户”文件夹,单击“新建”,然后选择“用户”。
    1.2.完成用户帐户的创建。
  2. 右键单击用户帐户,然后选择“属性”。
  3. 转到“帐户”选项卡,然后在“帐户选项”下选择“此帐户支持 Kerberos AES 256 位加密”。
  4. 重要提示:如果 AD 用户的密码已过期或已更新,则在后续步骤中生成的密钥表将失效。考虑选中此 AD 用户帐户的“帐户”选项下的“密码永不过期”。或者,您可以在密码即将过期时更新密码并生成新的密钥表。
  5. 要为 SPN 生成密钥表文件,请使用管理员访问权限打开 PowerShell 并执行以下命令:
ktpass -princ HTTP/<Service Fabric FQDN>@<AD FQDN in cap> -pass <AD user's password> -mapuser <AD NetBIOS name in cap>\<AD user name> -pType KRB5_NT_PRINCIPAL -out <output file path> -crypto AES256-SHA1

某些字段必须指定为大写形式。例如:

ktpass -princ HTTP/uipath-34i5ui35f.westeurope.cloudapp.azure.com@TESTDOMAIN.LOCAL -pass pwd123 -mapuser TESTDOMAIN\aduser -pType KRB5_NT_PRINCIPAL -out c:\krb5.keytab -crypto AES256-SHA1

📘

备注:

生成密钥表后,“用户登录名”将更改为 HTTP/<Service Fabric FQDN>。我们将此值称为 <KERB_DEFAULT_USERNAME>

  1. 对生成的密钥表文件进行 Base64 编码,打开 PowerShell 并执行以下命令:
[Convert]::ToBase64String([System.IO.File]::ReadAllBytes("<path to the generated keytab file>"))
  1. 保存已编码的密钥表文件。为 Kerberos 配置 UiPath 集群时加以使用。我们将步骤 6 中的值称为 <KERB_DEFAULT_KEYTAB>

 

可选:SQL 身份验证先决条件

要将 UiPath 集群配置为使用 Windows 集成身份验证/Kerberos 连接到 SQL,您需要执行一些其他步骤:

  • SQL Server 必须加入 AD 域;
  • Automation Suite 集群必须与 SQL Server 位于同一网络上;
  • Automation Suite 集群可以解析 AD 和 SQL 服务器的域名;
  • AD 用户必须具有针对 SQL Server 和 DB 的访问权限。
单击此处以获取详细说明

要在 SQL Server Management Studio 中创建新的登录名,请执行以下步骤:
a. 在“对象资源管理器”面板中,导航到“安全”>“登录”
b. 右键单击“登录”文件夹并选择“新登录”。将显示“登录 - 新”窗口。
c. 选择“Windows 身份验证”选项。窗口将相应更新。

704

d. 在“登录名”字段中,键入要用作服务帐户的用户域。
e. 从“默认语言”列表中选择“English”

❗️

重要

Ensure that the Default Language is set to English. If it isn't, the website cannot start, and the Event Viewer on the computer on which Orchestrator is installed displays the following error message: “The conversion of a varchar data type to a datetime data type resulted in an out of range value”.

f. 单击“确定”。您的配置将被保存。
如果服务帐户已创建并添加到 SQL Server 的“安全”>“登录”部分,请检查该 SQL 帐户的默认语言是否设置为英语。如果不是,请进行必要的调整。

您需要为连接到 SQL 数据库的用户提供 db_owner 用户映射角色,如以下屏幕截图所示。

704

如果安全限制不允许您通过 UiPath 登录使用 db_owner 用户映射角色,请授予以下权限:

  • db_datareader
  • db_datawriter
  • db_ddladmin
  • dbo 架构上的 EXECUTE 权限
705

必须使用 GRANT EXECUTE SQL 命令授予 EXECUTE 权限,如下所示:

USE UiPath
GO
GRANT EXECUTE ON SCHEMA::dbo TO [domain\user]
GO

如果您希望 UiPath 应用程序使用 AD 用户帐户通过Integrated Security=True连接到 SQL,则需要为每个 UiPath 应用程序创建一个唯一的密钥表,如下所示。 对于该应用程序,这将称为<KERB_APP_KEYTAB>

Generating Kerberos application keytab and username parameters

选项 1:通过运行脚本(推荐)

  1. Run the service-keytab-creator.ps1 script.
  2. Input the following values to the script:
    2.1. AD domain FQDN. For example, TESTDOMAIN.LOCAL.
    2.2. AD 用户帐户的用户名和密码。例如,AD 用户帐户 sAMAccountName 及其密码。

输出文件包含 Kerberos 所需的 <KERB_APP_USERNAME><KERB_APP_KEYTAB> 参数。

Option 2: manually

手动运行以下脚本:

# Generate keytab file and output it in the desired path 
ktpass /princ <AD username>@<AD domain in cap> /pass <AD user password> /ptype KRB5_NT_PRINCIPAL /crypto AES256-SHA1 /out <path to keytab file> -setpass 

# Converts AD user's keytab file to base 64 
[Convert]::ToBase64String([System.IO.File]::ReadAllBytes("<path to the generated keytab file>"))

<AD username> 将是与 <KERB_APP_USERNAME> 对应的 <KERB_APP_KEYTAB>

 

将 Automation Suite 配置为 Kerberos 客户端


本节说明如何将 Automation Suite 配置为用于访问 LDAP 或 SQL 的 Kerberos 客户端。

使用 <KERB_DEFAULT_KEYTAB>,通过以下方式之一将 Automation Suite 配置为 Kerberos 客户端:

📘

备注:

如果您想将不同的服务设置为在它们自己的 AD 帐户下运行,并以那个 AD 帐户访问 SQL,你可以在服务的配置部分使用该 <KERB_APP_USERNAME> 指定 ad_username 并将 user_keytab 指定为 <KERB_APP_KEYTAB>

 

通过交互式安装程序配置 Kerberos 身份验证

  1. 运行 Automation Suite 安装程序时,请在部署配置中指定需要启用 Kerberos 身份验证
===============================================================================
                            Deployment configuration
===============================================================================

Are you performing an evaluation/development/test/demo or a production deployment?
[1] Production deployment (multi-node)
[2] Evaluation/development/test/demo deployment (single-node)
Enter your choice [2]: 2

Will your deployment have access to Internet (online) or is it physically isolated from unsecured networks (air-gapped)?
[1] Online
[2] Air-gapped
Enter your choice [1]: 1
Enter the Automation Suite FQDN []: sfdev1868610-d053997f-lb.eastus.cloudapp.azure.com
sfdev1868610-d053997f-lb.eastus.cloudapp.azure.comsfdev1868610-d053997f-lb.eastus.cloudapp.azure.com

Would you like to enable Kerberos Auth? This will be used to connect to SQL Databases and Active Directory Lightweight Directory Adaptor if configured.
[1] Yes
[2] No

Enter your choice [2]: 1
  1. 提供 Kerberos 身份验证的输入参数:

📘

备注:

这是所有服务的默认 Kerberos 身份验证设置。如果要为每个服务设置不同的 AD 用户,则可以在安装过程中稍后的步骤中指定特定于服务的 JSON 对象中的值。

Specify the Active Directory domain for Kerberos Auth []: 
Specify the Ticket Granting Ticket lifetime (TGT) in hours between 8 and 168 for Kerberos Auth [8]:
Specify the default Active Directory username for Kerberos Auth []: 
Specify the default Active Directory user's keytab for Kerberos Auth []: 
Specify the SQL server FQDN []: 
Specify the SQL server connection PORT [1433]:

📘

备注:

AD 域控制器在“默认域策略”中具有“用户票证最长生存期”Kerberos 设置。确保此处配置的票证生存期不长于服务器端设置。


您必须按照先决条件部分中的说明生成密钥表文件 (<KERB_DEFAULT_KEYTAB>),并将 Base64 编码的值提供给安装程序。然后,您必须向安装程序提供 <KERB_DEFAULT_USERNAME>,将其作为 Active Directory username 的值。

  1. 完成其余的安装体验,如以下示例所示:
Would you like the databases to be automatically provisioned for all the products you've selected?
[1] Yes
[2] No

Enter your choice [1]: 1

The following databases will be provisioned automatically:
- Shared suite capabilities: AutomationSuite_Platform
- Orchestrator: AutomationSuite_Orchestrator
- Test Manager: AutomationSuite_Test_Manager
- Insights: AutomationSuite_Insights
- Automation Hub: AutomationSuite_Automation_Hub
- Automation Ops: AutomationSuite_Automation_Ops
- AI Center: AutomationSuite_AICenter
- Document understanding: AutomationSuite_DU_Datamanager


===============================================================================
                            Current config values
===============================================================================
Multi node: false
Airgapped: false
Automation Suite FQDN: sfdev1868610-d053997f-lb.eastus.cloudapp.azure.com
Sql server FQDN: sfdev1868610-d053997f-sql.database.windows.net
Sql port: 1433
Sql username:
Sql password:
Create sql databases: true
Kerberos Auth enabled: true
Kerberos Auth Active Directory domain: abcd.com
Kerberos Auth TGT lifetime in hours: 8
Kerberos Auth default Active Directory username: ad_user
Kerberos Auth default user's keytab: XXXXXXXXX


✅ The cluster configuration file was generated at /tmp/UiPathAutomationSuite/cluster_config.json:

[1] Continue installing with the default config
[2] Edit the config
[3] Go to the main menu

For advanced settings, quit now and manually edit the config file.
Once the configuration file is updated, run the deployment wizard again and follow the instructions.
Would you like the databases to be automatically provisioned for all the products you've selected?
[1] Yes
[2] No

Enter your choice [1]: 1

The following databases will be provisioned automatically:
- Shared suite capabilities: AutomationSuite_Platform
- Orchestrator: AutomationSuite_Orchestrator
- Test Manager: AutomationSuite_Test_Manager
- Insights: AutomationSuite_Insights
- Automation Hub: AutomationSuite_Automation_Hub
- Automation Ops: AutomationSuite_Automation_Ops
- AI Center: AutomationSuite_AICenter
- Document understanding: AutomationSuite_DU_Datamanager


===============================================================================
                            Current config values
===============================================================================
Multi node: false
Airgapped: false
Automation Suite FQDN: sfdev1868610-d053997f-lb.eastus.cloudapp.azure.com
Sql server FQDN: sfdev1868610-d053997f-sql.database.windows.net
Sql port: 1433
Sql username:
Sql password:
Create sql databases: true
Kerberos Auth enabled: true
Kerberos Auth Active Directory domain: abcd.com
Kerberos Auth TGT lifetime in hours: 8
Kerberos Auth default Active Directory username: ad_user
Kerberos Auth default user's keytab: XXXXXXXXX


✅ The cluster configuration file was generated at /tmp/UiPathAutomationSuite/cluster_config.json:

[1] Continue installing with the default config
[2] Edit the config
[3] Go to the main menu

For advanced settings, quit now and manually edit the config file.
Once the configuration file is updated, run the deployment wizard again and follow the instructions.
  1. 可选:您可以编辑配置,如下所示:
===============================================================================
                    Choose what setting you want to edit
===============================================================================
[1] Multi node: false
[2] Airgapped: false
[3] Automation Suite FQDN: sfdev1868610-d053997f-lb.eastus.cloudapp.azure.com
[4] Sql server FQDN: sfdev1868610-d053997f-sql.database.windows.net
[5] Sql port: 1433
[6] Sql username:
[7] Sql password:
[8] Create sql databases: true
[9] Kerberos Auth enabled: true
[10] Kerberos Auth Active Directory domain: abcd.com
[11] Kerberos Auth TGT lifetime in hours
[12] Kerberos Auth default Active Directory username: ad_user
[13] Kerberos Auth default user's keytab: XXXXXXXXX===============================================================================
                    Choose what setting you want to edit
===============================================================================
[1] Multi node: false
[2] Airgapped: false
[3] Automation Suite FQDN: sfdev1868610-d053997f-lb.eastus.cloudapp.azure.com
[4] Sql server FQDN: sfdev1868610-d053997f-sql.database.windows.net
[5] Sql port: 1433
[6] Sql username:
[7] Sql password:
[8] Create sql databases: true
[9] Kerberos Auth enabled: true
[10] Kerberos Auth Active Directory domain: abcd.com
[11] Kerberos Auth TGT lifetime in hours
[12] Kerberos Auth default Active Directory username: ad_user
[13] Kerberos Auth default user's keytab: XXXXXXXXX

 

通过以下方式配置 Kerberos 身份验证 cluster_config.json

  1. cluster_config.json 文件中,将 kerberos_auth_config.enabled 参数设置为 true

  2. 如果要使用 Kerberos 进行访问 SQL,请使用“集成安全性”标志配置 sql_connection_string_templatesql_connection_string_template_jdbcsql_connection_string_template_odbc

  3. 如果要为每个服务设置不同的 AD 用户,请执行以下步骤:
    i.在服务组的 JSON 对象中指定ad_usernameuser_keytab
    ii.更新服务的 SQL 连接字符串以启用集成安全性。
    JSON 对象应如下所示:

"<serviceGroupName>": {
    "kerberos_auth_config": {
      "ad_username": "PLACEHOLDER - INSERT KERB_APP_USERNAME for this service group",
      "user_keytab": "PLACEHOLDER - INSERT KERB_APP_KEYTAB for this service group"
    }
}

📘

有关服务组名称的列表,请参阅服务组和服务

  1. 更新cluster_config.json后,运行安装程序脚本以更新配置。 有关详细信息,请参阅管理产品

更新 Orchestrator 和平台以使用 Kerberos 身份验证的示例

"kerberos_auth_config": {
    "enabled" : true, 
    "ticket_lifetime_in_hour" : 8, 
    "ad_domain": "PLACEHOLDER - INSERT ACTIVE DIRECTORY DOMAIN ",
    "default_ad_username": "PLACEHOLDER - INSERT KERB_DEFAULT_USERNAME",
    "default_user_keytab": "PLACEHOLDER - INSERT KERB_DEFAULT_KEYTAB"
  },
"sql_connection_string_template": "PLACEHOLDER",
"sql_connection_string_template_jdbc": "PLACEHOLDER",
"sql_connection_string_template_odbc": "PLACEHOLDER",
"orchestrator": {
    "sql_connection_str": "Server=tcp:sfdev1804627-c83f074b-sql.database.windows.net,1433;Initial Catalog=AutomationSuite_Orchestrator;Persist Security Info=False;Integrated Security=true;MultipleActiveResultSets=False;Encrypt=True;TrustServerCertificate=False;Connection Timeout=30;Max Pool Size=100;",
    "kerberos_auth_config": {
      "ad_username": "PLACEHOLDER - INSERT KERB_APP_USERNAME for Orchestrator",
      "user_keytab": "PLACEHOLDER - INSERT KERB_APP_KEYTAB for Orchestrator"
    }
    "testautomation": {
      "enabled": true
    },
    "updateserver": {
      "enabled": true
    }
},
"platform": {
    "sql_connection_str": "Server=tcp:sfdev1804627-c83f074b-sql.database.windows.net,1433;Initial Catalog=AutomationSuite_Platform;Persist Security Info=False;Integrated Security=true;MultipleActiveResultSets=False;Encrypt=True;TrustServerCertificate=False;Connection Timeout=30;Max Pool Size=100;",
    "kerberos_auth_config": {
      "ad_username": "PLACEHOLDER - INSERT KERB_APP_USERNAME for platform",
      "user_keytab": "PLACEHOLDER - INSERT KERB_APP_KEYTAB for platform"
    }
}

服务组和服务

下表列出了可用的服务组及其包含的服务, cluster_config.json文件或 ArgoCD 用户界面中的名称略有不同。

Service group name for cluster_config.jsonService group name for ArgoCDIncluded services
orchestratororchestratorOrchestrator, Webhooks
platformplatformIdentity, License Accountant (LA), Audit, Location, License Resource Manager (LRM), Organization Management Service (OMS)
discovery_groupdiscoverygroupAutomation Hub, Task Mining
test_managertestmanagerTest Manager
automation_opsautomationopsAutomation Ops
aicenteraicenterAI Center
documentunderstandingdocumentunderstandingDocument Understanding
insightsinsightsInsights
dataservicedataserviceData Service

 

通过 ArgoCD 用户界面更新 Kerberos 身份验证

  1. 转到 ArgoCD 用户界面,找到 UiPath 应用程序,单击左上角的“应用程序详细信息”按钮,然后导航到“参数”选项卡。

  2. 单击“编辑”,将以下参数更新为指定的值,然后保存新配置。

ParameterValue
global.kerberosAuthConfig.adDomainAD domain
global.kerberosAuthConfig.adUserNameKERB_DEFAULT_USERNAME
global.kerberosAuthConfig.enabledtrue
global.kerberosAuthConfig.userKeytabKERB_DEFAULT_KEYTAB
global.kerberosAuthConfig.ticketLifetimeInHours8 (default)

📘

备注:

AD 域控制器在“默认域策略”中具有“用户票证最长生存期”Kerberos 设置。确保此处配置的票证生存期不长于服务器端设置。

  1. 如果要将 SQL 与集成身份验证结合使用,并且需要为每个应用程序使用唯一的用户帐户,则必须为每个应用程序配置以下参数。

    按以下格式更新服务组adUserNameuserKeytab

global.userInputs.<serviceGroupName>.kerberosAuthConfig.adUserName
global.userInputs.<serviceGroupName>.kerberosAuthConfig.userkeytab

示例:

Parameter exampleValue
global.platform.kerberosAuthConfig.adUserNameKERB_APP_USERNAME for platform
global.platform.kerberosAuthConfig.userKeytabKERB_APP_KEYTAB for platform
global.orchestrator.kerberosAuthConfig.adUserNameKERB_APP_USERNAME for Orchestrator
global.orchestrator.kerberosAuthConfig.userKeytabKERB_APP_KEYTAB for Orchestrator
  1. “同步”UiPath 应用程序,然后等待同步完成,并显示 healthy 状态响应。

  2. 如果要使用 Kerberos 进行 SQL 访问,现在可以使用“集成安全性” 标志更新每个服务的 SQL 连接字符串,以开始使用集成身份验证。

 

通过 CLI 工具更新 Kerberos 身份验证

To update Kerberos authentication via the CLI tool, see Updating Kerberos authentication.

 

配置 Active Directory 集成


要在登录 Automation Suite 时使用 Kerberos 身份验证,您必须进一步配置 Automation Suite 主机设置。
For instructions, see Configuring the Active Directory integration.

 

禁用 Kerberos 身份验证


完全删除 Kerberos 身份验证

要完全删除 Kerberos 身份验证,请执行以下步骤:

  1. 如果您使用 Kerberos 配置 AD 集成,请按照配置 Active Directory 集成中的说明使用用户名和密码选项重新配置 AD。
  2. 如果您使用了 SQL 集成身份验证,请将 SQL 连接字符串配置为使用“用户 ID ”和“密码”。
  3. 禁用 Kerberos 身份验证,如下所示:
    一个。转到 ArgoCD 用户界面,找到 uipath 应用程序,单击左上角的“应用程序详细信息” 按钮,然后导航到“参数” 选项卡。
    湾单击“编辑”,然后将global.kerberosAuthConfig.enabled设置为false

删除 SQL 集成身份验证

要删除 SQL 集成身份验证,请执行以下步骤:

  1. 将 SQL 连接字符串配置为使用“用户 ID ”和“密码”。
  2. 如果要对所有服务禁用 SQL 集成身份验证,请设置global.kerberosAuthConfig.enabled
    更改所有连接字符串后,在 ArgoCD 中将其更改为false

 

Kerberos 故障排除


If you encounter any issues while configuring Kerberos, see Troubleshooting.

9 天前更新


设置 Kerberos 身份验证


建议的编辑仅限用于 API 参考页面

您只能建议对 Markdown 正文内容进行编辑,而不能建议对 API 规范进行编辑。