orchestrator
2024.10
true
UiPath logo, featuring letters U and I in white
Guide d'installation d'Orchestrator
Automation CloudAutomation Cloud Public SectorAutomation SuiteStandalone
Last updated 21 oct. 2024

Serveur d'identité AppSettings.json

Le fichier 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é.
Important :
  • 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 dans appsettings.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 ajoutant X-Content-Type-Options, vous devez supprimer cela du fichier Identity appsettings.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>
Remarque :

Il est recommandé que seuls les administrateurs modifient les valeurs de ces paramètres.

En outre, il est conseillé d'arrêter le serveur IIS afin de modifier les paramètres de 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.

Priorité des paramètres

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) :

  1. Valeur dans le fichier appsettings.Production.json
  2. Valeur dans le fichier appsettings.json
  3. 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 ou appsettings.json.

Paramètres

Le fichier appsettings.json bénéficie d’une structure interne composée de plusieurs sections json séparées par une virgule.

Chaînes de connexion (Connection Strings)

La section 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.
Ce paramètre comporte des valeurs comprises entre 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>;" }

Encryption

La section 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.
Ce paramètre comporte des valeurs comprises entre 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 de ConfigFileKey dans le code. Les valeurs acceptées sont AzureKeyVault et ConfigFileKey. Lors de l'installation du serveur d'identité, la valeur est copiée depuis le paramètre UiPath.Orchestrator.dll.config EncryptionKeyPerTenant.KeyProvider.
Les clés du serveur d'identité suivantes correspondent aux clés Orchestrator dans la section SecureAppSettings de UiPath.Orchestrator.dll.config :

Clé du serveur d'identité

Clé Orchestrator

EncryptionKeyPerTenant

EncryptionKeyPerTenant.Enabled

AzureKeyVaultAddress

Azure.KeyVault.VaultAddress

AzureKeyVaultCertificateThumbprint

Azure.KeyVault.CertificateThumbprint

AzureKeyVaultClientId

Azure.KeyVault.ClientId

AzureKeyVaultDirectoryId

Azure.KeyVault.DirectoryId

MultiTenantEncryptionKeyProvider

EncryptionKeyPerTenant.KeyProvider

Attention : si le paramètre CertificatesStoreLocation dans UiPath.Orchestrator.dll.config est défini sur LocalMachine, assurez-vous que AzureKeyVaultCertificateStoreLocation dans appsettings.Production.json a la même valeur.
Attention : Si vous modifiez la clé de chiffrement ou les paramètres Azure Key Vault dans UiPath.Orchestrator.dll.configd'Orchestrator, vous devez également mettre à jour appsettings.Production.json du serveur d'identité avec les mêmes valeurs.

Journalisation

La section 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.
Cette section présente des valeurs comprises entre appsettings.json.
"Logging": {
  "LogLevel": {
    "Default": "Trace",
    "Microsoft": "Warning",
    "Microsoft.Hosting.Lifetime": "Information"
  }
}"Logging": {
  "LogLevel": {
    "Default": "Trace",
    "Microsoft": "Warning",
    "Microsoft.Hosting.Lifetime": "Information"
  }
}
Le serveur d'identité fournit des valeurs par défaut pour quelques composants majeurs comme Microsoft et Microsoft.Hosting.Lifetime.

NLog

La section 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.
Cette section présente des valeurs comprises entre 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=&#xD;&#xA;&#x9;}}"
    }
  },
  "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=&#xD;&#xA;&#x9;}}"
    }
  },
  "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.

Paramètres de l'application

La section 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 le appsettings.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 entre appsettings.Production.json et appsettings.json.
    Remarque : Assurez-vous de fournir une URL en minuscules comme valeur pour IdentityServerAddress ; sinon, une erreur se produit.
  • Saml2ValidCertificateOnly – si elle est définie sur true, 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 de true dans le code.
  • EnablePII – lorsqu’elles sont définies sur true, 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 de false entre appsettings.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 est false. Réglez-la sur true 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 de appsetttings.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 entre appsettings.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 de appsetttings.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 entre appsettings.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 dans appsettings.Production.json.
    Remarque : Assurez-vous de fournir une URL en minuscules comme valeur pour OrchestratorUrl ; 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"
      }
    }

Localisation

La section 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.

Load balancer

La section LoadBalancerSettings comporte les valeurs par défaut suivantes entre appsettings.Production.json et le code :
"LoadBalancerSettings": {
  "RedisConnectionString": "",
  "SlidingExpirationTimeInSeconds":  600
}"LoadBalancerSettings": {
  "RedisConnectionString": "",
  "SlidingExpirationTimeInSeconds":  600
}
Les valeurs comprises entre 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é si LoadBalancer.UseRedis est défini sur true. 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"
  • 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).

Paramètres Redis

La section RedisSettings contrôle les caches activés.
  • UseRedisStoreCache - Définissez sa valeur sur true 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 les LoadBalancerSettings. Le paramètre UseRedisStoreCache n’est pas affiché par défaut.
Remarque : Ceci n’est pas recommandé si vous utilisez la fonctionnalité Applications externes (External Applications) étant donné que ce paramètre met en cache les clients et que les mises à jour des Applications externes ne seront pas reflétées.
  • UseRedisStoreClientCache : définissez sa valeur sur true 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.

Signature des informations d’identification

La section 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.
Remarque :

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.

Reportez-vous à la section Rotation des certificats (Certificate Rotation) pour en savoir plus sur les ajustements que vous devez apporter à la section 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"
  }
Dans cet exemple, Name représente une valeur Empreinte.
Nous ne recommandons pas d’utiliser d’autres valeurs pour 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"
  }
Dans cet exemple, KeyName représente la clé à rechercher dans Azure Key Vault.

Autorisation

  • 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 fichier appsettings.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 fichier appsettings.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.
Ce paramètre ignore le paramètre 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.

Cette page vous a-t-elle été utile ?

Obtenez l'aide dont vous avez besoin
Formation RPA - Cours d'automatisation
Forum de la communauté UiPath
Uipath Logo White
Confiance et sécurité
© 2005-2024 UiPath Tous droits réservés.