- Introdução
- Melhores práticas
- Tenant
- Sobre o contexto do tenant
- Pesquisa de recursos em um tenant
- Gerenciamento de robôs
- Conectar Robôs ao Orchestrator
- Armazenamento de credenciais do robô no CyberArk
- Armazenamento de senhas do Unattended Robot no Azure Key Vault (somente leitura)
- Armazenamento de credenciais do Unattended Robot no HashiCorp Vault (somente leitura)
- Armazenando credenciais de Unattended Robots no AWS Secrets Manager (somente leitura)
- Exclusão de sessões não assistidas desconectadas e não responsivas
- Autenticação do robô
- Autenticação de robôs com credenciais de cliente
- Configuração de recursos de automação
- Soluções
- Auditar
- Integração de repositórios de credenciais
- Gerenciar armazenamentos de credenciais
- O proxy de credenciais do orquestrador
- Managing credential proxies
- Cloud Robots
- Execução de automações Unattended usando Cloud Robots - VM
- Carregamento de sua própria imagem
- Reutilização de imagens de máquinas personalizadas (para pools manuais)
- Redefinição de credenciais para uma máquina (para pools manuais)
- Monitoramento
- Atualizações de segurança
- Como solicitar uma avaliação
- Perguntas frequentes
- Configurando VPN para Robôs de nuvem
- Configurar uma conexão ExpressRoute
- Transmissão ao vivo e controle remoto
- Contexto de Pastas
- Automações
- Processos
- Trabalhos
- Apps
- Gatilhos
- Logs
- Monitoramento
- Filas
- Ativos
- Regras de Negócios
- Armazenar Buckets
- Servidores MCP
- Índices
- Teste do Orquestrador
- Serviço Catálogo de recursos
- Integrações
- Solução de problemas

Guia do usuário do Orchestrator
O proxy de credenciais do orquestrador
linkVocê pode adicionar seus próprios armazenamentos de credenciais ao Orchestrator, para controlar independentemente a segurança de seus dados de conexão.
Para fazê-lo, você pode carregar seus plug-ins de armazenamento de credenciais desejados, na forma de arquivos .dll, para o serviço da Web Orchestrator Credentials Proxy. O kit de instalação contém todos os plug-ins compatíveis com o UiPath, mas você também pode desenvolver seus próprios arquivos .dll de plug-in para carregar. Esse serviço torna seus plugins disponíveis para o Orchestrator por meio de um proxy, que é criado no Orchestrator com base no URL público e na chave secreta gerada pelo proxy.
Problema conhecido
linkIsso só se aplica a cenários em que a porta do Orchestrator Credentials Proxy é definida com um valor diferente do padrão 443.
UiPathOrchestratorCredentialsProxy
é alterada automaticamente para 443, que é o padrão. Isso impede que a conexão com o proxy seja estabelecida.
Para contornar isso, você precisa alterar manualmente a porta local na regra de entrada após a atualização.
Instalação
linkO Orchestrator Credentials Proxy pode ser instalado por meio de um arquivo .msi instalador ou por meio de uma imagem do Docker fornecida pela UiPath.
Por meio do instalador .msi instalador
Pré-requisitos
Requisitos de Hardware
Esses são os requisitos mínimos para executar o proxy em um Windows Server com IIS. As necessidades reais de recursos variam dependendo do uso individual.
Núcleos da CPU |
BATER |
---|---|
2 |
4GB |
Requisitos de software
As seguintes versões do Windows Server são necessárias para instalar o proxy:
- 2012 R2
- 2016
- 2019
- 2022
- 2025
O seguinte é necessário para poder usar o proxy:
- ASP.NET Core versões 3.1, 6.0.x ou 8.0.x
- IIS versão 8.0 ou superior
-
As seguintes funções de servidor devem estar instaladas na sua máquina:
- IIS-DefaultDocument
- IIS-HttpErrors
- IIS-StaticContent
- IIS-RequestFiltering
- IIS-URLAuthorization
- IIS-WindowsAuthentication
- IIS-ASPNET45
- IIS-ISAPIExtensions
- IIS-ISAPIFilter
- IIS-WebSockets
- IIS-ApplicationInit
- IIS-ManagementConsole
- Para máquinas do Windows Server, instale as funções usando o Gerenciador de servidor.
- Para máquinas com o Windows 10 ou Windows 11, instale as funções usando o utilitário Ativar ou desativar funcionalidades do Windows em Painel de Controle > Programas.
Passos de instalação
Siga estas etapas para realizar a instalação:
- Baixe o instalador do Credential Proxy do UiPath Orchestrator no Customer Portal.
- Instale o proxy.
Proxy conectado
- URL pública - a URL do Orchestrator Credentials Proxy que é exposta publicamente
- Certificado SSL - o Assunto ou Impressão digital do certificado SSL usado para proteger conexões com o Credentials Proxy do Orchestrator. Este é o certificado SSL instalado no computador ou servidor web que hospeda o proxy.
Observe que deve ser emitido por um provedor de certificados públicos e precisa ser válido para a URL Pública.
- Porta - a porta correspondente ao URL público
- Chave secreta - (gerada automaticamente) a chave necessária para configurar um proxy personalizado na interface do orquestrador; certifique-se de copiá-lo para a área de transferência para uso futuro.
Isso pode ser alterado manualmente e também é adequado para rotação de chave.
Proxy desconectado
Essa funcionalidade só estará disponível se você estiver no plano de licenciamento Enterprise - Advanced.
- Certificado SSL - o Assunto ou Impressão digital do certificado SSL usado para proteger conexões com o Credentials Proxy do Orchestrator. Este é o certificado SSL instalado no computador ou servidor web que hospeda o proxy.
- Porta - a porta correspondente ao URL
- Chave secreta - (gerada automaticamente) a chave necessária para configurar um proxy personalizado na interface do orquestrador; certifique-se de copiá-lo para a área de transferência para uso futuro.
Isso pode ser alterado manualmente e também é adequado para rotação de chave.
Após a instalação, o parâmetro
AppSettings.CredentialsProxyType" id="1"/> no arquivo appsettings.Production.json" id="2"/> é definido como Desconectado. É assim que o proxy detecta o tipo na inicialização.
Criptografando o parâmetro Jwt:Keys
Jwt:Keys
e SecureStoreConfigurations:Context
em seu arquivo appsettings.json
.
UiPath.ConfigProtector.exe
versão 1.0.9 ou superior.
Por meio da imagem do Docker
Informação preliminar
Todas as configurações do Credentials Proxy do Orchestrator que podem ser editadas estão disponíveis em seu arquivo appsettings.json. Os seguintes parâmetros são importantes na configuração inicial:
-
Jwt:Keys
- (inicialmente vazio) este array de strings é usado para configurar a autenticação do proxy. Isso constitui a chave secreta que você usará durante o processo de criação do proxy e que permite ao Orchestrator recuperar dados do proxy com êxito. Quaisquer valores inválidos são ignorados. Se nenhum valor válido for encontrado, o proxy não será iniciado.As chaves secretas devem estar em base64 e podem ser geradas usando um dos scripts do PowerShell abaixo.
$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
SeccureRandom
) e os converte em uma string 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
- (inicialmente definido para os armazenamentos de credenciais padrão disponíveis no Orchestrator) esta é uma string CSV usada para especificar o que .dll os assemblies devem ser carregados do disco (depath/plugins
) para permitir que armazenamentos seguros sejam usados pelo proxy. Adicionar assemblies inválidos à lista não interromperá a inicialização, mas você receberá erros de log ao tentar implantá-lo.appSettings:SigningCredentialSettings:FileLocation:SigningCredential:FilePath
eappSettings:SigningCredentialSettings:FileLocation:SigningCredential:Password
- (inicialmente oculto) para serem usados para criptografar os parâmetrosJwt:Keys
eSecureStoreConfigurations:Context
. Isso representa o caminho do arquivo para seu certificado de assinatura.appSettings:SigningCredentialSettings:StoreLocation:Name
,appSettings:SigningCredentialSettings:StoreLocation:Location
,appSettings:SigningCredentialSettings:StoreLocation:NameType
- (inicialmente oculto) para ser usado para criptografar os parâmetrosJwt:Keys
eSecureStoreConfigurations:Context
.
Configurando e executando a imagem do Docker
Para executar o Orchestrator Credentials Proxy usando o Docker, siga as etapas abaixo.
- Baixe a imagem do Docker
Você pode baixar a imagem em http://registry.uipath.com/.
Observe que a versão 1.0.0 Apenas oferece suporte ao proxy conectado, enquanto as versões 2.0.0+ também oferecem suporte ao proxy desconectado.
Use este comando para obter a imagem:
$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.0Essa é a imagem UiPath padrão, que contém os armazenamentos de credenciais que já estão disponíveis em sua conta de nuvem. Você pode implantar a imagem no ambiente de nuvem da sua escolha.
O comando acima também gera a chave secreta.
- Crie sua própria imagem personalizada do Docker
Você pode criar sua própria imagem do Docker, com assemblies adicionais, com base na imagem fornecida pelo UiPath e baixada na etapa 1. Fazer isso:
- Crie um novo Dockerfile (para fins de ilustração, vamos chamá-lo de
CustomDockerfile
) e adicione o seguinte a ele: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"]- Substitua
{docker-image-path}
pelo caminho para a imagem inicial do Docker, fornecido por UiPath. - Substitua
{path of your custom assemblies}
pelo caminho para seu próprio armazenamento de credenciais .dll arquivos.
- Substitua
- Gere a imagem do Docker usando este comando, que inclui o nome do Dockerfile recém-criado:
docker build -f CustomDockerfile . -t customproxy
docker build -f CustomDockerfile . -t customproxy - Execute a imagem do Docker:
docker run --publish 8000:8080 -e LICENSE_AGREEMENT="accept" -e Jwt__Keys__0=$jwtSigningKey -e appSettings__Plugins.SecureStores="{your-list-of-assemblies}" customproxy
docker run --publish 8000:8080 -e LICENSE_AGREEMENT="accept" -e Jwt__Keys__0=$jwtSigningKey -e appSettings__Plugins.SecureStores="{your-list-of-assemblies}" customproxy- Substitua
{your-list-of-assemblies}
pelo .dll arquivos dos armazenamentos de credenciais personalizados que você deseja adicionar ao Orchestrator.
Para executar a imagem com um parâmetroJwt: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}Para executar a imagem com vários parâmetrosJwt: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}- Substitua
{docker-image-name}
pelo nome que você definiu para sua imagem personalizada do Docker.
Para executar a imagem com um valor personalizado para o parâmetroappSettings:Plugins.SecureStores
(ou seja, com o armazenamento de credenciais desejado), substitua o conteúdo desse parâmetro por seu próprio armazenamento de credenciais .dll arquivos: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} - Substitua
- (Opcional) Teste a nova imagem do DockerPara testar sua imagem, acesse sua interface Swagger em
http://localhost:8000/swagger/index.html
e verifique se o ponto de extremidade dedicado não autenticado/Health
está funcionando. Uma solicitação bem-sucedida retorna uma resposta em branco com um código de status HTTP200 OK
.
- Crie um novo Dockerfile (para fins de ilustração, vamos chamá-lo de
Configuração
linkProxy conectado e desconectado
A primeira etapa na configuração de seu proxy é adicionar quaisquer plugins .dll personalizados que você deseja usar na pasta
appsettings.Production.json
do proxy.
CyberArk
CLIPasswordSDKExePath
, UsePowerShellCLI
e AdditionalAllowedCharacters
no parâmetro Appsettings
no arquivo appsettings.Production.json
:
{
// ...
"AppSettings": {
"Plugins.SecureStores.CyberArk.CLIPasswordSDKExePath": "D:\\PathName\\CLIPasswordSDK.exe",
// ...
}
// ...
}
{
// ...
"AppSettings": {
"Plugins.SecureStores.CyberArk.CLIPasswordSDKExePath": "D:\\PathName\\CLIPasswordSDK.exe",
// ...
}
// ...
}
CyberArk CCP
appsettings.Production.json
:
{
// ...
"AppSettings": {
"Plugins.SecureStores.CyberArkCCP.KeyStorageFlags": "MachineKeySet",
// ...
}
// ...
}
{
// ...
"AppSettings": {
"Plugins.SecureStores.CyberArkCCP.KeyStorageFlags": "MachineKeySet",
// ...
}
// ...
}
HashiCorp Vault
appsettings.Production.json
:
// ...
"AppSettings": {
"Plugins.SecureStores.HashiCorp Vault.KerberosEnabled": "true",
// ...
}
// ...
}
// ...
"AppSettings": {
"Plugins.SecureStores.HashiCorp Vault.KerberosEnabled": "true",
// ...
}
// ...
}
HashiCorp Vault (somente leitura)
appsettings.Production.json
:
// ...
"AppSettings": {
"Plugins.SecureStores.HashiCorp Vault (read only).KerberosEnabled": "true",
// ...
}
// ...
}
// ...
"AppSettings": {
"Plugins.SecureStores.HashiCorp Vault (read only).KerberosEnabled": "true",
// ...
}
// ...
}
Somente proxy desconectado
appsettings.Production.json
. Você pode encontrar os arquivos no seguinte local: C:\Program Files\UiPath\OrchestratorCredentialsProxy\appsettings.Production.json
.
AppSettings
- seção SecureStoreConfigurations
:
Key" id="1"/> - a chave de identificador para a configuração Type" id="1"/> - o tipo de cofre de credenciais, conforme identificado no .dll arquivos configurados por meio do parâmetro Plugins.SecureStores" id="2"/> encontrado em appsettings.json" id="3"/> (consulte os exemplos abaixo) Context" id="1"/> - as informações de conectividade relacionadas à implementação de armazenamento seguro
Exemplos de configuração
appsettings.Production.json
para iniciar o proxy desconectado. Caso contrário, o serviço não será iniciado.
Escolha o exemplo apropriado com base em seu tipo de armazenamento de credenciais ou adicione vários armazenamentos de credenciais usando o último exemplo nesta página.
AppSettings
- seção SecureStoreConfigurations
:
Key" id="1"/> - a chave de identificador para a configuração Type" id="1"/> - o tipo de cofre de credenciais, conforme identificado no .dll arquivos configurados por meio do parâmetro Plugins.SecureStores" id="2"/> encontrado em appsettings.json" id="3"/> (consulte os exemplos abaixo) Context" id="1"/> - as informações de conectividade relacionadas à implementação de armazenamento seguro
AWS Secrets Manager/AWS Secrets Manager (somente leitura)
...
"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 Key Vault (somente leitura)
...
"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>"
}
},
]
...
Azure Key Vault (leitura/gravação) não é compatível.
BeyondTrust Password Safe - Managed Accounts
...
"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 Password Safe - Team Passwords
...
"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>"
}
},
]
...
CLIPasswordSDKExePath
, UsePowerShellCLI
ouAdditionalAllowedCharacters
, precisam ser colocadas no parâmetro Appsettings
semelhante a como isso é feito para o Orchestrator.
{
// ...
"AppSettings": {
"Plugins.SecureStores.CyberArk.CLIPasswordSDKExePath": "D:\\<MyPath>\\CLIPasswordSDK.exe",
"Plugins.SecureStores": "UiPath.Orchestrator.CyberArk.dll;UiPath.Orchestrator.AzureKeyVault.SecureStore.dll;UiPath.Orchestrator.SecureStore.CyberArkCCP.dll;UiPath.Orchestrator.SecureStore.CyberArkConjur.dll;UiPath.Orchestrator.SecureStore.HashiCorpVault.dll;UiPath.Orchestrator.SecureStore.ThycoticSecretServer.dll;UiPath.Orchestrator.SecureStore.BeyondTrust.dll;UiPath.Orchestrator.SecureStore.AWSSecretsManager.dll",
"CredentialsProxyType": "Disconnected"
// ...
}
// ...
{
// ...
"AppSettings": {
"Plugins.SecureStores.CyberArk.CLIPasswordSDKExePath": "D:\\<MyPath>\\CLIPasswordSDK.exe",
"Plugins.SecureStores": "UiPath.Orchestrator.CyberArk.dll;UiPath.Orchestrator.AzureKeyVault.SecureStore.dll;UiPath.Orchestrator.SecureStore.CyberArkCCP.dll;UiPath.Orchestrator.SecureStore.CyberArkConjur.dll;UiPath.Orchestrator.SecureStore.HashiCorpVault.dll;UiPath.Orchestrator.SecureStore.ThycoticSecretServer.dll;UiPath.Orchestrator.SecureStore.BeyondTrust.dll;UiPath.Orchestrator.SecureStore.AWSSecretsManager.dll",
"CredentialsProxyType": "Disconnected"
// ...
}
// ...
CyberArk - CCP
...
"SecureStoreConfigurations": [
{
"Key": "<MyCyberArkCCPStore>",
"Type": "CyberArkCCP",
"Context": {
"ApplicationId": "<ApplicationId>",
"Safe": "<CyberArkSafe>",
"Folder": "<CyberArkFolder>",
"WebServiceUrl": "<CentralCredentialProviderUrl>",
"WebServiceName": "<WebServiceName>",
"SerializedClientCertificate": "<ClientCertificate>", // must be the ".pfx" file's content as base64 string
"ClientCertificatePassword": "<ClientCertificatePassword>",
"SerializedRootCA": "<someServerRootCA>" // must be the ".crt" or ".cer" file's content as base64 string
}
},
]
...
...
"SecureStoreConfigurations": [
{
"Key": "<MyCyberArkCCPStore>",
"Type": "CyberArkCCP",
"Context": {
"ApplicationId": "<ApplicationId>",
"Safe": "<CyberArkSafe>",
"Folder": "<CyberArkFolder>",
"WebServiceUrl": "<CentralCredentialProviderUrl>",
"WebServiceName": "<WebServiceName>",
"SerializedClientCertificate": "<ClientCertificate>", // must be the ".pfx" file's content as base64 string
"ClientCertificatePassword": "<ClientCertificatePassword>",
"SerializedRootCA": "<someServerRootCA>" // must be the ".crt" or ".cer" file's content as base64 string
}
},
]
...
KeyStorageFlags
adicional da seguinte forma:
"AppSettings": {
...
"Plugins.SecureStores.CyberArkCCP.KeyStorageFlags": "MachineKeySet",
...
}
"AppSettings": {
...
"Plugins.SecureStores.CyberArkCCP.KeyStorageFlags": "MachineKeySet",
...
}
base64
da seguinte maneira:$fileContentBytes = get-content 'C:\path\to\the.pfx' -Encoding Byte
[System.Convert]::ToBase64String($fileContentBytes) | Out-File 'C:\path\to\the.txt'
$fileContentBytes = get-content 'C:\path\to\the.pfx' -Encoding Byte
[System.Convert]::ToBase64String($fileContentBytes) | Out-File 'C:\path\to\the.txt'
CyberArk® Conjur Cloud (somente leitura)
...
"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 Vault / HashiCorp Vault (somente leitura)
...
"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>"
"LdapUseDynamicCredentials" : "true"
"KerberosSPN": "HTTP/vault-spn"
}
},
]
...
...
"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>"
"LdapUseDynamicCredentials" : "true"
"KerberosSPN": "HTTP/vault-spn"
}
},
]
...
CLIPasswordSDKExePath
, UsePowerShellCLI
ouAdditionalAllowedCharacters
, precisam ser colocadas no parâmetro Appsettings
semelhante a como isso é feito para o Orchestrator.
{
// ...
"AppSettings": {
"Plugins.SecureStores.HashiCorp Vault.KerberosEnabled": "false",
"Plugins.SecureStores.HashiCorp Vault (read only).KerberosEnabled": "false"
"Plugins.SecureStores": "UiPath.Orchestrator.CyberArk.dll;UiPath.Orchestrator.AzureKeyVault.SecureStore.dll;UiPath.Orchestrator.SecureStore.CyberArkCCP.dll;UiPath.Orchestrator.SecureStore.CyberArkConjur.dll;UiPath.Orchestrator.SecureStore.HashiCorpVault.dll;UiPath.Orchestrator.SecureStore.ThycoticSecretServer.dll;UiPath.Orchestrator.SecureStore.BeyondTrust.dll;UiPath.Orchestrator.SecureStore.AWSSecretsManager.dll",
"CredentialsProxyType": "Disconnected"
// ...
}
// ...
}
{
// ...
"AppSettings": {
"Plugins.SecureStores.HashiCorp Vault.KerberosEnabled": "false",
"Plugins.SecureStores.HashiCorp Vault (read only).KerberosEnabled": "false"
"Plugins.SecureStores": "UiPath.Orchestrator.CyberArk.dll;UiPath.Orchestrator.AzureKeyVault.SecureStore.dll;UiPath.Orchestrator.SecureStore.CyberArkCCP.dll;UiPath.Orchestrator.SecureStore.CyberArkConjur.dll;UiPath.Orchestrator.SecureStore.HashiCorpVault.dll;UiPath.Orchestrator.SecureStore.ThycoticSecretServer.dll;UiPath.Orchestrator.SecureStore.BeyondTrust.dll;UiPath.Orchestrator.SecureStore.AWSSecretsManager.dll",
"CredentialsProxyType": "Disconnected"
// ...
}
// ...
}
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>"
}
},
]
...
Gerenciador Secreto do Google
...
"SecureStoreConfigurations": [
{
"Key": "<GoogleSecretManager>",
"Type": "Google Secret Manager",
"Context": {
"ProjectId": "<ProjectId>",
"ServiceAccountKeyJson": "<ServiceAccountKeyJson>",
}
},
]
...
...
"SecureStoreConfigurations": [
{
"Key": "<GoogleSecretManager>",
"Type": "Google Secret Manager",
"Context": {
"ProjectId": "<ProjectId>",
"ServiceAccountKeyJson": "<ServiceAccountKeyJson>",
}
},
]
...
Gerenciador Secreto do Google (somente leitura)
...
"SecureStoreConfigurations": [
{
"Key": "<GoogleSecretManager>",
"Type": "Google Secret Manager (read only)",
"Context": {
"ProjectId": "<ProjectId>",
"ServiceAccountKeyJson": "<ServiceAccountKeyJson>",
}
},
]
...
...
"SecureStoreConfigurations": [
{
"Key": "<GoogleSecretManager>",
"Type": "Google Secret Manager (read only)",
"Context": {
"ProjectId": "<ProjectId>",
"ServiceAccountKeyJson": "<ServiceAccountKeyJson>",
}
},
]
...
Vários armazenamentos de credenciais
Se você usar vários armazenamentos de credenciais, você pode adicionar um abaixo do outro, da seguinte forma:
{
...
"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"
}
}
]
...
}
}
Validação
linkIsso se aplica apenas ao Credentials Proxy desconectado.
Disconnected
.
Essas são algumas das etapas de validação que o proxy realiza:
-
O proxy garante que
appsettings.Production.json
contenha as configurações esperadas, conforme detalhado na seção Configuração acima. -
O proxy garante que
SecureStoreConfigurations
não contenha parâmetrosKey
duplicados, ou seja, que os armazenamentos de credenciais configurados no arquivoappsettings.Production.json
sejam exclusivos.
- O parâmetro
SecureStoreConfigurations
é um array de configurações. Você pode adicionar quantos armazenamentos de credenciais quiser, mesmo do mesmo tipo. Por exemplo, você pode ter várias instâncias do Azure Key Vault (somente leitura) configuradas, desde que campoKey
seja exclusivo.
-
O proxy verifica se todos os valores
Type
são válidos. -
Com base na implementação de cada armazenamento seguro, o proxy verifica se o cofre pode ser alcançado com sucesso.
Geração de logs
linkC:\Program Files\UiPath\OrchestratorCredentialsProxy
, se o pool de aplicativos do proxy tiver permissões de gravação para esse caminho. Estes são configurados no IIS.
NLog.targets.logfile.fileName
em appsettings.Production.json
.
Em máquinas Windows, o proxy também armazena logs no Visualizador de eventos do Windows.
Considerações de segurança
link- O Orchestrator permite apenas URLs seguras (HTTPS) para o proxy. O certificado HTTPS deve ser válido e assinado por uma autoridade de certificação amplamente reconhecida. Certificados autoassinados ou assinados por uma autoridade interna não são suportados.
- O Orchestrator é validado por meio de um segredo do cliente gerado pelo Credentials Proxy do Orchestrator. O segredo do cliente é armazenado em um arquivo de configuração na máquina onde o Credentials Proxy do Orchestrator está instalado e é criptografado e armazenado no banco de dados pelo Orchestrator.
- Quando você edita um proxy de armazenamento de credenciais no Orchestrator e altera sua URL, você deve inserir o segredo do cliente.
-
Orchestrator Credentials Proxy 2.0.0+ as ações são registradas em log no Visualizador de Eventos do Windows.
- Os binários devem ser assinados na máquina Windows.
- A imagem do Docker deve ser assinada.
Uso do Credentials Proxy do Orchestrator com um balanceador de carga
linkSe você usar o proxy em combinação com um balanceador de carga, certifique-se de manter a mesma configuração em todos os nós.
Elementos que devem permanecer idênticos entre os nós
- A versão do instalador de proxy. Por exemplo, se você usar a versão 1.0.0, todos os nós do balanceador de carga também precisarão usar a 1.0.0.
- As configurações nos arquivos de configuração do aplicativo. Na maioria dos casos, eles são
appsettings.json
eappsettings.Production.json
. Observe queappsettings.Production.json
é exclusivo para cada instalação, então você deve adicioná-lo manualmente a cada nó para garantir a consistência. - Os plug-ins de armazenamento de credenciais adicionados a
path/plugins
. Todos os plug-ins suportados por nós já estão nessa pasta, então você só precisa estar atento a quaisquer plug-ins personalizados que você adicionar.
Fatores importantes a considerar
- Se você quiser fazer quaisquer alterações na configuração da imagem do Docker que fornecemos para instalar o proxy, é altamente recomendável que você crie uma imagem do Docker personalizada. Você deve usar essa imagem personalizada para implantar o proxy em todos os nós.
- Algumas variáveis de ambiente podem ter um impacto durante a execução.Por exemplo, variáveis de ambiente que substituem valores de configuração
appsettings.json
ou aquelas que afetam o ambiente do .NET. - Você pode usar o endpoint dedicado não autenticado
https://{YourOrchestratorCredentialsProxyURL}/api/v1/Health
para verificar se o Credentials Proxy do Orchestrator ainda está em execução.
Atualização do certificado Credentials Proxy do Orchestrator
linkPara instalações de nó único, atualize o certificado SSL da seguinte forma:
- Importe o novo certificado para a pasta Pessoal, em Certificados, no console de certificados da máquina local (certlm.msc).
- No Console de Gerenciamento IIS, expanda Sites e selecione Credential Proxy do UiPath Orchestrator.
- No painel do lado direito, selecione Ligações....
- Na visualização Ligações... selecione o registro padrão
https
e, em seguida, use o botão Selecionar... para escolher um certificado. - Na janela pop-up Selecionar certificado, selecione o certificado recém-adicionado.
- Selecione OK até concluir a configuração.
Para instalações de vários nós, certifique-se de atualizar o certificado em todas as máquinas.
Para atualizar o certificado para instalações usando um balanceador de carga, use as mesmas etapas descritas acima. Como o Orchestrator Credentials Proxy é sem estado, remova o nó do balanceador de carga ao atualizar o certificado.
- Problema conhecido
- Instalação
- Por meio do instalador .msi instalador
- Por meio da imagem do Docker
- Configuração
- Proxy conectado e desconectado
- CyberArk
- CyberArk CCP
- HashiCorp Vault
- HashiCorp Vault (somente leitura)
- Somente proxy desconectado
- Exemplos de configuração
- Validação
- Geração de logs
- Considerações de segurança
- Uso do Credentials Proxy do Orchestrator com um balanceador de carga
- Elementos que devem permanecer idênticos entre os nós
- Fatores importantes a considerar
- Atualização do certificado Credentials Proxy do Orchestrator