UiPath Documentation
automation-suite
2.2510
true
Linux 版 Automation Suite 安装指南
重要 :
请注意,此内容已使用机器翻译进行了部分本地化。 新发布内容的本地化可能需要 1-2 周的时间才能完成。

设置 Kerberos 身份验证

有关 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. 在已加入域的 Windows 计算机上使用 AD 管理员帐户登录。

  2. 以管理员身份运行keytab-creator.ps1脚本。

  3. 在脚本中输入以下值:

    1. Service Fabric FQDN。例如 uipath-34i5ui35f.westeurope.cloudapp.azure.com
    2. AD domain FQDN。例如 TESTDOMAIN.LOCAL
    3. AD 用户帐户。您可以使用现有帐户,例如 sAMAccountName,也可以允许脚本创建新帐户。

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

选项 2:手动

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

  1. 在 AD 服务器中,创建一个新的计算机帐户。如果您已有帐户,请跳到步骤 2。

    1. 在 Active Directory 的“用户和计算机”控制台中,打开“用户”文件夹的上下文菜单,选择“新建” ,然后选择“用户”
    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/<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 -setpass
    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 -setpass
    
    备注:

    要更新 Automation Suite 的密钥表,请运行带有-setpass选项的命令。首次生成密钥表时,您必须以域管理员身份运行命令。这是必需的,因为该命令会更新服务帐户的 SPN。对于以后的更新,如果 SPN 映射未更改,则可以以域用户身份运行命令。

    生成密钥表后,用户登录名将更改为HTTP/<Service Fabric FQDN> 。 将此值用于<KERB_DEFAULT_USERNAME> default_ad_username中 的cluster_config.json 字段,如下所示:

    "kerberos_auth_config": {
          "enabled": true,
          "ticket_lifetime_in_hour": 8,
          "ad_domain": "AUTOSUITEAD.LOCAL",
          "default_ad_username": "HTTP/sfqakxxxx-ea.infra.uipath-dev.com",
          "default_user_keytab": "BQIAAAB9AAIxxxxxxxxxxxxxxxxxxGRCqh+yQ="
          "enable_integrated_sql_auth": true
    },
    "kerberos_auth_config": {
          "enabled": true,
          "ticket_lifetime_in_hour": 8,
          "ad_domain": "AUTOSUITEAD.LOCAL",
          "default_ad_username": "HTTP/sfqakxxxx-ea.infra.uipath-dev.com",
          "default_user_keytab": "BQIAAAB9AAIxxxxxxxxxxxxxxxxxxGRCqh+yQ="
          "enable_integrated_sql_auth": true
    },
    
    备注:

    默认情况下,enable_integrated_sql_auth 参数设置为 true。 如果要为所有产品禁用 SQL 的 Kerberos 身份验证,则必须将该参数设置为 false

  6. 对生成的密钥表文件进行 Base64 编码,打开 PowerShell 并执行以下命令:

    [Convert]::ToBase64String([System.IO.File]::ReadAllBytes("<path to the generated keytab file>"))
    [Convert]::ToBase64String([System.IO.File]::ReadAllBytes("<path to the generated keytab file>"))
    
  7. 保存已编码的密钥表文件。为 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 身份验证”选项。窗口将相应更新。

d.在“登录名”字段中,输入要用作服务帐户的用户域。

e. 从“默认语言”列表中选择“English”

重要提示:

确保将“默认语言”设置为“English” 。否则,网站将无法启动,并且安装了 Orchestrator 的计算机上的事件查看器将显示以下错误消息: 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 用户映射角色,如以下屏幕截图所示。

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

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

下图显示了在不能使用 db_owner 时要授予的数据库权限。

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

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

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

生成 Kerberos 应用程序密钥表和用户名参数
  1. 在脚本中输入以下值:

    1. AD domain FQDN。例如 TESTDOMAIN.LOCAL
    2. AD 用户帐户的用户名和密码。例如,AD 用户帐户 sAMAccountName 及其密码。

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

选项 2:手动

手动运行以下脚本:

# 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>"))
# 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 客户端:

通过 cluster_config.json 配置 Kerberos 身份验证

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

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

    备注:

    不仅支持对 SQL 进行 Kerberos 身份验证。要使用 SQL 身份验证激活 Kerberos,您必须启用kerberos_auth_config 。这还会添加用户身份验证。

  3. 如果要为每个服务设置不同的 AD 用户,请执行以下步骤:

    1. 在服务组的 JSON 对象中指定 ad_usernameuser_keytab

    2. 更新服务的 SQL 连接字符串以启用集成安全性。

    3. 在全局级别启用 Kerberos 身份验证时,enabled 参数默认设置为 true。 如果要为特定产品禁用 SQL 的 Kerberos 身份验证,则必须将 enabled 设置为 false

      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",
            "enabled": true
          }
      }
      "<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",
            "enabled": true
          }
      }
      
      备注:

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

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

    备注:

    您可以使用此过程来更新或轮换 Kerberos 密钥表。

更新 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",
    "enable_integrated_sql_auth": true
  },
  "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",
      "enabled": true
    },
    "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",
      "enabled": true
    }
  }
  "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",
    "enable_integrated_sql_auth": true
  },
  "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",
      "enabled": true
    },
    "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",
      "enabled": true
    }
  }
备注:

默认情况下, enable_integrated_sql_auth参数设置为true 。如果要为所有产品禁用 SQL 的 Kerberos 身份验证,则必须将此参数设置为false

服务组和服务

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

cluster_config.json 的服务组名称 cluster_config.jsonArgoCD 的服务组名称包含的服务
orchestratororchestratorOrchestrator、Webhook
platformplatform身份、许可证会计 (LA)、审核、位置、许可证资源管理器 (LRM)、组织管理服务 (OMS)
discovery_groupdiscoverygroupAutomation Hub
test_managertestmanagerTest Manager
automation_opsautomationopsAutomation Ops
aicenteraicenterAI Center
documentunderstandingdocumentunderstandingDocument Understanding
insightsinsightsInsights
dataservicedataserviceData Service
asrobotsasrobotsAutomation Suite 机器人
processminingprocessminingProcess Mining

配置 Active Directory 集成

要在登录 Automation Suite 时使用 Kerberos 身份验证,您必须进一步配置 Automation Suite 主机设置。

禁用 Kerberos 身份验证

完全删除 Kerberos 身份验证

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

  1. 如果您使用 Kerberos 来配置 AD 集成,请按照配置 Active Directory 集成中的说明使用用户名和密码选项重新配置 AD。
  2. 如果您使用了 SQL 集成身份验证,请将 SQL 连接字符串配置为使用“用户 ID ”和“密码”。
  3. 禁用 Kerberos 身份验证。在cluster_config.json文件中,将kerberos_auth_config.enabled参数设置为false ,然后运行安装程序脚本以更新配置。有关详细信息,请参阅管理产品

删除 SQL 集成身份验证

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

  1. 将 SQL 连接字符串配置为使用“用户 ID ”和“密码”。
  2. 如果要禁用所有服务的 SQL 集成身份验证,请在cluster_config.json文件中将kerberos_auth_config.enabled参数设置为false ,然后运行安装程序脚本以更新配置。有关详细信息,请参阅管理产品

Kerberos 故障排除

如果在配置 Kerberos 时遇到任何问题,请参阅身份验证故障排除

此页面有帮助吗?

连接

需要帮助? 支持

想要了解详细内容? UiPath Academy

有问题? UiPath 论坛

保持更新