orchestrator
latest
false
UiPath logo, featuring letters U and I in white
Orchestrator 用户指南
Automation CloudAutomation Cloud Public SectorAutomation SuiteStandalone
Last updated 2024年11月4日

Orchestrator Credentials Proxy

您可以将自己的凭据存储添加到 Orchestrator,以便独立控制连接数据的安全性。

为完成此操作,您可以以 .dll 文件的形式将所需的凭据存储插件加载到Orchestrator Credentials Proxy 网页服务。安装工具包包含 UiPath 支持的所有插件,但您也可以开发自己的插件 .dll 文件以用于加载。此服务然后通过代理将您的插件部署到 Orchestrator,该代理是根据公共 URL 和代理生成的密钥在 Orchestrator 中创建。

已知问题

这仅适用于将 Orchestrator Credentials Proxy 端口设置为与默认 443 不同的值的场景。

当您从 1.0.0 和 2.0.1 之间的任何版本升级,并且使用了自定义端口时,UiPathOrchestratorCredentialsProxy 入站规则中的本地端口将自动更改为 443,这是默认端口。这将阻止建立与代理的连接。

要解决此问题,您需要在升级时手动更改入站规则中的本地端口。

安装

Orchestrator 凭据代理可以通过 .msi 安装程序或通过 UiPath 提供的 Docker 映像完成安装。

硬件和软件要求

硬件要求

这些是在具有 IIS 的 Windows Server 上运行代理的最低要求。实际资源需求将因个人使用情况而异。

CPU 核心

RAM

2

4GB

软件要求

安装代理需要以下 Windows Server 版本:

  • 2012 R2
  • 2016 年
  • 2019 年
  • 2022

通过 .msi 安装程序

先决条件

要使用代理,需要满足以下条件:

  • ASP.NET Core 版本 3.1、6.0.x 或 8.0.x
  • IIS 8.0 或更高版本
  • 必须安装以下 Windows 功能:

    • IIS 默认文档
    • IIS Http 错误
    • IIS 静态内容
    • IIS 请求筛选
    • IIS URL 授权
    • IIS Windows 身份验证
    • IIS ASPNET45
    • IIS ISAPI 扩展程序
    • IIS ISAPI 筛选器
    • IIS WebSocket
    • IIS 应用程序初始化
    • IIS 管理控制台

安装步骤

请按照以下步骤执行安装:

  1. 前往 Customer Portal 下载 UiPath Orchestrator 凭据代理安装程序。
  2. 安装代理。

    已连接的代理

    • 公共 URL - 公开的 Orchestrator Credentials Proxy URL
    • SSL 证书 - 用于保护与 Orchestrator Credentials Proxy 连接的 SSL 证书主题或指纹。这是安装在托管代理的计算机或网页服务器上的 SSL 证书。

      请注意,它必须由公共证书提供程序颁发,并且必须对公共 URL 有效。

    • 端口 - 与公共 URL 对应的端口
    • 密钥 -(自动生成)在 Orchestrator 界面中配置自定义代理所需的密钥;请务必将其复制到剪贴板以备将来使用。

      这可以手动更改,也适用于密钥轮换。

    已断开代理连接

    仅当您订阅企业版 - 高级许可计划时,才可以使用此功能。

    • SSL 证书 - 用于保护与 Orchestrator Credentials Proxy 连接的 SSL 证书主题或指纹。这是安装在托管代理的计算机或网页服务器上的 SSL 证书。
    • 端口 - 与 URL 对应的端口
    • 密钥 -(自动生成)在 Orchestrator 界面中配置自定义代理所需的密钥;请务必将其复制到剪贴板以备将来使用。

      这可以手动更改,也适用于密钥轮换。

    安装完成后,appsettings.Production.json 文件中的 AppSettings.CredentialsProxyType 参数设置为“已断开连接”。这就是代理在启动时检测类型的方式。

通过 Docker 映像

初步信息

所有可编辑的 Orchestrator Credentials Proxy 设置都可在其 appsettings.json 文件中找到。以下参数在初始设置中非常重要:

  • Jwt:Keys -(最初为空)此字符串数组用于设置代理的身份验证。该数组构成您将在代理创建过程中使用的密钥,并允许 Orchestrator 成功从代理检索数据。系统将忽略任何无效值。如果未找到有效值,则代理将不会启动。

    密钥必须采用 base64 格式,并且可以通过以下任一 PowerShell 脚本生成。

    $bytes = [System.Security.Cryptography.RandomNumberGenerator]::GetBytes(64)
    $jwtSigningKey = [Convert]::ToBase64String($bytes);
    Write-Host $jwtSigningKey$bytes = [System.Security.Cryptography.RandomNumberGenerator]::GetBytes(64)
    $jwtSigningKey = [Convert]::ToBase64String($bytes);
    Write-Host $jwtSigningKey
上述脚本会生成 64 个随机字节(使用 SeccureRandom),并将这些字节转换为 Base64 字符串。
[Byte[]] $bytes = 1..64
$rng = New-Object System.Security.Cryptography.RNGCryptoServiceProvider
$rng.GetBytes($bytes)
$jwtSigningKey = [Convert]::ToBase64String($bytes);
Write-Host $jwtSigningKey[Byte[]] $bytes = 1..64
$rng = New-Object System.Security.Cryptography.RNGCryptoServiceProvider
$rng.GetBytes($bytes)
$jwtSigningKey = [Convert]::ToBase64String($bytes);
Write-Host $jwtSigningKey
  • appSettings:Plugins.SecureStores -(最初设置为 Orchestrator 中可用的默认凭据存储)这是一个 CSV 字符串,用于指定应从磁盘(从 path/plugins)加载哪些 .dll 程序集,以便代理使用安全存储。将无效程序集添加到列表中不会中断启动,但在尝试部署程序集时会收到日志错误。
  • appSettings:SigningCredentialSettings:FileLocation:SigningCredential:FilePathappSettings:SigningCredentialSettings:FileLocation:SigningCredential:Password -(最初隐藏)用于加密 Jwt:KeysSecureStoreConfigurations:Context 参数。这表示签名证书的文件路径。
  • appSettings:SigningCredentialSettings:StoreLocation:NameappSettings:SigningCredentialSettings:StoreLocation:LocationappSettings:SigningCredentialSettings:StoreLocation:NameType -(最初隐藏)用于加密 Jwt:KeysSecureStoreConfigurations:Context 参数。

加密 Jwt:Keys 参数

要增加额外的安全性,您可以加密 appsettings.json 文件中的 Jwt:KeysSecureStoreConfigurations:Context 参数。
注意:此操作需要 UiPath.ConfigProtector.exe 版本为 1.0.9 或更高版本。

设置并运行 Docker 映像

要使用 Docker 运行 Orchestrator Credentials Proxy,请按照以下步骤操作。

  1. 下载 Docker 映像

    您可以从 http://registry.uipath.com/ 下载映像。

    请注意,1.0.0 版本仅支持“已连接代理”,而 2.0.0 及以上版本还支持“已断开连接代理”。

    使用以下命令获取映像:

    $bytes = [System.Security.Cryptography.RandomNumberGenerator]::GetBytes(64);
    $jwtSigningKey = [Convert]::ToBase64String($bytes);
    docker run -e LICENSE_AGREEMENT=accept -e Jwt__Keys__0=$jwtSigningKey -p 8000:8080 registry.uipath.com/orchestrator-credentialsproxy:1.0.0$bytes = [System.Security.Cryptography.RandomNumberGenerator]::GetBytes(64);
    $jwtSigningKey = [Convert]::ToBase64String($bytes);
    docker run -e LICENSE_AGREEMENT=accept -e Jwt__Keys__0=$jwtSigningKey -p 8000:8080 registry.uipath.com/orchestrator-credentialsproxy:1.0.0

    这是默认的 UiPath 映像,其中包含云帐户中已提供的凭据存储。您可以在选择的云环境中部署映像。

    上述命令还会生成密钥。

  2. 创建您自己的自定义 Docker 映像

    您可以根据 UiPath 提供并在步骤 1 中下载的映像,创建自己的 Docker 映像以及其他程序集。为完成此操作,请执行以下操作:

    1. 创建一个新的 Dockerfile(为了便于说明,我们将其命名为 CustomDockerfile)并向其中添加以下内容:
      FROM {docker-image-path}
      RUN rm -rf ./plugins 
      COPY --chown=1001:0 {path of your custom assemblies} ./plugins 
      ENTRYPOINT ["dotnet", "UiPath.OrchestratorCredentialsProxy.dll"]FROM {docker-image-path}
      RUN rm -rf ./plugins 
      COPY --chown=1001:0 {path of your custom assemblies} ./plugins 
      ENTRYPOINT ["dotnet", "UiPath.OrchestratorCredentialsProxy.dll"]
      • {docker-image-path} 替换为 UiPath 提供的初始 Docker 映像的路径。
      • {path of your custom assemblies} 替换为您自己的凭据存储 .dll 文件的路径。
      了解 Visual Studio 如何使用此 Dockerfile 来构建映像以加快调试速度。
    2. 使用以下命令生成 Docker 映像,其中包括新创建的 Dockerfile 的名称:
      docker build -f CustomDockerfile . -t customproxydocker build -f CustomDockerfile . -t customproxy
    3. 运行 Docker 映像:
      docker run --publish 8000:8080 -e LICENSE_AGREEMENT="accept" -e Jwt__Keys__0=$jwtSigningKey -e appSettings__Plugins.SecureStores="{your-list-of-assemblies}" customproxydocker run --publish 8000:8080 -e LICENSE_AGREEMENT="accept" -e Jwt__Keys__0=$jwtSigningKey -e appSettings__Plugins.SecureStores="{your-list-of-assemblies}" customproxy
      • {your-list-of-assemblies} 替换为要添加到 Orchestrator 的自定义凭据存储 .dll 文件。
      要使用一个 Jwt:Keys 参数运行映像,请执行以下操作:
      docker run --publish 8000:8080 -e LICENSE_AGREEMENT="accept" -e Jwt__Keys__0=$jwtSigningKey {docker-image-name}docker run --publish 8000:8080 -e LICENSE_AGREEMENT="accept" -e Jwt__Keys__0=$jwtSigningKey {docker-image-name}
      要使用多个 Jwt:Keys 参数运行映像,请执行以下操作:
      docker run --publish 8000:8080 -e LICENSE_AGREEMENT="accept" -e Jwt__Keys__0==$jwtSigningKey" -e Jwt__Keys__1==$jwtSigningKey" -e Jwt__Keys__2==$jwtSigningKey ... {docker-image-name}docker run --publish 8000:8080 -e LICENSE_AGREEMENT="accept" -e Jwt__Keys__0==$jwtSigningKey" -e Jwt__Keys__1==$jwtSigningKey" -e Jwt__Keys__2==$jwtSigningKey ... {docker-image-name}
      • {docker-image-name} 替换为您为自定义 Docker 映像设置的名称。
      要使用 appSettings:Plugins.SecureStores 参数的自定义值(即使用所需的凭据存储)运行映像,请将此参数的内容替换为您自己的凭据存储 .dll 文件:
      docker run --publish 8000:8080 -e LICENSE_AGREEMENT="accept" -e Jwt__Keys__0=$jwtSigningKey -e appSettings__Plugins.SecureStores="UiPath.Orchestrator.CyberArk.dll;UiPath.Orchestrator.AzureKeyVault.SecureStore.dll" {docker-image-name}docker run --publish 8000:8080 -e LICENSE_AGREEMENT="accept" -e Jwt__Keys__0=$jwtSigningKey -e appSettings__Plugins.SecureStores="UiPath.Orchestrator.CyberArk.dll;UiPath.Orchestrator.AzureKeyVault.SecureStore.dll" {docker-image-name}
    4. (可选)测试新的 Docker 映像
      要测试映像,请访问其 Swagger 界面 (http://localhost:8000/swagger/index.html),并检查端点是否正常工作。

配置

已连接和已断开连接的代理

配置代理的第一步是将自定义 .dll 要在 C:\Program Files\UiPath\CredentialsProxy\plugins 文件夹中使用的插件。
某些凭据存储可能要求您在应用程序、主机或代理级别配置设置。 这些设置等同于 Orchestrator 中的对应设置。 您必须在代理的appsettings.Production.json文件中指定这些设置。

CyberArk

您必须在appsettings.Production.json文件的Appsettings参数下添加任何主机级别设置,例如CLIPasswordSDKExePathUsePowerShellCLIAdditionalAllowedCharacters
{
// ...
  "AppSettings": {
    "Plugins.SecureStores.CyberArk.CLIPasswordSDKExePath": "D:\\PathName\\CLIPasswordSDK.exe",
    // ...
  }
  // ...
}{
// ...
  "AppSettings": {
    "Plugins.SecureStores.CyberArk.CLIPasswordSDKExePath": "D:\\PathName\\CLIPasswordSDK.exe",
    // ...
  }
  // ...
}

CyberArk CCP

如果您无法通过代理检索 CyberArkCCP,请在appsettings.Production.json文件中添加以下参数:
{
// ...
  "AppSettings": {
    "Plugins.SecureStores.CyberArkCCP.KeyStorageFlags": "MachineKeySet",
    // ...
  }
  // ...
}{
// ...
  "AppSettings": {
    "Plugins.SecureStores.CyberArkCCP.KeyStorageFlags": "MachineKeySet",
    // ...
  }
  // ...
}

已断开连接(仅代理)

此代理类型完全独立于 Orchestrator,因此您必须在appsettings.Production.json配置文件中以本地方式提供与凭据保险库相关的信息。 您可以在以下位置找到这些文件: C:\Program Files\UiPath\OrchestratorCredentialsProxy\appsettings.Production.json
您必须编辑所述文件的AppSettings - SecureStoreConfigurations部分中的以下字段:
  • Key - 适用于配置的标识符密钥
  • Type - .dll 文件中标识的凭据保险库类型,该 .dll 文件通过 appsettings.json 中的 Plugins.SecureStores 参数完成配置(请参阅下方的示例)
  • Context - 与安全存储实现相关的连接信息
重要提示:

编辑配置文件后,您需要从 IIS 重新启动服务。

配置示例

您需要将以下示例添加到appsettings.Production.json配置文件中,以便启动已断开连接的代理。 否则,服务将不会启动。

根据您的凭据存储类型选择适当的示例,或使用此页面上的最后一个示例添加多个凭据存储。

AWS Secrets Manager/AWS Secrets Manager(只读)

"SecureStoreConfigurations": [
      {
        "Key": "<MyAwsStore>",
        "Type": "AWS Secrets Manager" / "AWS Secrets Manager (read only)",
        "Context": {
          "UseDefaultCredentials": "true",
          "AccessKey": "<AccessKey>",
          "SecretKey": "<SecretKey>",
          "Region": "<SelectedRegion>"
        }
      },
    ]"SecureStoreConfigurations": [
      {
        "Key": "<MyAwsStore>",
        "Type": "AWS Secrets Manager" / "AWS Secrets Manager (read only)",
        "Context": {
          "UseDefaultCredentials": "true",
          "AccessKey": "<AccessKey>",
          "SecretKey": "<SecretKey>",
          "Region": "<SelectedRegion>"
        }
      },
    ]

Azure 密钥保险库(只读)

"SecureStoreConfigurations": [
      {
        "Key": "<MyAzureStore>",
        "Type": "AzureKeyVault (read only)",
        "Context": {
          "KeyVaultUri": "<KeyVaultUri>",
          "DirectoryId": "<DirectoryId>",
          "ClientId": "<ClientId>",
          "ClientSecret": "<ClientSecret>"
        }
      },
    ]"SecureStoreConfigurations": [
      {
        "Key": "<MyAzureStore>",
        "Type": "AzureKeyVault (read only)",
        "Context": {
          "KeyVaultUri": "<KeyVaultUri>",
          "DirectoryId": "<DirectoryId>",
          "ClientId": "<ClientId>",
          "ClientSecret": "<ClientSecret>"
        }
      },
    ]
重要提示:

不支持密钥保险库(读取/写入)。

BeyondTrust 密码保险箱 - 托管帐户

"SecureStoreConfigurations": [
      {
        "Key": "<MyBeyondTrustManagedAccountsSafe>",
        "Type": "BeyondTrust Password Safe - Managed Accounts",
        "Context": {
          "Hostname": "<HostName>",
          "APIRegistrationKey": "<ApiRegistrationKey>",
          "APIRunAsUsername": "<Username>",
          "DefaultManagedSystemName": "", // can be empty or a string
          "SystemAccountDelimiter": "/", // default account delimiter is "/", but it can be changed
          "ManagedAccountType": "<ManagedAccountType>" // expected value is one of "system", "domainlinked", "database", "cloud", "application"
        }
      },
    ]"SecureStoreConfigurations": [
      {
        "Key": "<MyBeyondTrustManagedAccountsSafe>",
        "Type": "BeyondTrust Password Safe - Managed Accounts",
        "Context": {
          "Hostname": "<HostName>",
          "APIRegistrationKey": "<ApiRegistrationKey>",
          "APIRunAsUsername": "<Username>",
          "DefaultManagedSystemName": "", // can be empty or a string
          "SystemAccountDelimiter": "/", // default account delimiter is "/", but it can be changed
          "ManagedAccountType": "<ManagedAccountType>" // expected value is one of "system", "domainlinked", "database", "cloud", "application"
        }
      },
    ]

BeyondTrust 密码保险箱 - 团队密码

"SecureStoreConfigurations": [
      {
        "Key": "<MyBeyondTrustTeamPasswordSafe>",
        "Type": "BeyondTrust Password Safe - Team Passwords",
        "Context": {
          "Hostname": "<HostName>",
          "APIRegistrationKey": "<ApiRegistrationKey>",
          "APIRunAsUsername": "<Username>",
          "FolderPathPrefix" : "/", // default delimiter is "/", but it can be changed
          "FolderPasswordDelimiter" : "/" // default delimiter is "/", but it can be changed
        }
      },
    ]"SecureStoreConfigurations": [
      {
        "Key": "<MyBeyondTrustTeamPasswordSafe>",
        "Type": "BeyondTrust Password Safe - Team Passwords",
        "Context": {
          "Hostname": "<HostName>",
          "APIRegistrationKey": "<ApiRegistrationKey>",
          "APIRunAsUsername": "<Username>",
          "FolderPathPrefix" : "/", // default delimiter is "/", but it can be changed
          "FolderPasswordDelimiter" : "/" // default delimiter is "/", but it can be changed
        }
      },
    ]

CyberArk - AIM

"SecureStoreConfigurations": [
      {
        "Key": "<MyCyberArk>",
        "Type": "CyberArk",
        "Context": {
          "ApplicationId": "<App_MyCyberArk>",
          "Safe": "<Passwords>",
          "Folder": "<MyFolder>"
        }
      },
    ]    "SecureStoreConfigurations": [
      {
        "Key": "<MyCyberArk>",
        "Type": "CyberArk",
        "Context": {
          "ApplicationId": "<App_MyCyberArk>",
          "Safe": "<Passwords>",
          "Folder": "<MyFolder>"
        }
      },
    ]

CyberArk - CCP

"SecureStoreConfigurations": [
      {
        "Key": "<MyCyberArkCCPStore>",
        "Type": "CyberArkCCP",
        "Context": {
          "ApplicationId": "<ApplicationId>",
          "Safe": "<CyberArkSafe>",
          "Folder": "<CyberArkFolder>",
          "WebServiceUrl": "<CentralCredentialProviderUrl>",
          "WebServiceName": "<WebServiceName>",
          "SerializedClientCertificate": "<ClientCertificate>", // must be ".pfx" as base64
          "ClientCertificatePassword": "<ClientCertificatePassword>",
          "SerializedRootCA": "<someServerRootCA>" // must be ".crt" or ".cer" as base64
        }
      },
    ]    "SecureStoreConfigurations": [
      {
        "Key": "<MyCyberArkCCPStore>",
        "Type": "CyberArkCCP",
        "Context": {
          "ApplicationId": "<ApplicationId>",
          "Safe": "<CyberArkSafe>",
          "Folder": "<CyberArkFolder>",
          "WebServiceUrl": "<CentralCredentialProviderUrl>",
          "WebServiceName": "<WebServiceName>",
          "SerializedClientCertificate": "<ClientCertificate>", // must be ".pfx" as base64
          "ClientCertificatePassword": "<ClientCertificatePassword>",
          "SerializedRootCA": "<someServerRootCA>" // must be ".crt" or ".cer" as base64
        }
      },
    ]
根据 IIS 配置,您可能需要配置其他KeyStorageFlags ,如下所示:
"AppSettings": {
...
"Plugins.SecureStores.CyberArkCCP.KeyStorageFlags": "MachineKeySet",
...
}"AppSettings": {
...
"Plugins.SecureStores.CyberArkCCP.KeyStorageFlags": "MachineKeySet",
...
}

CyberArk™ Conjur Cloud(只读)

"SecureStoreConfigurations": [
      {
        "Key": "MyCyberArkConjur",
        "Type": "CyberArk Conjur Cloud (read only)",
        "Context": {
          "ServiceUrl": "https://{myCyberArkConjurUrl}/",
          "LoginName": "{myLoginName}",
          "ApiKey": "{myApiKey}",
          "VariableIdPrefix": "{myPrefix}"
        }
      },
    ]    "SecureStoreConfigurations": [
      {
        "Key": "MyCyberArkConjur",
        "Type": "CyberArk Conjur Cloud (read only)",
        "Context": {
          "ServiceUrl": "https://{myCyberArkConjurUrl}/",
          "LoginName": "{myLoginName}",
          "ApiKey": "{myApiKey}",
          "VariableIdPrefix": "{myPrefix}"
        }
      },
    ]

HashiCorp 保险库 /HashiCorp 保险库(只读)

"SecureStoreConfigurations": [
      {
        "Key": "<MyHashiCorp>",
        "Type": "HashiCorp Vault" / "HashiCorp Vault (read only)",
        "Context": {
          "VaultUri": "<VaultUri>",
          "AuthenticationType": "<AppRole>",
          "RoleId": "<RoleId>",
          "SecretId": "<SecretId>",
          "Username": "<Username>",
          "Password": "<Password>",
          "Token": "<Token>",
          "SecretsEngine": "<KeyValueV2>",
          "SecretsEngineMountPath": "<Secret>",
          "DataPath": "<applications/orchestrator>",
          "Namespace": "<orchestrator>"
        }
      },
    ]    "SecureStoreConfigurations": [
      {
        "Key": "<MyHashiCorp>",
        "Type": "HashiCorp Vault" / "HashiCorp Vault (read only)",
        "Context": {
          "VaultUri": "<VaultUri>",
          "AuthenticationType": "<AppRole>",
          "RoleId": "<RoleId>",
          "SecretId": "<SecretId>",
          "Username": "<Username>",
          "Password": "<Password>",
          "Token": "<Token>",
          "SecretsEngine": "<KeyValueV2>",
          "SecretsEngineMountPath": "<Secret>",
          "DataPath": "<applications/orchestrator>",
          "Namespace": "<orchestrator>"
        }
      },
    ]

Thycotic Secret Server

"SecureStoreConfigurations": [
      {
        "Key": "<MyThicoticServer>",
        "Type": "Thycotic Secret Server",
        "Context": {
          "SecretServerUrl": "<ServerUrl>",
          "RuleName": "<Rule>",
          "RuleKey": "<Key>",
          "UsernameField": "<Username>",
          "PasswordField": "<Password>"
        }
      },
    ]"SecureStoreConfigurations": [
      {
        "Key": "<MyThicoticServer>",
        "Type": "Thycotic Secret Server",
        "Context": {
          "SecretServerUrl": "<ServerUrl>",
          "RuleName": "<Rule>",
          "RuleKey": "<Key>",
          "UsernameField": "<Username>",
          "PasswordField": "<Password>"
        }
      },
    ]

多个凭据存储

如果使用多个凭据存储,则可以在另一个凭据存储下添加一个凭据存储,如下所示:

{
...
  "AppSettings": {
  ...
    "SecureStoreConfigurations": [
      {
        "Key": "<SecureStoreKey1>",
        "Type": "AzureKeyVault (read only)",
        "Context": {
          "KeyVaultUri": "<Uri>",
          "DirectoryId": "<DirectoryId>",
          "ClientId": "<ClientId>",
          "ClientSecret": "<ClientSecret>"
        }
      },
      {
        "Key": "<SecureStoreKey2>",
        "Type": "BeyondTrust Password Safe - Managed Accounts",
        "Context": {
          "Hostname": "<Host>",
          "APIRegistrationKey": "<ApiKey>",
          "APIRunAsUsername": "<ApiUsername>",
          "DefaultManagedSystemName": "",
          "SystemAccountDelimiter": "/",
          "ManagedAccountType": "system"
        }
      }
    ]
  ...
  }
}{
...
  "AppSettings": {
  ...
    "SecureStoreConfigurations": [
      {
        "Key": "<SecureStoreKey1>",
        "Type": "AzureKeyVault (read only)",
        "Context": {
          "KeyVaultUri": "<Uri>",
          "DirectoryId": "<DirectoryId>",
          "ClientId": "<ClientId>",
          "ClientSecret": "<ClientSecret>"
        }
      },
      {
        "Key": "<SecureStoreKey2>",
        "Type": "BeyondTrust Password Safe - Managed Accounts",
        "Context": {
          "Hostname": "<Host>",
          "APIRegistrationKey": "<ApiKey>",
          "APIRunAsUsername": "<ApiUsername>",
          "DefaultManagedSystemName": "",
          "SystemAccountDelimiter": "/",
          "ManagedAccountType": "system"
        }
      }
    ]
  ...
  }
}

验证

重要提示:

这仅适用于已断开连接的 Credentials Proxy。

如果代理检测到的类型为Disconnected ,则它会在启动时验证配置。

以下是代理执行的一些验证步骤:

  • 代理可确保appsettings.Production.json包含预期配置,如上面的“配置”部分中所述。
  • 代理可确保SecureStoreConfigurations不包含任何重复的Key参数,即appsettings.Production.json文件中配置的凭据存储是唯一的。
  • SecureStoreConfigurations参数是一个配置数组。 您可以根据需要添加任意数量的凭据存储,即使类型相同。 例如,您可以配置多个 Azure 密钥保险库(只读)实例,前提是Key字段唯一。
  • 代理会检查所有Type值是否有效。
  • 根据每个安全存储的实现,代理会检查是否可以成功访问保险库。

日志记录

如果代理的应用程序池具有该路径的写入权限,则 Orchestrator Credentials Proxy 日志会存储在本地的 C:\Program Files\UiPath\OrchestratorCredentialsProxy 文件夹中。系统会在 IIS 中配置这些内容。
如果您不想授予该文件夹的写入权限,请通过appsettings.Production.json中的NLog.targets.logfile.fileName参数提供您选择的相对或绝对路径。

在 Windows 计算机上,代理还将日志存储在 Windows 事件查看器中。

安全注意事项

  • Orchestrator 仅允许针对代理使用安全 (HTTPS) URL。HTTPS 证书必须有效,并由广泛认可的证书颁发机构签名。不支持自签名证书或由内部授权机构签名的证书。
  • Orchestrator 通过 Orchestrator Credentials Proxy 生成的客户端密码进行验证。 客户端密码存储在安装 Orchestrator Credentials Proxy 计算机的配置文件中,并由 Orchestrator 加密并存储在数据库中。
  • 在 Orchestrator 中编辑凭据存储代理并更改其 URL 时,您必须输入客户端密码。
  • Orchestrator Credentials Proxy 2.0.0 及更高版本操作记录在 Windows 事件查看器中。

  • 必须在 Windows 计算机上签二进制。
  • 必须对 Docker 映像进行签名。

将 Orchestrator Credentials Proxy 与负载均衡器一起使用

如果将代理与负载均衡器结合使用,请确保在所有节点上维持相同的配置。

必须在节点之间保持元素相同

  • 代理安装程序版本。例如,如果您使用 1.0.0 版本,则所有负载均衡器节点也需要使用 1.0.0 版本。
  • 应用程序配置文件中的设置。在大多数情况下,为 appsettings.jsonappsettings.Production.json。请注意,appsettings.Production.json 对于每次安装都是唯一的,因此您必须手动将其添加到每个节点以确保一致性。
  • 已将凭据存储插件添加到path/plugins 。 我们支持的所有插件都已在此文件夹中,因此您只需注意添加的任何自定义插件。

需要考虑的重要事项

  • 如果您想对 Docker 映像配置进行任何更改,为了安装代理,我们强烈建议您改为创建自定义 Docker 映像。 然后,您应该使用此自定义映像在所有节点上部署代理。
  • 某些环境变量可能会在运行时产生影响。 例如,覆盖appsettings.json配置值的环境变量或影响 .NET 环境的环境变量。
  • 您可以使用https://{YourOrchestratorCredentialsProxyURL}/api/v1/Health专用的未经身份验证的端点来检查 Orchestrator Credentials Proxy 是否仍在运行。

更新 Orchestrator Credentials Proxy 证书

对于单节点安装,请按如下方式更新 SSL 证书:

  1. 将新证书导入本地计算机证书控制台 (certlm.msc) 中“证书”下的“个人”文件夹。
  2. IIS 管理控制台中,展开“站点”,然后选择“UiPath Orchestrator 凭据代理”
  3. 从右侧面板中,选择“绑定...”
  4. 在“绑定…”视图中,选择默认的 https 记录,然后使用“选择…”按钮选择证书。
  5. 在“选择证书”弹出窗口中,选择新添加的证书。
  6. 选择“确定”,直至完成设置。
备注:

对于多节点安装,请确保更新所有计算机上的证书。

要使用负载均衡器更新安装的证书,请使用上述相同步骤。由于 Orchestrator 凭据代理是无状态的,因此在更新证书时从负载均衡器中删除节点。

此页面有帮助吗?

获取您需要的帮助
了解 RPA - 自动化课程
UiPath Community 论坛
Uipath Logo White
信任与安全
© 2005-2024 UiPath。保留所有权利。