- Démarrage
- Prérequis
- Meilleures pratiques
- Installation
- Mise à jour en cours
- Serveur d'identité
- Module complémentaire haute disponibilité
- Résolution des erreurs de démarrage
Guide d'installation d'Orchestrator
Serveur d'identité AppSettings.json
appsettings.json
(C:\Program Files (x86)\UiPath\Orchestrator\Identity
) contient les paramètres de configuration prêts à l'emploi du serveur d'identité. Un deuxième fichier identique (appsettings.Production.json
) contient les paramètres spécifiques de votre serveur d'identité.
-
Pour configurer Identity Server selon vos préférences, vous devez modifier le fichier
appsettings.Production.json
. Ce fichier remplace tous les paramètres préexistants dansappsettings.json
après chaque processus d’installation. -
Si vous utilisez la version 2023.4 ou une version supérieure et que vous avez modifié
applicationhost.config
en ajoutantX-Content-Type-Options
, vous devez supprimer cela du fichier Identityappsettings.Production.json
. Consultez l’exemple suivant :<?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>
Il est recommandé que seuls les administrateurs modifient les valeurs de ces paramètres.
appsettings.Production.json
, en toute circonstance.
Les paramètres qui ne sont pas documentés dans cette page ne doivent pas être modifiés.
Tous les paramètres sont sensibles à la casse.
Les paramètres peuvent être configurés à plusieurs endroits. Voici les priorités utilisées par le serveur d'identité pour déterminer la valeur d'un paramètre, répertorié de haute (1) à basse (3) :
- Valeur dans le fichier
appsettings.Production.json
- Valeur dans le fichier
appsettings.json
- Valeur par défaut fixée dans le code. Utilisé uniquement si un paramètre spécifique ne peut être trouvé dans
appsettings.Production.json
ouappsettings.json
.
appsettings.json
bénéficie d’une structure interne composée de plusieurs sections json séparées par une virgule.
ConnectionStrings
permet de stocker la chaîne de connexion de la base de données du serveur d'identité. Cette valeur est renseignée par l'installateur.
appsettings.Production.json
et 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
est utilisée pour stocker les clés de chiffrement des locataires. Les valeurs sont automatiquement transférées depuis la section UiPath.Orchestrator.dll.config
d'Orchestrator lors de l'installation.
appsettings.Production.json
et appsettings.json
.
"EncryptionSettings": {
"EncryptionKey": "3wkO1hkaXLwR9LZoRZIueIxG3GIEB/YMDZUWhD9AR8g="
}
"EncryptionSettings": {
"EncryptionKey": "3wkO1hkaXLwR9LZoRZIueIxG3GIEB/YMDZUWhD9AR8g="
}
Le serveur d'identité peut être configuré de sorte à requérir l'utilisation d'une clé locale (voir ci-dessus) ou d'un coffre Azure Key Vault (voir ci-dessous), tout comme Orchestrator.
"EncryptionSettings": {
"MultiTenantEncryptionKeyProvider": "AzureKeyVault",
"EncryptionKeyPerTenant": true,
"AzureKeyVaultAddress": "keyVaultAddress",
"AzureKeyVaultCertificateThumbprint": "keyvaultCertificateThumbprint",
"AzureKeyVaultClientId" : "azureClientId"
},
"EncryptionSettings": {
"MultiTenantEncryptionKeyProvider": "AzureKeyVault",
"EncryptionKeyPerTenant": true,
"AzureKeyVaultAddress": "keyVaultAddress",
"AzureKeyVaultCertificateThumbprint": "keyvaultCertificateThumbprint",
"AzureKeyVaultClientId" : "azureClientId"
},
MultiTenantEncryptionKeyProvider
- Indique dans quelle application de gestion de clés il faut stocker les clés de cryptage générées par locataire à partir d'Orchestrator. Par défaut, le paramètre présente une valeur deConfigFileKey
dans le code. Les valeurs acceptées sontAzureKeyVault
etConfigFileKey
. Lors de l'installation du serveur d'identité, la valeur est copiée depuis le paramètre UiPath.Orchestrator.dll.configEncryptionKeyPerTenant.KeyProvider
.
UiPath.Orchestrator.dll.config
:
Clé du serveur d'identité |
Clé Orchestrator |
---|---|
|
|
|
|
|
|
|
|
|
|
|
|
UiPath.Orchestrator.dll.config
est défini sur LocalMachine
, assurez-vous que AzureKeyVaultCertificateStoreLocation
dans appsettings.Production.json
a la même valeur.
UiPath.Orchestrator.dll.config
d'Orchestrator, vous devez également mettre à jour appsettings.Production.json
du serveur d'identité avec les mêmes valeurs.
Logging
configure le niveau de journal de chaque composant utilisé par le serveur d'identité. Il s’agit d’une configuration de journalisation générique. Pour en savoir plus, cliquez ici.
appsettings.json
.
"Logging": {
"LogLevel": {
"Default": "Trace",
"Microsoft": "Warning",
"Microsoft.Hosting.Lifetime": "Information"
}
}
"Logging": {
"LogLevel": {
"Default": "Trace",
"Microsoft": "Warning",
"Microsoft.Hosting.Lifetime": "Information"
}
}
Microsoft
et Microsoft.Hosting.Lifetime
.
NLog
est utilisée pour définir la façon dont les informations sont enregistrées dans le serveur d'identité via des cibles NLog, tout comme dans 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"
}
]
},
Par défaut, NLog est configuré pour écrire des journaux dans ApplicationEvents. Consultez cette page pour plus d’informations sur la configuration de NLog à l’aide d’une section JSON.
AppSettings
constitue la section de configuration principale du serveur d'identité. Cette section présente des valeurs comprises entre appsettings.Production.json
et appsettings.json
.
-
IdentityServerAddress
– représente le public que le serveur d'identité vérifie lors de la validation du jeton utilisé pour appeler l'API du serveur d'identité. Lors de l'installation, ce champ est automatiquement renseigné dans leappsettings.Production.json
avec l'adresse du serveur d'identité. Ne modifiez pas cette valeur, car elle arrêterait la propagation des données d'Orchestrator.Ce paramètre comporte des valeurs comprises entreappsettings.Production.json
etappsettings.json
.Remarque : Assurez-vous de fournir une URL en minuscules comme valeur pourIdentityServerAddress
; sinon, une erreur se produit. -
Saml2ValidCertificateOnly
– si elle est définie surtrue
, elle ne permet pas l'utilisation de certificats non valides lors de la configuration de SAML2.Par défaut, le paramètre présente une valeur detrue
dans le code. -
EnablePII
– lorsqu’elles sont définies surtrue
, les exceptions contiennent des informations sensibles (par exemple, l’adresse URL du fournisseur d’identité externe, l’adresse du serveur d'identité, etc.)Par défaut, le paramètre présente une valeur defalse
entreappsettings.json
et le code. HideErrorCodesInUi
- Contrôlez si les codes d’erreur de connexion sont affichés ou non dans l’interface utilisateur. Ce paramètre n’est pas affiché par défaut. La valeur par défaut estfalse
. Réglez-la surtrue
pour masquer les codes d’erreur de connexion de l’interface utilisateur. Par exemple,"HideErrorCodesInUi": true
.-
CookieValidationInterval
– représente l’intervalle de temps (en secondes) après laquelle le cookie est vérifié pour savoir si l’utilisateur et le locataire sont toujours actifs et si l’utilisateur ne s’est pas connecté à un autre navigateur. La valeur deappsetttings.Production.json
est automatiquement migrée depuis Orchestrator, qui présente le même paramètre.Par défaut, la valeur est fixée à60
secondes entreappsettings.Production.json
et le code. -
CookieExpireMinutes
– représente l'intervalle de temps (en minutes) après lequel le cookie du serveur d'identité expire. La valeur deappsetttings.Production.json
est automatiquement transférée depuis Orchestrator, qui présente le même paramètre.Par défaut, la valeur est fixée à30
minutes entreappsettings.Production.json
et le code. -
OrchestratorUrl
: représente l'URL d'Orchestrator. C'est là que le serveur d'identité vous redirige lorsque vous cliquez sur l'icône Orchestrator dans le menu Hub du portail de gestion des identités.La valeur est fixée lors de l'installation dansappsettings.Production.json
.Remarque : Assurez-vous de fournir une URL en minuscules comme valeur pourOrchestratorUrl
; sinon, une erreur se produit."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
comporte les valeurs par défaut suivantes dans le code :
"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
– répertorie les langues disponibles dans le serveur d'identité. Il est utilisé pour limiter le nombre de langues disponibles.
LoadBalancerSettings
comporte les valeurs par défaut suivantes entre appsettings.Production.json
et le code :
"LoadBalancerSettings": {
"RedisConnectionString": "",
"SlidingExpirationTimeInSeconds": 600
}
"LoadBalancerSettings": {
"RedisConnectionString": "",
"SlidingExpirationTimeInSeconds": 600
}
appsetttings.Production.json
sont automatiquement migrées depuis Orchestrator UiPath.Orchestrator.dll.config
en cas de mise à niveau multi-nœuds.. Si Redis n'est pas configuré dans Orchestrator, alors appsettings.Production.json
comprendra ce paramètre.
-
RedisConnectionString
- peut être uniquement utilisé siLoadBalancer.UseRedis
est défini surtrue
. Une chaîne de connexion qui permet de configurer votre serveur Redis, qui contient l'URL du serveur, le mot de passe et le port utilisé avec Redis. Il est également possible d'activer les connexions chiffrées en SSL entre les nœuds d'Orchestrator et le service Redis. Pour plus d'informations, cliquez ici. Exemples :- avec SSL activé :
"RedisConnectionString": A"DOCWREDIS02:6379,password=12345678,ssl=true"
- sans SSL activé :
"RedisConnectionString": "DOCWREDIS02:6379,password=12345678"
- avec SSL activé :
SlidingExpirationTimeInSeconds
– contrôle le temps d'expiration glissant d'un élément à l'intérieur du cache. Ce délai d'expiration s'applique à la fois au cache Redis et au cache en mémoire (c'est le délai par défaut lorsque Redis n'est pas disponible).
RedisSettings
contrôle les caches activés.
UseRedisStoreCache
- Définissez sa valeur surtrue
pour permettre à Redis de mettre en cache les données client d’OAuth. Cela permet de prévenir les problèmes de performances lorsque l'on utilise la connexion interactive pour connecter un grand nombre de Robots dans un temps réduit. Ce cache utilise la même chaîne de connexion Redis spécifiée dans lesLoadBalancerSettings
. Le paramètreUseRedisStoreCache
n’est pas affiché par défaut.
UseRedisStoreClientCache
: définissez sa valeur surtrue
pour activer la mise en cache Redis pour les clients propriétaires (applications UiPath) ou les clients tiers (applications externes). Si vous avez un déploiement à grande échelle, il est recommandé d'activer cet indicateur.
SigningCredentialSettings
désigne l’emplacement du certificat utilisé pour signer les jetons générés par le serveur d’identité. Les valeurs des paramètres de cette section sont remplies par l’installateur en fonction de votre entrée. Les paramètres peuvent être configurés pour permettre la lecture du certificat à partir d’un magasin de certificats ou d'Azure Key Vault.
Paramètres de la rotation des certificats
ValidationKeys
- À utiliser pour indiquer les Name
, Location
, et NameType
de votre deuxième certificat. Il est requis pour la rotation du certificat.
Pour des raisons de sécurité, le certificat de signature doit disposer d'une clé publique 2048 bits. Assurez-vous que le certificat est valide et n'a pas expiré, et qu'Identity Server a accès à la clé privée.
SigningCredentialSettings
pour vous assurer que vous utilisez toujours un certificat encore valide.
Exemple de paramètres de localisation d'un magasin de certificats
Voici une configuration classique permettant de trouver un certificat à l'intérieur du magasin de certificats :
"SigningCredentialSettings": {
"StoreLocation": {
"Name": "30f3c11e676fc8eb1f9dd4e330f3ce668d796796",
"Location": "LocalMachine",
"NameType": "Thumbprint"
}
"SigningCredentialSettings": {
"StoreLocation": {
"Name": "30f3c11e676fc8eb1f9dd4e330f3ce668d796796",
"Location": "LocalMachine",
"NameType": "Thumbprint"
}
Name
représente une valeur Empreinte.
Location
et NameType
.
Exemple de paramètres de localisation d'Azure Key Vault
"SigningCredentialSettings": {
"AzureKeyVaultLocation": {
"KeyName": "key_name_534553553"
}
"SigningCredentialSettings": {
"AzureKeyVaultLocation": {
"KeyName": "key_name_534553553"
}
KeyName
représente la clé à rechercher dans Azure Key Vault.
-
RestrictBasicAuthentication
- Permet de contrôler si les utilisateurs peuvent se connecter à une instance Orchestrator en utilisant des informations d'authentification de base. Ce paramètre n'est pas affiché par défaut dans le fichierappsettings.Production.json
. Les valeurs suivantes sont disponibles :true
- Les utilisateurs ne peuvent pas se connecter en utilisant les informations d’identification d’authentification de base.false
- Les utilisateurs peuvent se connecter en utilisant les informations d’identification d’authentification de base. Ceci est la valeur par défaut.
-
EnableBasicAuthenticationForHostTenant
- Permet de contrôler si un admin hôte peut se connecter au locataire hôte d'une instance Orchestrator en utilisant des informations d'authentification de base. Ce paramètre n'est pas affiché par défaut dans le fichierappsettings.Production.json
. Les valeurs suivantes sont disponibles :true
- L'admin hôte peut se connecter en utilisant des informations d'authentification de base. Ceci est la valeur par défaut.false
- L'admin hôte ne peut pas se connecter en utilisant des informations d'authentification de base.
RestrictBasicAuthentication
, ce qui signifie que si vous définissez EnableBasicAuthenticationForHostTenant
sur true
et RestrictBasicAuthentication
sur true
, vous ne pouvez vous connecter qu'avec les informations d'authentification de base au niveau de l'hôte.