- Primeros pasos
- Requisitos
- Mejores prácticas
- Instalación
- Actualizando
- Servidor de identidad
- Solución de problemas de errores de inicio

Guía de instalación de Orchestrator
Identity Server AppSettings.json
El archivo appsettings.json (C:\Program Files (x86)\UiPath\Orchestrator\Identity) contiene los ajustes de configuración listos para usarse para Identity Server. Un segundo archivo idéntico, appsettings.Production.json, es el que contiene tu configuración específica de Identity Server.
- Para configurar Identity Server a tu gusto, debes modificar el archivo
appsettings.Production.json. Este archivo anula cualquier configuración preexistente dentro deappsettings.jsondespués de cada proceso de instalación. - Si utilizas las versiones 2023.4 y posteriores, y has modificado
applicationhost.configañadiendoX-Content-Type-Options, debes eliminarlo del archivo Identityappsettings.Production.json. Consulta el siguiente ejemplo: asignación
<?xml version="1.0" encoding="utf-8"?>
<configuration>
<location path="." inheritInChildApplications="false">
<system.webServer>
<httpProtocol>
<customHeaders>
<remove name="X-Powered-By" />
<!--
<add name="X-Content-Type-Options" value="nosniff" />
-->
</customHeaders>
<?xml version="1.0" encoding="utf-8"?>
<configuration>
<location path="." inheritInChildApplications="false">
<system.webServer>
<httpProtocol>
<customHeaders>
<remove name="X-Powered-By" />
<!--
<add name="X-Content-Type-Options" value="nosniff" />
-->
</customHeaders>
Recomendamos que solo los administradores cambien los valores de estos parámetros. Además, se recomienda que desconectes el sitio de IIS para modificar la appsettings.Production.jsonconfiguración en cualquier caso. Los parámetros que no se documentan en esta página no deben cambiarse. Todos los parámetros distinguen entre mayúsculas y minúsculas.
Prioridad de configuración
Puedes cambiar la configuración en varios lugares. Aquí se muestran las prioridades que utiliza Identity Server al determinar el valor de una configuración, desde la alta (1) hasta la baja (3):
- Valor dentro del archivo
appsettings.Production.json - Valor dentro del archivo
appsettings.json - Valor predeterminado establecido en el código. Solo se utiliza si no se puede encontrar una configuración específica dentro de
appsettings.Production.jsonoappsettings.json.
Configuración
El archivo appsettings.json tiene una estructura interna compuesta de varias secciones JSON separadas por una coma.
Cadenas de conexión
La sección ConnectionStrings se utiliza para almacenar la cadena de conexión de la base de datos de Identity Server. El instalador es quien rellena este valor.
Esta configuración tiene valores dentro de appsettings.Production.json y appsettings.json.
"ConnectionStrings": { "DefaultConnection": "Server=.\\sqlexpress;Database=IdentityServer;User ID=<username>;Password=<password>;" }
"ConnectionStrings": { "DefaultConnection": "Server=.\\sqlexpress;Database=IdentityServer;User ID=<username>;Password=<password>;" }
Cifrado
La sección EncryptionSettings se utiliza para almacenar las claves de cifrado de tenants. Los valores se migrarán automáticamente desde UiPath.Orchestrator.dll.config de Orchestrator durante la instalación.
Esta configuración tiene valores dentro de appsettings.Production.json y appsettings.json.
"EncryptionSettings": {
"EncryptionKey": "3wkO1hkaXLwR9LZoRZIueIxG3GIEB/YMDZUWhD9AR8g="
}
"EncryptionSettings": {
"EncryptionKey": "3wkO1hkaXLwR9LZoRZIueIxG3GIEB/YMDZUWhD9AR8g="
}
Identity Server puede configurarse para utilizar una clave local (ver más arriba) o una Azure Key Vault (ver más abajo), igual que Orchestrator.
"EncryptionSettings": {
"MultiTenantEncryptionKeyProvider": "AzureKeyVault",
"EncryptionKeyPerTenant": true,
"AzureKeyVaultAddress": "keyVaultAddress",
"AzureKeyVaultCertificateThumbprint": "keyvaultCertificateThumbprint",
"AzureKeyVaultClientId" : "azureClientId"
},
"EncryptionSettings": {
"MultiTenantEncryptionKeyProvider": "AzureKeyVault",
"EncryptionKeyPerTenant": true,
"AzureKeyVaultAddress": "keyVaultAddress",
"AzureKeyVaultCertificateThumbprint": "keyvaultCertificateThumbprint",
"AzureKeyVaultClientId" : "azureClientId"
},
MultiTenantEncryptionKeyProvider: indica en qué aplicación de administración de claves almacenar las claves de cifrado generadas por tenant desde Orchestrator. De forma predeterminada, esta configuración tiene el valorConfigFileKeycomo parte del código. Los valores aceptados sonAzureKeyVaultyConfigFileKey. Durante la instalación de Identity Server, el valor se copiará desde la configuraciónEncryptionKeyPerTenant.KeyProviderde UiPath.Orchestrator.dll.config.
Las siguientes claves de Identity Server coinciden con las claves de Orchestrator dentro de la sección SecureAppSettings UiPath.Orchestrator.dll.configde:
| Clave de Identity Server | Clave de Orchestrator |
|---|---|
EncryptionKeyPerTenant | EncryptionKeyPerTenant.Enabled |
AzureKeyVaultAddress | Azure.KeyVault.VaultAddress |
AzureKeyVaultCertificateThumbprint | Azure.KeyVault.CertificateThumbprint |
AzureKeyVaultClientId | Azure.KeyVault.ClientId |
AzureKeyVaultDirectoryId | Azure.KeyVault.DirectoryId |
MultiTenantEncryptionKeyProvider | EncryptionKeyPerTenant.KeyProvider |
Si el parámetro UbicaciónDeAlmacenamientoDeCertificados en UiPath.Orchestrator.dll.config está establecido en LocalMachine, asegúrate de que AzureKeyVaultCertificateStoreLocation en appsettings.Production.json tenga el mismo valor.
Si cambias la clave de cifrado o la configuración de Azure Key Vault dentro de UiPath.Orchestrator.dll.config de Orchestrator, también debes actualizar appsettings.Production.json de Identity Server con los mismos valores.
Registro
La sección Logging configura el nivel de registro de cada componente utilizado por Identity Server. Esta es una configuración de registro genérica. Más información aquí.
Esta sección tiene valores dentro de appsettings.json.
"Logging": {
"LogLevel": {
"Default": "Trace",
"Microsoft": "Warning",
"Microsoft.Hosting.Lifetime": "Information"
}
}
"Logging": {
"LogLevel": {
"Default": "Trace",
"Microsoft": "Warning",
"Microsoft.Hosting.Lifetime": "Information"
}
}
Identity Server proporciona algunos valores predeterminados para unos pocos componentes principales como Microsoft y Microsoft.Hosting.Lifetime.
NLog
La sección NLog se utiliza para definir cómo se registra la información en Identity Server a través de los valores de destino de NLog, igual que en Orchestrator.
Esta sección tiene valores dentro de appsettings.json.
json
"NLog": {
"IncludeScopes": true,
"throwConfigExceptions": false,
"targets": {
"EventLog": {
"type": "EventLog",
"source": "IdentityService",
"layout": "${longdate} ${logger} ${message}${onexception:${newline}${exception:maxInnerExceptionLevel=10:format=shortType,message,stacktrace:separator=*:innerExceptionSeparator=
	}}"
}
},
"rules": [
{
"logger": "*",
"minLevel": "Info",
"writeTo": "EventLog"
}
]
},
json
"NLog": {
"IncludeScopes": true,
"throwConfigExceptions": false,
"targets": {
"EventLog": {
"type": "EventLog",
"source": "IdentityService",
"layout": "${longdate} ${logger} ${message}${onexception:${newline}${exception:maxInnerExceptionLevel=10:format=shortType,message,stacktrace:separator=*:innerExceptionSeparator=
	}}"
}
},
"rules": [
{
"logger": "*",
"minLevel": "Info",
"writeTo": "EventLog"
}
]
},
De forma predeterminada, NLog está configurado para escribir registros en ApplicationEvents. Consulta aquí más información sobre cómo configurar NLog utilizando una sección JSON.
Ajustes de la aplicación
La sección AppSettings es la sección de configuración principal de Identity Server. Esta sección tiene valores dentro de appsettings.Production.json y appsettings.json.
IdentityServerAddress: representa la audiencia que Identity Server comprueba cuando valida el token utilizado para llamar a la API de Identity Server. Durante la instalación, este campo se rellenará automáticamente dentro deappsettings.Production.jsoncon la dirección de Identity Server. No modifiques este valor, ya que se rompería la propagación de datos de Orchestrator.
Esta configuración tiene valores dentro de appsettings.Production.json y appsettings.json.
Asegúrate de proporcionar una URL en minúsculas como valor para IdentityServerAddress; de lo contrario, se produce un error.
Saml2ValidCertificateOnly: si se establece entrue, no permite el uso de certificados no válidos al configurar SAML2.
De forma predeterminada, esta configuración tiene el valor true dentro del código.
EnablePII: si se establece entrue, las excepciones contendrán información confidencial (por ejemplo, la dirección URL del proveedor de identidades externo o la dirección de Identity Server, etc).
De forma predeterminada, esta configuración tiene el valor false dentro de appsettings.json y el código.
HideErrorCodesInUi: controla si se muestran o no los códigos de error de inicio de sesión en la IU. Este parámetro no se muestra por defecto. El valor predeterminado esfalse. Establécelo entruepara ocultar los códigos de error de inicio de sesión desde la IU. Por ejemplo,"HideErrorCodesInUi": true.CookieValidationInterval: representa el intervalo de tiempo (en segundos) tras el cual se comprueba la cookie para ver si el usuario y el tenant aún están activos, y si el usuario no ha iniciado sesión en otro navegador. El valor dentro deappsetttings.Production.jsonse migrará automáticamente desde Orchestrator, que tiene la misma configuración.
De forma predeterminada, el valor está establecido en 60 segundos dentro de appsettings.Production.json y el código.
CookieExpireMinutes: representa el intervalo de tiempo (en minutos) tras el cual caducará la cookie de Identity Server. El valor dentro deappsetttings.Production.jsonse migrará automáticamente desde Orchestrator, que tiene la misma configuración.
De forma predeterminada, el valor está establecido en 30 minutos dentro de appsettings.Production.json y el código.
OrchestratorUrl: representa la URL de Orchestrator. Aquí es donde Identity Server te redirigirá cuando hagas clic en el icono de Orchestrator dentro del menú Hub del portal de administración de Identity.
El valor está establecido durante la instalación dentro de appsettings.Production.json.
Asegúrate de proporcionar una URL en minúsculas como valor para OrchestratorUrl; de lo contrario, se produce un error.
"AppSettings": {
"IdentityServerAddress": "https://myIdentity.domain.local/identity",
"EnablePII": false,
"HideErrorCodesInUi": true,
"CookieExpireMinutes": 30,
"OrchestratorUrl": "https://myOrchestratorURL.domain.local"
}
}
"AppSettings": {
"IdentityServerAddress": "https://myIdentity.domain.local/identity",
"EnablePII": false,
"HideErrorCodesInUi": true,
"CookieExpireMinutes": 30,
"OrchestratorUrl": "https://myOrchestratorURL.domain.local"
}
}
Localización
La sección LocalizationSettings tiene los siguientes valores predeterminados dentro del código:
"LocalizationSettings": {
"EnabledLanguages": "en,ja,de,es,es-MX,fr,ko,pt,pt-BR,ru,tr,zh-CN"
}
"LocalizationSettings": {
"EnabledLanguages": "en,ja,de,es,es-MX,fr,ko,pt,pt-BR,ru,tr,zh-CN"
}
EnabledLanguages: muestra los idiomas disponibles en Identity Server. Se utiliza para limitar el número de idiomas disponibles.
Load balancer
La sección LoadBalancerSettings tiene los siguientes valores predeterminados dentro de appsettings.Production.json y el código:
"LoadBalancerSettings": {
"RedisConnectionString": "",
"SlidingExpirationTimeInSeconds": 600
}
"LoadBalancerSettings": {
"RedisConnectionString": "",
"SlidingExpirationTimeInSeconds": 600
}
Los valores de appsetttings.Production.json se migrarán automáticamente desde UiPath.Orchestrator.dll.config de Orchestrator en caso de una actualización multinodo. Si Redis no está configurado dentro de Orchestrator, appsettings.Production.json contendrá esta configuración.
RedisConnectionString: solo se puede utilizar siLoadBalancer.UseRedisestá establecido entrue. Una cadena de conexión que te permite configurar tu servidor Redis, que contiene la URL del servidor, la contraseña y el puerto utilizado con Redis. También es posible habilitar las conexiones cifradas de SSL entre los nodos de Orchestrator y el servicio Redis. Para obtener más información, haz clic aquí. Ejemplos:- con SSL habilitado:n
"RedisConnectionString": A"DOCWREDIS02:6379,password=12345678,ssl=true" - sin SSL habilitado:
"RedisConnectionString": "DOCWREDIS02:6379,password=12345678"
- con SSL habilitado:n
SlidingExpirationTimeInSeconds: controla el tiempo de vencimiento de desplazamiento de un elemento dentro de la caché. Este tiempo de vencimiento se aplica tanto para la caché de Redis como para la caché de InMemory (comportamiento predeterminado si Redis no está disponible).
Configuración de Redis
La sección RedisSettings controla qué cachés están habilitadas.
-
UseRedisStoreCache: establece su valor entruepara habilitar la caché de Redis de los datos del cliente de OAuth. Esto ayuda a evitar problemas de rendimiento cuando se utiliza el inicio de sesión interactivo para conectar una gran cantidad de robots en un breve periodo de tiempo. Esta caché utiliza la misma cadena de conexión de Redis especificada enLoadBalancerSettings. La configuraciónUseRedisStoreCacheno se muestra de forma predeterminada.Nota:Esto no se recomienda si utilizas la característica Aplicaciones externas, ya que esta configuración almacena en caché a los clientes y las actualizaciones de las aplicaciones externas no se reflejarán.
-
UseRedisStoreClientCache: establece su valor entruepara habilitar el almacenamiento en caché de Redis para clientes propios (aplicaciones de UiPath) o clientes de terceros (aplicaciones externas). Si tiene una implementación a gran escala, se recomienda habilitar este marcador.
Credencial de firma
La sección SigningCredentialSettings describe la ubicación del certificado utilizado para firmar los tokens generados por Identity Server. El instalador rellena los valores de la configuración de esta sección según tus datos de entrada. Puede configurarse para permitir la lectura del certificado desde un almacén de certificados o desde Azure Key Vault.
Configuración de la rotación de certificados
ValidationKeys: utilízalo para indicar Name, Location, y NameType de tu segundo certificado. Esto es necesario para la rotación de certificados.
Por razones de seguridad, el certificado de firma debe tener una clave pública de 2048 bits. Asegúrate de que el certificado sea válido, no haya caducado y de que Identity Server tenga acceso a la clave privada. Consulta Rotación de certificados para obtener más información sobre los ajustes que debes realizar en la sección SigningCredentialSettings para asegurarte de que siempre utilizas un certificado dentro de su período de validez.
Ejemplo de configuración de ubicación del almacén de certificados
Aquí se muestra una configuración clásica para encontrar un certificado dentro del almacén de certificados:
"SigningCredentialSettings": {
"StoreLocation": {
"Name": "30f3c11e676fc8eb1f9dd4e330f3ce668d796796",
"Location": "LocalMachine",
"NameType": "Thumbprint"
}
"SigningCredentialSettings": {
"StoreLocation": {
"Name": "30f3c11e676fc8eb1f9dd4e330f3ce668d796796",
"Location": "LocalMachine",
"NameType": "Thumbprint"
}
En este ejemplo, Name representa un valor de huella digital.
No recomendamos que utilices otros valores para Location y NameType.
Ejemplo de configuración de ubicación de Azure Key Vault
"SigningCredentialSettings": {
"AzureKeyVaultLocation": {
"KeyName": "key_name_534553553"
}
"SigningCredentialSettings": {
"AzureKeyVaultLocation": {
"KeyName": "key_name_534553553"
}
En este ejemplo, KeyName representa la clave que se busca dentro de Azure Key Vault.
Autorización
RestrictBasicAuthentication: te permite controlar si los usuarios pueden iniciar sesión en una instancia de Orchestrator utilizando las credenciales de autenticación básicas. Esta configuración no se muestra por defecto enappsettings.Production.json. Están disponibles los siguientes valores:true: los usuarios no pueden iniciar sesión utilizando las credenciales de autenticación básicas.false: los usuarios pueden iniciar sesión utilizando las credenciales de autenticación básicas. Este es el valor predeterminado.
EnableBasicAuthenticationForHostTenant: te permite controlar si un administrador de host puede iniciar sesión en el tenant de host de una instancia de Orchestrator utilizando las credenciales de autenticación básicas. Esta configuración no se muestra por defecto en el archivoappsettings.Production.json. Están disponibles los siguientes valores:true: el administrador de host puede iniciar sesión utilizando las credenciales de autenticación básicas. Este es el valor predeterminado.false: el administrador de host no puede iniciar sesión utilizando las credenciales de autenticación básicas.
Este parámetro se salta el parámetro RestrictBasicAuthentication, lo que significa que, si estableces EnableBasicAuthenticationForHostTenant en true y RestrictBasicAuthentication en true, podrás iniciar sesión con las credenciales de autenticación básicas en el nivel de host.