UiPath Documentation
orchestrator
latest
false
Guía del usuario de Orchestrator
Importante :
La localización de contenidos recién publicados puede tardar entre una y dos semanas en estar disponible.

El proxy de credenciales de Orchestrator

Configura Credentials Proxy de Orchestrator para conectar complementos de almacén de credenciales personalizados a Orchestrator.

Puede añadir sus propios almacenes de credenciales a Orchestrator para controlar de forma independiente la seguridad de los datos de conexión.

Para ello, puedes cargar los complementos del almacén de credenciales deseados, en forma de archivos .dll, al servicio web Credentials Proxy de Orchestrator. El kit de instalación contiene todos los complementos compatibles con UiPath, pero también puedes desarrollar tus propios archivos .dll de complementopara cargarlos.

Este servicio pone tus complementos a disposición de Orchestrator a través de un proxy, que se crea en Orchestrator en función de la URL pública y la clave secreta generada por el proxy.

Problema conocido

Puerto personalizado restablecido a 443 después de una actualización

Esta incidencia solo se aplica si el Credentials Proxy de Orchestrator está configurado para utilizar un puerto distinto del 443 predeterminado.

Al actualizar desde cualquier versión entre 1.0.0 y 2.0.1 y si has utilizado un puerto personalizado, el puerto local en la regla de entrada UiPathOrchestratorCredentialsProxy se cambia automáticamente a 443, que es el predeterminado. Esto evita que se establezca la conexión al proxy.

Para evitar esto, debes cambiar manualmente el puerto local en la regla de entrada al actualizar.

Instalación

El proxy de credenciales de Orchestrator se puede instalar a través de un archivo .msi instalador o mediante una imagen de Docker proporcionada por UiPath.

A través del archivo .msi instalador

Requisitos previos

El Credentials Proxy de Orchestrator es una aplicación web ASP.NET Core alojada en IIS, por lo que puedes instalarla en cualquier edición de Windows que pueda alojar IIS 8.0 o posterior. Esto incluye tanto Windows Server como los clientes de Windows 10 y Windows 11. Windows Server no es un requisito.

Requisitos de hardware

Estos son los requisitos mínimos para ejecutar el proxy en una máquina Windows con IIS. Las necesidades reales de recursos varían en función del uso individual.

Núcleos de la CPURAM
24 GB
Requisitos de software

La máquina que aloja el proxy debe cumplir los siguientes requisitos:

  • Sistema operativo : cualquier edición de Windows que admita IIS 8.0 o posterior. Windows Server 2012 R2, 2016, 2019, 2022 y 2025 cumplen este requisito, al igual que Windows 10 y Windows 11.
  • IIS : versión 8.0 o posterior.
  • Paquete de alojamiento.NET : versión 10.0 o posterior para Credentials Proxy de Orchestrator 2.2.2 y posterior, que se ejecuta en.NET 10. Las versiones de proxy anteriores a la 2.2.2 requieren la versión 3.1 o posterior. El paquete instala tanto ASP.NET Core Runtime como el módulo ASP.NET Core IIS, que el proxy necesita para ejecutarse en IIS.
    Importante:

    Si actualizas a Credentials Proxy de Orchestrator 2.2.2 o posterior desde una versión anterior, instala el paquete de alojamiento.NET 10 en la máquina host y reinicia IIS antes de iniciar el proxy actualizado. Sin él, el proxy no se inicia en IIS.

Además, las siguientes características de IIS deben estar habilitadas:

  • Documento predeterminado de IIS
  • Errores de IIS-Http
  • Contenido estático de IIS
  • Filtro de solicitudes IIS
  • Autorización de IIS
  • Autenticación de IIS-Windows
  • IIS-ASPNET45
  • Extensiones de IIS-ISAPI
  • FiltroDeIIS
  • IIS-WebSockets
  • InicioDeAplicación IIS
  • Consola de administración de IIS

La forma de habilitar estas características depende de la edición de Windows:

  • Windows Server : utiliza Administrador del servidor > Añadir roles y características.
  • Windows 10 y Windows 11 : utiliza la utilidad Activar o desactivar características de Windows , en Panel de control > Programas.
Nota:

El instalador verifica la versión de IIS, el módulo IIS de ASP.NET Core y las características de IIS enumeradas anteriormente antes de instalar cualquier cosa. Si falta alguno de ellos, la instalación se detiene e informa de lo que debe añadirse.

Pasos de la instalación

Siga estos pasos para realizar la instalación:

  1. Descarga el instalador del Credential Proxy de UiPath Orchestrator desde el Customer Portal.
  2. Instala el proxy.
Proxy conectado
  • URL pública: la URL del proxy de credenciales de Orchestrator que está expuesta públicamente
  • Certificado SSL : el asunto o la huella digital del certificado SSL utilizado para proteger las conexiones con el Credentials Proxy de Orchestrator. Este es el certificado SSL instalado en el ordenador o servidor web que aloja el proxy. Ten en cuenta que debe ser emitido por un proveedor de certificados público y debe ser válido para la URL pública.
  • Port - the port corresponding to the Public URL
  • Secret Key - (automatically generated) the key needed for configuring a custom proxy in the Orchestrator interface; make sure to copy it to your clipboard for future use.

Esto se puede cambiar manualmente y también es adecuado para la rotación de teclas.

Proxy desconectado

Esta característica solo está disponible si estás en el plan de licencias Enterprise - Avanzado para el Flex Pricing Plan, o Enterprise o Application Test Enterprise para el Unified Pricing Plan.

  • SSL Certificate - the Subject or Thumbprint of the SSL certificate used to secure connections with the Orchestrator Credentials Proxy. This is the SSL certificate installed on the computer or web server hosting the proxy. Since robots connect to the proxy inside your own infrastructure, this certificate can be self-signed or issued by your internal certificate authority, as long as the machines running your robots trust it.
  • Puerto : el puerto correspondiente a la URL
  • Secret Key - (automatically generated) the key needed for configuring a custom proxy in the Orchestrator interface; make sure to copy it to your clipboard for future use.

Esto se puede cambiar manualmente y también es adecuado para la rotación de teclas.

Nota:

Para el proxy desconectado, los robots se conectan directamente al proxy, sin pasar por Orchestrator. Esta conexión utiliza HTTPS, en el puerto configurado para la URL pública del proxy (443 de forma predeterminada). Consulta Gestionar proxies de almacén de credenciales para obtener más información sobre los tipos de proxy conectados y desconectados.

Al instalar, el parámetro AppSettings.CredentialsProxyType del archivo appsettings.Production.json se establece en Desconectado. Así es como el proxy detecta el tipo al inicio.

Nota:

La opción Autenticación anónima debe establecerse como Habilitada en IIS para que el proxy funcione.

Cifrar el parámetro Jwt:Keys

Para añadir una capa adicional de seguridad, puedes cifrar los parámetros Jwt:Keys y SecureStoreConfigurations:Context en tu archivo appsettings.json .

Nota:

Esto requiere UiPath.ConfigProtector.exe versión 1.0.9 o superior.

A través de la imagen de Docker

Informacion preliminar

Todos los ajustes del proxy de credenciales de Orchestrator que se pueden editar están disponibles en su archivo appsettings.json. Los siguientes parámetros son importantes en la configuración inicial:

  • Jwt:Keys : (inicialmente vacía) esta matriz de cadenas se usa para configurar la autenticación del proxy. Esta constituye la clave secreta que utilizará durante el proceso de creación del proxy y que permite a Orchestrator recuperar datos del proxy. Se ignoran los valores no válidos. Si no se encuentran valores válidos, el proxy no se iniciará.

Las claves secretas deben estar en base64 y se pueden generar usando uno de los scripts de PowerShell a continuación.

$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

El script anterior genera 64 bytes aleatorios (usando SeccureRandom) y los convierte en una cadena 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 establecido en los almacenes de credenciales predeterminados disponibles en Orchestrator) esta es una cadena CSV que se usa para especificar qué archivos .dll los ensamblados deben cargarse desde el disco (desde path/plugins) para permitir que el proxy utilice los almacenes seguros. Agregar ensamblados no válidos a la lista no interrumpirá el inicio, pero recibirá errores de registro cuando intente implementarlo.
  • appSettings:SigningCredentialSettings:FileLocation:SigningCredential:FilePath y appSettings:SigningCredentialSettings:FileLocation:SigningCredential:Password: (inicialmente oculto) para cifrar los parámetros Jwt:Keys y SecureStoreConfigurations:Context. Esto representa la ruta de archivo a tu certificado de firma.
  • appSettings:SigningCredentialSettings:StoreLocation:Name, appSettings:SigningCredentialSettings:StoreLocation:Location, appSettings:SigningCredentialSettings:StoreLocation:NameType: (inicialmente oculto) para cifrar los parámetros Jwt:Keys y SecureStoreConfigurations:Context.
Configurar y ejecutar la imagen de Docker

Para ejecutar el proxy de credenciales de Orchestrator mediante Docker, sigue los pasos que se indican a continuación.

  1. Descargar la imagen de Docker

Puedes descargar la imagen desde http://registry.uipath.com/.

Nota:

Asegúrate de que incluyes en la URL la versión necesaria del Credentials Proxy de Orchestrator. Por ejemplo, para descargar la imagen de la versión 2.1.4, usa:

http://registry.uipath.com/orchestrator-credentialsproxy:2.1.4
http://registry.uipath.com/orchestrator-credentialsproxy:2.1.4

Esta URL apunta a una imagen de Docker y se debe acceder a ella a través de la CLI de Docker, y no a través de un navegador web.

Ten en cuenta que la versión 1.0.0 solo admite el proxy conectado, mientras que las versiones 2.0.0+ también admiten el proxy desconectado.

Utilice este comando para obtener la imagen:

$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

Esta es la imagen predeterminada de UiPath, que contiene los almacenes de credenciales que ya están disponibles en tu cuenta de la nube. Puedes implementar la imagen en el entorno en la nube de tu elección.

El comando anterior también genera la clave secreta.

  1. Crear su propia imagen personalizada de Docker

Puedes crear tu propia imagen de Docker, con ensamblados adicionales, basada en la imagen proporcionada por UiPath y descargada en el paso 1. Para ello:

  1. Crea un nuevo Dockerfile (con fines ilustrativos, lo llamaremos CustomDockerfile) y agrégale lo siguiente:
    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"]
    
    • Reemplaza {docker-image-path} con la ruta de la imagen inicial de Docker, proporcionada por UiPath.
    • Reemplaza {path of your custom assemblies} por la ruta a tus propios archivos .dll del almacén de credenciales. Observa cómo Visual Studio utiliza este dockerfile para crear tus imágenes con el fin de depurar más rápido.
  2. Genera la imagen de Docker con este comando, que incluye el nombre del Dockerfile recién creado:
    docker build -f CustomDockerfile . -t customproxy
    docker build -f CustomDockerfile . -t customproxy
    
  3. Ejecuta la imagen de 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
    
    • Reemplazar {your-list-of-assemblies} con el archivo .dll de los almacenes de credenciales personalizadas que desea añadir a Orchestrator.

Para ejecutar la imagen con un parámetro 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}
  ```

Para ejecutar la imagen con varios parámetros de 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}
  ```
  * Replace `{docker-image-name}` with the name you set for your custom Docker image.
  ```
  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}
  ```
  * Replace `{docker-image-name}` with the name you set for your custom Docker image.

Para ejecutar la imagen con un valor personalizado para el parámetro appSettings:Plugins.SecureStores (es decir, con su almacén de credenciales deseado), reemplace el contenido de este parámetro con su propio almacén de credenciales .dll archivos:

  ```
  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. (Opcional) Prueba la nueva imagen de docker

Para probar tu imagen, accede a su interfaz de Swagger en http://localhost:8000/swagger/index.html y comprueba si el punto final /Health dedicado sin autenticación está funcionando.Una solicitud con éxito devuelve una respuesta en blanco junto con un código de estado HTTP 200 OK.

Configuración

Proxy Conectado y Desconectado

El primer paso para configurar tu proxy es añadir cualquier complemento .dll personalizado que quieras utilizar en la carpeta C:\Program Files\UiPath\CredentialsProxy\plugins.

Algunos almacenes de credenciales pueden requerir que realices la configuración en el nivel de aplicación, host o proxy. Los ajustes son equivalentes a sus homólogos de Orchestrator. Debes especificar esta configuración en el archivo appsettings.Production.json del proxy.

CyberArk

Debes añadir cualquier configuración en el nivel de host como CLIPasswordSDKExePath, UsePowerShellCLI, y AdditionalAllowedCharacters bajo el parámetro Appsettings en el archivo appsettings.Production.json:

{
// ...
  "AppSettings": {
    "Plugins.SecureStores.CyberArk.CLIPasswordSDKExePath": "D:\\PathName\\CLIPasswordSDK.exe",
    // ...
  }
  // ...
}
{
// ...
  "AppSettings": {
    "Plugins.SecureStores.CyberArk.CLIPasswordSDKExePath": "D:\\PathName\\CLIPasswordSDK.exe",
    // ...
  }
  // ...
}

CCP de CyberArk

El Credentials Proxy se ejecuta bajo una cuenta de servicio que no tiene perfil de usuario cargado. De forma predeterminada, utiliza un almacén de claves que requiere un perfil de usuario cargado, que no está disponible para la cuenta de servicio, por lo que la clave privada del certificado de cliente de CyberArk CCP no se carga y la recuperación de credenciales a través de CyberArk CCP falla. Para cargar el certificado correctamente en este contexto, debes añadir lo siguiente a appsettings.Production.json:

{
// ...
  "AppSettings": {
    "Plugins.SecureStores.CyberArkCCP.KeyStorageFlags": "MachineKeySet",
    // ...
  }
  // ...
}
{
// ...
  "AppSettings": {
    "Plugins.SecureStores.CyberArkCCP.KeyStorageFlags": "MachineKeySet",
    // ...
  }
  // ...
}

HashiCorp Vault

Two kinds of settings control the HashiCorp Vault and HashiCorp Vault (read only) credential stores:

  • Host-level settings govern plugin behavior for the whole proxy. You add them under AppSettings in the appsettings.Production.json file, prefixed with the store name. They apply to both proxy types.
  • Context parameters describe one Vault connection. A disconnected proxy reads them from the SecureStoreConfigurations section of the same file, as shown in the Configuration samples section. A connected proxy receives them from Orchestrator instead.

For what each Context parameter means, and for how SecretsEngineMountPath and DataPath resolve to the path of an individual secret, see HashiCorp Vault in Managing credential stores. Each JSON key is the field label from that page without the spaces, except for LdapUseDynamicCredentials, which is (Ldap) Use Dynamic Credentials, and KerberosSPN, which is Kerberos fully qualified SPN.

Host-level settings

Each store reads only its own prefix — Plugins.SecureStores.HashiCorp Vault. or Plugins.SecureStores.HashiCorp Vault (read only). — so to configure both stores, add each setting twice.

ConfiguraciónPredeterminadoDescripción
KerberosEnabledfalseMakes the KerberosUserPassword and KerberosDefaultCredentials authentication types available. Kerberos is unavailable when the proxy runs from the Docker image, whatever this setting says.
ForwardToActiveNodefalseAdds the X-Vault-Forward: active-node header to every request, so that a performance standby node forwards it to the active node. Vault Enterprise only.
ClientCacheDurationSeconds600How long an authenticated Vault client stays cached between operations.
MaxRetries5How many times the plugin retries a Vault request that returns HTTP 403, 412, 429, 500, or 503.
RetryDelayMilliseconds3000Delay between retries. With the default values, a permission error takes about 15 seconds to surface.

Para habilitar el protocolo de autenticación Kerberos y activar el reenvío de nodos para HashiCorp Vault, añade los siguientes parámetros al archivo appsettings.Production.json:

{
// ...
  "AppSettings": {
    "Plugins.SecureStores.HashiCorp Vault.KerberosEnabled": "true", // Optional, for Kerberos enablement
    "Plugins.SecureStores.HashiCorp Vault.ForwardToActiveNode": "true", // Optional, for forwarding to active node
    // ...
  }
  // ...
}
{
// ...
  "AppSettings": {
    "Plugins.SecureStores.HashiCorp Vault.KerberosEnabled": "true", // Optional, for Kerberos enablement
    "Plugins.SecureStores.HashiCorp Vault.ForwardToActiveNode": "true", // Optional, for forwarding to active node
    // ...
  }
  // ...
}

If the proxy reaches Vault through a forward proxy, configure it with the following settings:

  • HttpProxy.Outbound.Enabled
  • HttpProxy.Outbound.Address
  • HttpProxy.Outbound.Username
  • HttpProxy.Outbound.Password

These are not prefixed with a store name, and they apply to every credential store plugin loaded by the proxy.

HashiCorp Vault (solo lectura)

The read-only store takes the same Context parameters and the same host-level settings as the read-write store, with two differences:

Para habilitar el protocolo de autenticación Kerberos y activar el reenvío de nodos para HashiCorp Vault (solo lectura), añade los siguientes parámetros al archivo appsettings.Production.json:

{
// ...
  "AppSettings": {
    "Plugins.SecureStores.HashiCorp Vault (read only).KerberosEnabled": "true", // Optional, for Kerberos enablement
    "Plugins.SecureStores.HashiCorp Vault (read only).ForwardToActiveNode": "true", // Optional, for forwarding to active node
    // ...
  }
  // ...
}
{
// ...
  "AppSettings": {
    "Plugins.SecureStores.HashiCorp Vault (read only).KerberosEnabled": "true", // Optional, for Kerberos enablement
    "Plugins.SecureStores.HashiCorp Vault (read only).ForwardToActiveNode": "true", // Optional, for forwarding to active node
    // ...
  }
  // ...
}

Solo proxy desconectado

Este tipo de proxy está completamente separado de Orchestrator, por lo que debes proporcionar la información relacionada con los almacenes de credenciales localmente, en el archivo de configuración appsettings.Production.json. Puedes encontrar los archivos en la siguiente ubicación: C:\Program Files\UiPath\OrchestratorCredentialsProxy\appsettings.Production.json.

Debes editar los siguientes campos en dicho archivo, en la sección AppSettings - SecureStoreConfigurations:

  • Key - la clave del identificador para la configuración
  • Type - el tipo de almacén de credenciales, como se identifica en los archivos .dll configurados mediante el parámetro Plugins.SecureStores encontrado en appsettings.json (consulta los ejemplos siguientes)
  • Context - la información de conectividad relacionada con la implementación del almacén seguro
    Importante:

    Una vez que edites el archivo de configuración, debes reiniciar el servicio desde IIS.

Ejemplos de configuración

Debes añadir los siguientes ejemplos al archivo de configuración appsettings.Production.json para iniciar el proxy desconectado. De lo contrario, el servicio no se iniciará.

Elige el ejemplo adecuado en función de tu tipo de almacén de credenciales o añade varios almacenes de credenciales utilizando el último ejemplo de esta página.

Debes editar los siguientes campos en dicho archivo, en la sección AppSettings - SecureStoreConfigurations:

  • Key - la clave del identificador para la configuración
  • Type - el tipo de almacén de credenciales, como se identifica en los archivos .dll configurados mediante el parámetro Plugins.SecureStores encontrado en appsettings.json (consulta los ejemplos siguientes)
  • Context - la información de conectividad relacionada con la implementación del almacén seguro
    Importante:

    Una vez que edites el archivo de configuración, debes reiniciar el servicio desde IIS.

Nota:

Antes de realizar cualquier cambio en el archivo appsettings.Production.json, asegúrate de crear una copia de seguridad del archivo original. Esto te permite restaurar fácilmente la configuración inicial o comparar los cambios si surgen incidencias durante la configuración.

AWS Secrets Manager/AWS Secrets Manager (solo lectura)
...
"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 (solo lectura)
...
"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>"
        }
      },
    ]
...
Importante:

Azure Key Vault (lectura/escritura) no es compatible.

BeyondTrust Password Safe - cuentas administradas
...
"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 - contraseñas de equipos
...
"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>"
        }
      },
    ]
...

Cualquier configuración en el nivel de host, como CLIPasswordSDKExePath, UsePowerShellCLI o AdditionalAllowedCharacters debe ponerse bajo el parámetro Appsettings igual a como se hace para 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;UiPath.Orchestrator.SecureStore.GoogleSecretManager.dll;UiPath.Orchestrator.SecureStore.DelineaSecretServer.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;UiPath.Orchestrator.SecureStore.GoogleSecretManager.dll;UiPath.Orchestrator.SecureStore.DelineaSecretServer.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
        }
      },
    ]
...

En función de tu configuración de IIS, es posible que debas configurar KeyStorageFlags adicionales de la siguiente manera:

"AppSettings": {
...
"Plugins.SecureStores.CyberArkCCP.KeyStorageFlags": "MachineKeySet",
...
}
"AppSettings": {
...
"Plugins.SecureStores.CyberArkCCP.KeyStorageFlags": "MachineKeySet",
...
}

Puedes transferir un archivo PFX, CRT o CER en una cadena base64 de la siguiente manera:

$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 (solo lectura)
...
"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}"
        }
      },
    ]
...
CyberArk® Conjur (solo lectura)
...
"SecureStoreConfigurations": [
  {
    "Key": "MyCyberArkConjur",
    "Type": "CyberArk Conjur (read only)",
    "Context": {
      "ApplianceUrl": "https://{company}.secretsmgr.cyberark.cloud/api",
      "Account": "{myAccount}",
      "AuthenticationType": "{Jwt|ApiKey}",
      "JWT":  {
          "JwtServiceId": "{myJwtServiceId}",
          "IdentityProviderUrl": "{myIdentityProviderUrl}",
          "ClientId": "{myClientId}",
          "ClientSecret": "{myClientSecret}",
          "Scope": "{myScope}"
      },
      "ApiKey": {
          "LoginName": "{myLoginName}",
          "Key": "{myApiKey}"
      },
      "HostId": "{myHostId}",
      "VariableIdPrefix": "{myPrefix}"
    }
  },
]
...
...
"SecureStoreConfigurations": [
  {
    "Key": "MyCyberArkConjur",
    "Type": "CyberArk Conjur (read only)",
    "Context": {
      "ApplianceUrl": "https://{company}.secretsmgr.cyberark.cloud/api",
      "Account": "{myAccount}",
      "AuthenticationType": "{Jwt|ApiKey}",
      "JWT":  {
          "JwtServiceId": "{myJwtServiceId}",
          "IdentityProviderUrl": "{myIdentityProviderUrl}",
          "ClientId": "{myClientId}",
          "ClientSecret": "{myClientSecret}",
          "Scope": "{myScope}"
      },
      "ApiKey": {
          "LoginName": "{myLoginName}",
          "Key": "{myApiKey}"
      },
      "HostId": "{myHostId}",
      "VariableIdPrefix": "{myPrefix}"
    }
  },
]
...
Delinea Secret Server (solo lectura)
Nota:

Delinea Secret Server (solo lectura) requiere Credentials Proxy de Orchestrator 2.2.2 o posterior. Su complemento, UiPath.Orchestrator.SecureStore.DelineaSecretServer.dll, se envía con el kit de instalación y se enumera en Plugins.SecureStores de forma predeterminada, por lo que no es necesario añadirlo manualmente.

Este es un almacén de credenciales de solo lectura. El proxy puede recuperar valores de activos y credenciales de robot de él, pero no puede crear, actualizar o eliminar secretos.

...
"SecureStoreConfigurations": [
      {
        "Key": "<MyDelineaServer>",
        "Type": "Delinea Secret Server (read only)",
        "Context": {
          "PlatformServerUrl": "<PlatformServerUrl>",
          "SecretServerUrl": "<SecretServerUrl>",
          "RuleName": "<Rule>",
          "RuleKey": "<Key>",
          "UsernameField": "<Username>",
          "PasswordField": "<Password>"
        }
      },
    ]
...
...
"SecureStoreConfigurations": [
      {
        "Key": "<MyDelineaServer>",
        "Type": "Delinea Secret Server (read only)",
        "Context": {
          "PlatformServerUrl": "<PlatformServerUrl>",
          "SecretServerUrl": "<SecretServerUrl>",
          "RuleName": "<Rule>",
          "RuleKey": "<Key>",
          "UsernameField": "<Username>",
          "PasswordField": "<Password>"
        }
      },
    ]
...

Los campos Context son los siguientes:

  • PlatformServerUrl - (obligatorio) la URL de su plataforma Delinea, por ejemplo https://<tenant>.delinea.app.
  • SecretServerUrl: (obligatorio) la URL de Secret Server, por ejemplo https://<tenant>.secretservercloud.eu. Para recuperarlo, ve a la página de conexión de Secret Server en tu tenant de Delinea.
  • RuleName - (obligatorio) el nombre de la regla de incorporación del cliente SDK creada en Delinea.
  • RuleKey: (opcional) la clave de incorporación para la regla. Déjalo vacío si Requerir clave de incorporación no estaba habilitado en Delinea. Aunque este campo es opcional, recomendamos configurarlo para mejorar la seguridad.
  • UsernameField : (obligatorio) el nombre slug del campo Plantilla secreta del que se lee el nombre de usuario, por ejemplo username.
  • PasswordField : (obligatorio) el nombre slug del campo Plantilla secreta del que se lee la contraseña, por ejemplo password.
Nota:

Durante la migración de la plataforma en curso de Delinea, se requieren tanto PlatformServerUrl como SecretServerUrl. El proxy utiliza PlatformServerUrl para comprobar que la plataforma Delinea es accesible y SecretServerUrl para recuperar los propios secretos.

Puedes encontrar el nombre slug de un campo de plantilla secreta en Admin > Plantillas secretas > Plantilla > Campos. Los valores de UsernameField y PasswordField no distinguen entre mayúsculas y minúsculas.

Los activos y las credenciales de robot vinculados a este almacén deben utilizar el ID de secreto numérico de Delinea Secret Server como su nombre externo. No se admiten nombres de cadena.

Para conocer los requisitos previos y la configuración del lado de Delinea, como habilitar la gestión de clientes de SDK y crear la regla de incorporación, consulta la sección Integración de Delinea Secret Server en la página Integrar almacenes de credenciales .

HashiCorp Vault / HashiCorp Vault (solo lectura)

The following sample uses AppRole authentication against a KeyValueV2 secrets engine. For what each parameter means, which ones your authentication method and secrets engine need, and how SecretsEngineMountPath and DataPath resolve to the path of an individual secret, see HashiCorp Vault in Managing credential stores.

...
"SecureStoreConfigurations": [
      {
        "Key": "<MyHashiCorp>",
        "Type": "HashiCorp Vault", // or "HashiCorp Vault (read only)"
        "Context": {
          "VaultUri": "https://vault.example.com:8200",
          "AuthenticationType": "AppRole", // or "UsernamePassword", "Ldap", "Token"
          "AuthenticationMountPath": "", // optional, defaults to the name of the authentication method
          "RoleId": "<RoleId>",
          "SecretId": "<SecretId>",
          "Username": "", // with "UsernamePassword" or "Ldap"
          "Password": "", // with "UsernamePassword" or "Ldap"
          "Token": "", // with "Token"
          "SecretsEngine": "KeyValueV2", // or "KeyValueV1"; read-only also accepts "ActiveDirectory", "OpenLDAP", "LDAP"
          "SecretsEngineMountPath": "uipath/kv", // the mount only - no "data" segment, no secret path
          "DataPath": "orchestrator/assets", // the prefix inside the mount - no mount, no "data" segment
          "Namespace": "", // Vault Enterprise only
          "LdapUseDynamicCredentials": "false", // with the "LDAP" secrets engine
          "KerberosSPN": "" // with Kerberos authentication
        }
      }
    ]
...
...
"SecureStoreConfigurations": [
      {
        "Key": "<MyHashiCorp>",
        "Type": "HashiCorp Vault", // or "HashiCorp Vault (read only)"
        "Context": {
          "VaultUri": "https://vault.example.com:8200",
          "AuthenticationType": "AppRole", // or "UsernamePassword", "Ldap", "Token"
          "AuthenticationMountPath": "", // optional, defaults to the name of the authentication method
          "RoleId": "<RoleId>",
          "SecretId": "<SecretId>",
          "Username": "", // with "UsernamePassword" or "Ldap"
          "Password": "", // with "UsernamePassword" or "Ldap"
          "Token": "", // with "Token"
          "SecretsEngine": "KeyValueV2", // or "KeyValueV1"; read-only also accepts "ActiveDirectory", "OpenLDAP", "LDAP"
          "SecretsEngineMountPath": "uipath/kv", // the mount only - no "data" segment, no secret path
          "DataPath": "orchestrator/assets", // the prefix inside the mount - no mount, no "data" segment
          "Namespace": "", // Vault Enterprise only
          "LdapUseDynamicCredentials": "false", // with the "LDAP" secrets engine
          "KerberosSPN": "" // with Kerberos authentication
        }
      }
    ]
...

Host-level settings go under the AppSettings parameter, the same way they do in Orchestrator. Each store reads only its own prefix, so to configure both stores add each setting twice. For the full list of settings and their defaults, see Host-level settings.

{
// ...
  "AppSettings": {
    // Optional, for Kerberos enablement
    "Plugins.SecureStores.HashiCorp Vault.KerberosEnabled": "true",
    "Plugins.SecureStores.HashiCorp Vault (read only).KerberosEnabled": "true",
    // Optional, for forwarding to the active node
    "Plugins.SecureStores.HashiCorp Vault.ForwardToActiveNode": "true",
    "Plugins.SecureStores.HashiCorp Vault (read only).ForwardToActiveNode": "true"
    // ...
  }
  // ...
}
{
// ...
  "AppSettings": {
    // Optional, for Kerberos enablement
    "Plugins.SecureStores.HashiCorp Vault.KerberosEnabled": "true",
    "Plugins.SecureStores.HashiCorp Vault (read only).KerberosEnabled": "true",
    // Optional, for forwarding to the active node
    "Plugins.SecureStores.HashiCorp Vault.ForwardToActiveNode": "true",
    "Plugins.SecureStores.HashiCorp Vault (read only).ForwardToActiveNode": "true"
    // ...
  }
  // ...
}
Secret Server de Thycotic
Importante:

El almacén de Thycotic Secret Server está siendo reemplazado por el almacén Delinea Secret Server (solo lectura) , documentado en la sección anterior. Ambas tiendas comparten el mismo SDK subyacente y el mismo mecanismo de incorporación basado en reglas, por lo que los campos Context son en gran medida idénticos. Te recomendamos encarecidamente que migres los almacenes de credenciales Thycotic existentes a la nueva tienda Delinea.

...
"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>"
        }
      },
    ]
...
Gestor de secretos de 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>",
        }
      },
    ]
...
Google Secret Gestor (solo lectura)
...
"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>",
        }
      },
    ]
...
Varios almacenes de credenciales

Si utilizas varios almacenes de credenciales, puedes añadir uno debajo del otro, de la siguiente manera:

{
...
  "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"
        }
      }
    ]
  ...
  }
}

Validación

Importante:

Esto solo se aplica al credentials proxy desconectado.

El proxy valida la configuración al inicio, si el tipo que detecta es Disconnected.

Estos son algunos de los pasos de validación que realiza el proxy:

  • El proxy garantiza que appsettings.Production.json contenga las configuraciones esperadas, como se detalla en la anterior sección Configuración.
  • El proxy garantiza que SecureStoreConfigurationsno contenga ningún parámetro Key duplicado, es decir, que los almacenes de credenciales configurados en el archivo appsettings.Production.json sean únicos.
  • El parámetro SecureStoreConfigurations es una matriz de configuraciones. Puedes añadir tantos almacenes de credenciales como desees, incluso del mismo tipo. Por ejemplo, puedes tener varias instancias de Azure Key Vault (solo lectura) configuradas, siempre que el campo Key sea único.
  • El proxy comprueba que todos los valores Type son válidos.
  • En función de la implementación de cada almacén seguro, el proxy comprueba que se pueda llegar al almacén correctamente.

Registro

Los registros de Credentials Proxy de Orchestrator se almacenan localmente, en la carpeta C:\Program Files\UiPath\OrchestratorCredentialsProxy, si el grupo de aplicaciones del proxy tiene permisos de escritura para esa ruta. Se configuran en IIS.

Si no deseas dar permisos de escritura a esa carpeta, proporciona una ruta relativa o absoluta de tu elección a través del parámetro NLog.targets.logfile.fileName en appsettings.Production.json.

En las máquinas de Windows, el proxy también almacena los registros en el Visor de eventos de Windows.

Consideraciones de seguridad

  • Orchestrator only allows secure (HTTPS) URLs for the proxy. The certificate requirements depend on the proxy type:
    • Connected proxy - the HTTPS certificate must be valid for the Public URL and signed by a certificate authority that Orchestrator can validate, meaning a widely recognized public certificate provider. Self-signed certificates are not supported.
    • Disconnected proxy - communication stays inside your own infrastructure, so certificates signed by your internal certificate authority, as well as self-signed certificates, are supported, as long as the machines running your robots trust them.
  • Orchestrator se valida a través de un secreto de cliente generado por el Credentials Proxy de Orchestrator. El secreto de cliente se almacena en un archivo de configuración en la máquina donde se instala el Credentials Proxy de Orchestrator, y se cifra y almacena en la base de datos por Orchestrator.
  • Cuando editas un proxy de almacén de credenciales en Orchestrator y cambias su URL, debes introducir el secreto de cliente.
  • Las acciones de Orchestrator Credentials Proxy 2.0.0+ se registran en el Visor de sucesos de Windows.
  • Los binarios deben firmarse en la máquina con Windows.
  • La imagen de Docker debe estar firmada.

Utilizar el Credentials Proxy de Orchestrator con un equilibrador de carga

Si utilizas el proxy en combinación con un equilibrador de carga, asegúrate de mantener la misma configuración en todos los nodos.

Elementos que deben permanecer idénticos en todos los nodos

  • La versión del instalador proxy. Por ejemplo, si utilizas la versión 1.0.0, todos los nodos de equilibrador de carga deben utilizar también 1.0.0.
  • La configuración en los archivos de configuración de la aplicación. En la mayoría de los casos, estos son appsettings.json y appsettings.Production.json. Ten en cuenta que appsettings.Production.json es único para cada instalación, por lo que debes añadirlo manualmente a cada nodo para garantizar la coherencia.
  • Los complementos de almacén de credenciales añadidos a path/plugins. Todos los complementos que admitimos ya están en esta carpeta, por lo que solo debes ser consciente de cualquier complemento personalizado que añadas.

Cosas importantes a considerar

  • Si deseas realizar cualquier cambio en la configuración de la imagen de Docker que proporcionamos para instalar el proxy, te recomendamos encarecidamente que crees una imagen de Docker personalizada en su lugar.A continuación, debes utilizar esta imagen personalizada para implementar el proxy en todos los nodos.
  • Algunas variables de entorno pueden influir en el tiempo de ejecución. Por ejemplo, las variables de entorno que anulan los valores de configuración appsettings.json o las que afectan al entorno .NET.
  • Puedes utilizar el punto final https://{YourOrchestratorCredentialsProxyURL}/api/v1/Health no autenticado dedicado para comprobar si el Credentials Proxy de Orchestrator aún se está ejecutando.

Actualizar el certificado de Credentials Proxy de Orchestrator

Para las instalaciones de nodo único, actualiza el certificado SSL de la siguiente manera:

  1. Importa el nuevo certificado a la carpeta Personal, en Certificados, en la consola de certificados de la máquina local (certlm.msc).
  2. En la consola de gestión de IIS, expande Sitios y selecciona Proxy de credenciales de UiPath Orchestrator.
  3. Desde el panel derecho, selecciona Vinculaciones....
  4. En la vista Vinculaciones... , selecciona el registro https predeterminado y, a continuación, utiliza el botón Seleccionar... para elegir un certificado.
  5. En la ventana emergente Seleccionar certificado, selecciona el certificado recién añadido.
  6. Selecciona Aceptar hasta que completes la configuración.
    Nota:

    Para las instalaciones multinodo, asegúrate de actualizar el certificado en todas las máquinas.

Para actualizar el certificado para las instalaciones utilizando un equilibrador de carga, utiliza los mismos pasos descritos anteriormente. Dado que Orchestrator Credentials Proxy es sin estado, elimina el nodo del equilibrador de carga al actualizar el certificado.

Rotación de claves

Rotación de claves con tiempo de inactividad

Nota:

Esta operación requiere detener y reiniciar el Credentials Proxy de Orchestrator en ejecución. Esto puede tener un impacto en cualquier solicitud en vivo realizada por Orchestrator.

  1. Genera una nueva clave secreta conforme a los estándares de Credentials Proxy de Orchestrator.
  2. Detén tu Credentials Proxy de Orchestrator.
  3. Edita el archivo appsettings.Production.json y sobrescribe la clave existente con la nueva.
  4. Inicia tu Credentials Proxy de Orchestrator.
  5. En Orchestrator, ve a tu Credentials Proxy de Orchestrator y escribe el nuevo secreto en el campo Secret.

Rotación de claves sin tiempo de inactividad

Nota:

Esta operación requiere un Credentials Proxy de Orchestrator con un equilibrador de carga y un mínimo de dos instancias de Credentials Proxy de Orchestrator. Para obtener más información, consulta la sección Instalación .

  1. Genera una nueva clave secreta conforme a los estándares de Credentials Proxy de Orchestrator.
  2. Añade la clave recién generada a tus instancias de Credentials Proxy. Sigue este procedimiento para cada instancia:
    1. Extrae del equilibrador de carga una instancia de Credentials Proxy de Orchestrator.
    2. Detén esa instancia de Credentials Proxy de Orchestrator.
    3. Abre el archivo appsettings.Production.json. El código del archivo debe ser similar al siguiente:
      {
          "Jwt": {
              "Keys": [
                  "{{OldKey}}"
              ],
      {
          "Jwt": {
              "Keys": [
                  "{{OldKey}}"
              ],
      
    4. Añade la clave recién generada mientras mantienes la existente. El parámetro Keys admite varios valores separados por comas:
      {
          "Jwt": {
              "Keys": [
                  "{{OldKey}}",
                  "{{NewKey}}"
              ],
      {
          "Jwt": {
              "Keys": [
                  "{{OldKey}}",
                  "{{NewKey}}"
              ],
      
    5. Inicia el Credentials Proxy de Orchestrator.
    6. Vuelve a poner la instancia de Credentials Proxy de Orchestrator en el equilibrador de carga.
  3. En Orchestrator, ve a tu Credentials Proxy de Orchestrator y escribe el nuevo secreto en el campo Secret.
  4. Después de un tiempo, quita tu clave antigua de las instancias de Credentials Proxy. Sigue este procedimiento para cada instancia:
    1. Extrae del equilibrador de carga una instancia de Credentials Proxy de Orchestrator.
    2. Detén esa instancia de Credentials Proxy de Orchestrator.
    3. Abre el archivo appsettings.Production.json. El archivo debe contener dos claves, tal como se menciona en los pasos anteriores:
      {
          "Jwt": {
              "Keys": [
                  "{{OldKey}}",
                  "{{NewKey}}"
              ],
      {
          "Jwt": {
              "Keys": [
                  "{{OldKey}}",
                  "{{NewKey}}"
              ],
      
    4. Elimina la clave antigua del archivo: { "Jwt": { "Keys": [ "{{NewKey}}"],
    5. Inicia el Credentials Proxy de Orchestrator.
    6. Vuelve a poner la instancia de Credentials Proxy de Orchestrator en el equilibrador de carga.

¿Te ha resultado útil esta página?

Conectar

¿Necesita ayuda? Soporte

¿Quiere aprender? UiPath Academy

¿Tiene alguna pregunta? Foro de UiPath

Manténgase actualizado