- Introdução
- Requisitos
- Melhores práticas
- Instalação
- Atualizando
- Servidor de Identidade
- Solução de problemas de erros de inicialização
AppSettings.json do Identity Server
appsettings.json
(C:\Program Files (x86)\UiPath\Orchestrator\Identity
) contém as definições de configuração pré-definidas para o Identity Server. Um segundo arquivo, idêntico, appsettings.Production.json
é aquele que contém suas configurações específicas do Identity Server.
-
Para configurar o Identity Server de acordo com sua preferência, você deve modificar o arquivo
appsettings.Production.json
. Este arquivo substitui todas as configurações preexistentes emappsettings.json
após cada processo de instalação. -
Se você usar as versões 2023.4 e superiores e tiver modificado
applicationhost.config
adicionandoX-Content-Type-Options
, você deve removê-las do arquivoappsettings.Production.json
de Identidade. Consulte o seguinte exemplo:<?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>
Recomenda-se que apenas os administradores alterem os valores desses parâmetros.
appsettings.Production.json
sob qualquer circunstância.
Os parâmetros que não estão documentados nesta página não devem ser alterados.
Todos os parâmetros diferenciam maiúsculas de minúsculas.
As configurações podem ser definidas em vários locais. Aqui estão as prioridades usadas pelo Identity Server ao determinar o valor de uma configuração, listadas da mais alta (1) a mais baixa (3):
- Valor dentro do arquivo
appsettings.Production.json
- Valor dentro do arquivo
appsettings.json
- Valor padrão definido no código. Usado apenas se uma configuração específica não puder ser encontrada em
appsettings.Production.json
ouappsettings.json
.
appsettings.json
tem uma estrutura interna composta de várias seções JSON separadas por uma vírgula.
ConnectionStrings
é usada para armazenar a string de conexão do banco de dados do Identity Server. Esse valor é preenchido pelo instalador.
appsettings.Production.json
e appsettings.json
.
"ConnectionStrings": { "DefaultConnection": "Server=.\\sqlexpress;Database=IdentityServer;User ID=<username>;Password=<password>;" }
"ConnectionStrings": { "DefaultConnection": "Server=.\\sqlexpress;Database=IdentityServer;User ID=<username>;Password=<password>;" }
EncryptionSettings
é usada para armazenar chaves de criptografia do tenant.Os valores são migrados do UiPath.Orchestrator.dll.config
do Orchestrator durante a instalação.
appsettings.Production.json
e appsettings.json
.
"EncryptionSettings": {
"EncryptionKey": "3wkO1hkaXLwR9LZoRZIueIxG3GIEB/YMDZUWhD9AR8g="
}
"EncryptionSettings": {
"EncryptionKey": "3wkO1hkaXLwR9LZoRZIueIxG3GIEB/YMDZUWhD9AR8g="
}
O Identity Server pode ser configurado para usar uma chave local (veja acima) ou um Azure Key Vault (veja abaixo), assim como o 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 em qual aplicativo de gerenciamento de chaves é preciso armazenar as chaves de criptografia geradas por tenant do Orchestrator. Por padrão, a configuração temConfigFileKey
valor no código. Os valores aceitos sãoAzureKeyVault
eConfigFileKey
. Durante a instalação do Identity Server, o valor é copiado daEncryptionKeyPerTenant.KeyProvider
configuração do UiPath.Orchestrator.dll.config.
UiPath.Orchestrator.dll.config
:
Chave do Identity Server |
Chave do Orchestrator |
---|---|
|
|
|
|
|
|
|
|
|
|
|
|
UiPath.Orchestrator.dll.config
estiver definido como LocalMachine
, certifique-se de que AzureKeyVaultCertificateStoreLocation
em appsettings.Production.json
tenha o mesmo valor.
UiPath.Orchestrator.dll.config
Orchestrator, você também deve atualizar a do Identity Server appsettings.Production.json
com os mesmos valores.
Logging
configura o nível do registro em log para cada componente usado pelo Identity Server. Esta é uma configuração de log genérica. Encontre mais informações aqui.
appsettings.json
.
"Logging": {
"LogLevel": {
"Default": "Trace",
"Microsoft": "Warning",
"Microsoft.Hosting.Lifetime": "Information"
}
}
"Logging": {
"LogLevel": {
"Default": "Trace",
"Microsoft": "Warning",
"Microsoft.Hosting.Lifetime": "Information"
}
}
Microsoft
e Microsoft.Hosting.Lifetime
.
NLog
seção é usada para definir como as informações são registradas no Identity Server por meio de destinos do NLog, assim como no Orchestrator.
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"
}
]
},
Por padrão, o NLog é configurado para gravar logs no ApplicationEvents. Leia aqui mais informações sobre como configurar o NLog usando uma seção JSON.
AppSettings
é a seção de configuração principal do Identity Server. Esta seção tem valores entre appsettings.Production.json
e appsettings.json
.
-
IdentityServerAddress
- Representa a audiência que o Identity Server verifica ao validar o token usado para chamar a API do Identity Server. Durante a instalação, esse campo é preenchido automaticamente dentro doappsettings.Production.json
com o endereço do Identity Server. Não modifique esse valor porque isso interromperá a propagação de dados do Orchestrator.Esta configuração tem valores entreappsettings.Production.json
eappsettings.json
.Observação: certifique-se de fornecer um URL minúsculo como valor paraIdentityServerAddress
; caso contrário, ocorrerá um erro. -
Saml2ValidCertificateOnly
- Se estiver definido comotrue
, não permite o uso de certificados inválidos ao configurar o SAML2.Por padrão, a configuração tem valortrue
no código. -
EnablePII
- Quando definido comotrue
, as exceções contêm informações confidenciais (por exemplo, o endereço de URL do provedor de identidade externa ou o endereço do Identity Server, etc.)Por padrão, a configuração tem valorfalse
emappsettings.json
e o código. HideErrorCodesInUi
- Controla se os códigos de erro de login são exibidos na IU. Esse parâmetro não é exibido por padrão. O valor padrão éfalse
. Defina comotrue
para ocultar os códigos de erro de login da IU. Por exemplo,"HideErrorCodesInUi": true
.-
CookieValidationInterval
- Representa o intervalo de tempo (em segundos) após o qual o cookie é verificado para ver se o usuário e o tenant ainda estão ativos e se o usuário não fez login em outro navegador. O valor emappsetttings.Production.json
é migrado automaticamente do Orchestrator, que tem a mesma configuração.Por padrão, o valor é definido para60
segundos emappsettings.Production.json
e o código. -
CookieExpireMinutes
- Representa o intervalo de tempo (em minutos) após o qual o cookie do Identity Server expira. O valor emappsetttings.Production.json
é migrado automaticamente do Orchestrator, que tem a mesma configuração.Por padrão, o valor é definido para30
minutos emappsettings.Production.json
e o código. -
OrchestratorUrl
— representa o URL do Orchestrator. É aqui que o Identity Server o redireciona quando você clica no ícone do Orchestrator no menu Hub do Portal de Gerenciamento de Identidades.O valor é definido durante a instalação emappsettings.Production.json
.Observação: certifique-se de fornecer um URL minúsculo como valor paraOrchestratorUrl
; caso contrário, ocorrerá um erro."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" } }
LocalizationSettings
tem os seguintes valores padrão no 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
- Lista os idiomas disponíveis no Identity Server. É usada para limitar o número de idiomas disponíveis.
LoadBalancerSettings
tem os seguintes valores padrão no appsettings.Production.json
e o código:
"LoadBalancerSettings": {
"RedisConnectionString": "",
"SlidingExpirationTimeInSeconds": 600
}
"LoadBalancerSettings": {
"RedisConnectionString": "",
"SlidingExpirationTimeInSeconds": 600
}
appsetttings.Production.json
são migrados automaticamente do UiPath.Orchestrator.dll.config
do Orchestrator no caso de uma atualização de vários nós. Se o Redis não estiver configurado no Orchestrator, então o appsettings.Production.json
conterá essa configuração.
-
RedisConnectionString
- Pode ser usado apenas seLoadBalancer.UseRedis
estiver definido comotrue
. Uma string de conexão que permite que você configure seu servidor do Redis, que contém a URL do servidor, a senha e a porta usada com o Redis. Também é possível habilitar as conexões criptografadas por SSL entre os nós do Orchestrator e o serviço do Redis. Para obter mais informações, clique aqui. Exemplos:- com SSL habilitado -
"RedisConnectionString": A"DOCWREDIS02:6379,password=12345678,ssl=true"
- sem SSL habilitado -
"RedisConnectionString": "DOCWREDIS02:6379,password=12345678"
- com SSL habilitado -
SlidingExpirationTimeInSeconds
- Controla o tempo de expiração de deslizamento de um item dentro do cache. Esse tempo de expiração se aplica para o Cache do Redis e o InMemory Cache (esse é o padrão quando o Redis não está disponível).
RedisSettings
controla quais caches são habilitados.
UseRedisStoreCache
- Defina seu valor comotrue
para habilitar o cache do Redis dos dados do cliente da OAuth. Isso ajuda a evitar problemas de desempenho ao usar o Logon Interativo para conectar um grande número de robôs em um curto período. Este cache usa a mesma string de conexão do Redis especificada naLoadBalancerSettings
. A configuraçãoUseRedisStoreCache
não é exibida por padrão.
UseRedisStoreClientCache
- Defina seu valor comotrue
para ativar o cache do Redis para clientes primários (aplicativos UiPath) ou clientes de terceiros (aplicativos externos). Se você tiver uma implantação em grande escala, é recomendável habilitar esse sinalizador.
SigningCredentialSettings
descreve o local do certificado usado para assinar os tokens gerados pelo Identity Server. Os valores das configurações nesta seção são preenchidos pelo instalador com base na sua entrada. As configurações podem ser definidas para permitir a leitura do certificado a partir de um armazenamento de certificados ou do Azure Key Vault.
Configurações de rotação de certificado
ValidationKeys
- Use para indicar o Name
, Location
, e NameType
do seu segundo certificado. Isso é necessário para a rotação do certificado.
Por razões de segurança, o certificado de assinatura deve ter uma chave pública de 2048 bits. Certifique-se de que o certificado seja válido, não expirado, e o Identity Server tenha acesso à chave privada.
SigningCredentialSettings
para garantir que você sempre use um certificado no seu período de validade.
Exemplo de Configurações de Local do Armazenamento de Certificado
Aqui está uma configuração clássica para encontrar um certificado no armazenamento de certificados:
"SigningCredentialSettings": {
"StoreLocation": {
"Name": "30f3c11e676fc8eb1f9dd4e330f3ce668d796796",
"Location": "LocalMachine",
"NameType": "Thumbprint"
}
"SigningCredentialSettings": {
"StoreLocation": {
"Name": "30f3c11e676fc8eb1f9dd4e330f3ce668d796796",
"Location": "LocalMachine",
"NameType": "Thumbprint"
}
Name
representa um valor de Impressão digital.
Location
e NameType
.
Exemplo de Configurações de Local do Azure Key Vault
"SigningCredentialSettings": {
"AzureKeyVaultLocation": {
"KeyName": "key_name_534553553"
}
"SigningCredentialSettings": {
"AzureKeyVaultLocation": {
"KeyName": "key_name_534553553"
}
KeyName
representa a chave para pesquisar no interior do Azure Key Vault.
-
RestrictBasicAuthentication
- Permite que você controle se os usuários podem fazer login em uma instância do Orchestrator usando credenciais de autenticação básica. Esta configuração não é exibida por padrão noappsettings.Production.json
. Os seguintes valores estão disponíveis:true
- Os usuários não podem fazer login usando credenciais de autenticação básica.false
- Os usuários podem fazer login usando credenciais de autenticação básica. Esse é o valor padrão.
-
EnableBasicAuthenticationForHostTenant
- Permite que você controle se um administrador do host pode fazer login no tenant do host de uma instância do Orchestrator usando credenciais de autenticação básica. Esta configuração não é exibida por padrão no arquivoappsettings.Production.json
. Os seguintes valores estão disponíveis:true
- O administrador do host pode fazer login usando credenciais de autenticação básica. Esse é o valor padrão.false
- O administrador do host não pode fazer login usando credenciais de autenticação básica.
RestrictBasicAuthentication
, o que significa que se você definir EnableBasicAuthenticationForHostTenant
como true
e RestrictBasicAuthentication
como true
, pode fazer login apenas com credenciais de autenticação básica no nível do host.