- Démarrage
- Meilleures pratiques
- Locataire
- À propos du contexte du locataire
- Recherche de ressources dans un locataire
- Gestion des Robots
- Connexion des Robots à Orchestrator
- Enregistrement des identifiants du Robot dans CyberArk
- Stockage des mots de passe de l’Unattended Robot dans Azure Key Vault (lecture seule)
- Stockage des informations d’identification de l’Unattended Robot dans HashiCorp Vault (lecture seule)
- Stockage des informations d'identification du robot Unattended dans AWS Secrets Manager (lecture seule)
- Suppression des sessions Unattended déconnectées et qui ne répondent pas
- Authentification du Robot
- Authentification du Robot avec les informations d'identification du client
- Configurer les capacités d’automatisation
- Solutions
- Audit
- Paramètres
- Registre
- Cloud Robots
- Présentation des robots cloud
- Exécution d'automatisations Unattended à l'aide de Cloud Robots - VM
- Téléchargement de votre propre image
- Réutilisation des images de machines personnalisées (pour les pools manuels)
- Réinitialisation des informations d'identification d'une machine (pour les pools manuels)
- Surveillance
- Mises à jour de sécurité
- Demander un essai
- Questions fréquemment posées
- Configuration du VPN pour les robots du cloud
- Configurer une connexion ExpressRoute
- Diffusion en direct et contrôle à distance
- Robots Automation Suite
- Contexte des dossiers
- Processus (Processes)
- Tâches (Jobs)
- Apps
- Déclencheurs (Triggers)
- Journaux (Logs)
- Surveillance
- Index
- Files d'attente (Queues)
- Actifs
- À propos des actifs
- Gestion des actifs dans Orchestrator
- Gestion des actifs dans Studio
- Stockage des ressources dans Azure Key Vault (lecture seule)
- Stockage des ressources dans HashiCorp Vault (lecture seule)
- Stockage des ressources dans AWS Secrets Manager (lecture seule)
- Stocker des ressources dans Google Secret Manager (lecture seule)
- Connexions
- Règles métier
- Compartiments de stockage
- Serveurs MCP
- Tests d'Orchestrator
- Service de catalogue de ressources
- Intégrations
- Résolution des problèmes
Guide de l'utilisateur d'Orchestrator
Vous pouvez créer et gérer des proxys pour vos propres magasins d'informations d'identification personnalisés, ce qui vous permet de contrôler individuellement la sécurité de vos informations d'identification.
Type de proxy
Vous pouvez choisir entre ces deux types :
- Proxy connecté (géré par Orchestrator)
- lorsqu'un robot demande des informations d'identification, Orchestrator les récupère à partir du proxy et les transmet au robot.
Figure 1. Architecture du proxy connecté

- Proxy déconnecté (géré par le service de proxy) (Disconnected proxy (Managed by the proxy service) : lorsqu'un robot demande des informations d'identification, celles-ci sont récupérées directement à partir du proxy, sans passer par Orchestrator. Ce type n'est compatible qu'avec les Robots version 23.10 et ultérieure.
Figure 2. Architecture du proxy déconnecté 
- Credentials Proxy en mode déconnecté est disponible uniquement si vous êtes sur le plan de licence Enterprise - Avancé .
- Si vous souhaitez récupérer des informations d’identification d’un proxy déconnecté, vous devez utiliser les versions minimales suivantes : 2.0.1 pour le proxy et 24.3 pour le module d’activités système.
Configuration déconnectée
Dans la configuration déconnectée, le service Orchestrator Credentials Proxy fonctionne de manière semblable à celui de la configuration connectée, à quelques différences clés près.
Spécifiez dans le fichier appsettings.json que le proxy doit démarrer dans son mode déconnecté. Pour ce faire, sous AppSettings, définissez le paramètre CredentialsProxyType sur la valeur Disconnected.
Cela indique au proxy de faire les choses un peu différemment au démarrage et de lire la configuration de son magasin sécurisé dans le fichier appsettings.json. Si le paramètre est manquant ou si la valeur est différente, le proxy démarre en mode connecté.
Dans le fichier appsettings.json, spécifiez que le proxy doit démarrer en mode déconnecté. Pour ce faire, sous AppSettings, définissez le paramètre CredentialsProxyType sur la valeur Disconnected.
{
...
"AppSettings": {
...
"CredentialsProxyType": "Disconnected",
...
}
}
{
...
"AppSettings": {
...
"CredentialsProxyType": "Disconnected",
...
}
}
Cela indique au proxy de faire les choses un peu différemment au démarrage et de lire la configuration de son magasin sécurisé dans le fichier appsettings.json. Si le paramètre est manquant ou si la valeur est différente, le proxy démarre en mode connecté.
Configurations du magasin sécurisé
Chaque entrée de configuration doit contenir :
- Key: identifiant unique utilisé dans Orchestrator lors de la liaison des magasins. Il doit être unique dans la liste des configurations
- Type : le type de magasin sécurisé (tel que Azure Key Vault, BeyondTrust, CyberArk, HashiCorp Coffre, InMemory et autres).
- Contexte : les données nécessaires à l'implémentation de Secure Store, qui varient selon le type de magasin.
Examinez l'exemple de configuration de magasin sécurisé suivant :
{
...
"AppSettings": {
...
"SecureStoreConfigurations": [
{
"Key": "SecureStoreKey1",
"Type": "AzureKeyVault (read only)",
"Context": {
"KeyVaultUri": "{someUri}",
"DirectoryId": "{someDirectoryId}",
"ClientId": "{someClientId}",
"ClientSecret": "{someClientSecret}"
}
},
{
"Key": "SecureStoreKey2",
"Type": "BeyondTrust Password Safe - Managed Accounts",
"Context": {
"Hostname": "{someHost}",
"APIRegistrationKey": "{someApiKey}",
"APIRunAsUsername": "{someApiUsername}",
"DefaultManagedSystemName": "",
"SystemAccountDelimiter": "/",
"ManagedAccountType": "system"
}
},
{
"Key": "InMemoryKey1",
"Type": "InMemorySecureStore",
"Context": {
}
}
]
...
}
}
{
...
"AppSettings": {
...
"SecureStoreConfigurations": [
{
"Key": "SecureStoreKey1",
"Type": "AzureKeyVault (read only)",
"Context": {
"KeyVaultUri": "{someUri}",
"DirectoryId": "{someDirectoryId}",
"ClientId": "{someClientId}",
"ClientSecret": "{someClientSecret}"
}
},
{
"Key": "SecureStoreKey2",
"Type": "BeyondTrust Password Safe - Managed Accounts",
"Context": {
"Hostname": "{someHost}",
"APIRegistrationKey": "{someApiKey}",
"APIRunAsUsername": "{someApiUsername}",
"DefaultManagedSystemName": "",
"SystemAccountDelimiter": "/",
"ManagedAccountType": "system"
}
},
{
"Key": "InMemoryKey1",
"Type": "InMemorySecureStore",
"Context": {
}
}
]
...
}
}
Le paramètre SecureStoreConfigurations est un tableau de configurations, vous pouvez donc avoir autant de configurations que vous le souhaitez. Plusieurs configurations d'un même type sont prises en charge, tant que les valeurs Key sont uniques.
Validation au démarrage
Lorsqu'il s'exécute en mode déconnecté, le proxy effectue une validation au démarrage :
- Valide que les configurations requises existent dans
appsettings.json. - Vérifie qu'aucune clé en double ne se trouve dans
SecureStoreConfigurations. - Confirme que toutes les valeurs
Typesont valides. - Valide la connectivité du coffre (appels
ValidateContextAsyncpour chaque magasin).
Paramètres du niveau proxy
Certains magasins d'informations d'identification sécurisés nécessitent une configuration au niveau de l'hôte, qui doit être spécifiée dans appsettings.Production.json :
- CyberArk: les paramètres tels que
CLIPasswordSDKExePath,UsePowerShellCLI, etAdditionalAllowedCharactersdoivent être définis sousAppSettings.{ // ... "AppSettings": { "Plugins.SecureStores.CyberArk.CLIPasswordSDKExePath": "D:\\SomePath\\CLIPasswordSDK.exe", // ... } // ... }{ // ... "AppSettings": { "Plugins.SecureStores.CyberArk.CLIPasswordSDKExePath": "D:\\SomePath\\CLIPasswordSDK.exe", // ... } // ... } - CyberArkCCP: peut nécessiter
Plugins.SecureStores.CyberArkCCP.KeyStorageFlags = "MachineKeySet".{ // ... "AppSettings": { "Plugins.SecureStores.CyberArkCCP.KeyStorageFlags": "MachineKeySet", // ... } // ... }{ // ... "AppSettings": { "Plugins.SecureStores.CyberArkCCP.KeyStorageFlags": "MachineKeySet", // ... } // ... }
Exemples de tests de configuration
Examinez les appsettings.Production.json exemples pratiques suivants.
Avant d’apporter des modifications au fichier appsettings.Production.json, assurez-vous de créer une sauvegarde du fichier d’origine. Cela vous permet de restaurer facilement la configuration initiale ou de comparer les modifications si des problèmes surviennent pendant la configuration.
Exemple 1 : basique
Configuration avec coffre BeyondTrust et Azure Key Vault :
{
"Jwt": {
"Keys": [
"<YourKey>"
]
},
"AppSettings": {
"CredentialsProxyType": "Disconnected",
"SecureStoreConfigurations": [
{
"Key": "SecureStoreKey3",
"Type": "BeyondTrust Password Safe - Team Passwords",
"Context": {
"Hostname": "<Hostname",
"APIRegistrationKey": "<APIRegistrationKey",
"APIRunAsUsername": "<Username>",
"FolderPathPrefix": "/", // default is "/", but it can be changed to anything
"FolderPasswordDelimiter": "/" // default is "/", but it can be changed to anything
}
}
]
}
}
{
"Jwt": {
"Keys": [
"<YourKey>"
]
},
"AppSettings": {
"CredentialsProxyType": "Disconnected",
"SecureStoreConfigurations": [
{
"Key": "SecureStoreKey3",
"Type": "BeyondTrust Password Safe - Team Passwords",
"Context": {
"Hostname": "<Hostname",
"APIRegistrationKey": "<APIRegistrationKey",
"APIRunAsUsername": "<Username>",
"FolderPathPrefix": "/", // default is "/", but it can be changed to anything
"FolderPasswordDelimiter": "/" // default is "/", but it can be changed to anything
}
}
]
}
}
Exemple 2 : journaux supplémentaires et plusieurs configurations
Inclut plusieurs coffres et la journalisation avancée.
{
"Logging": {
"LogLevel": {
"Default": "Trace",
"Microsoft": "Warning",
"Microsoft.Hosting.Lifetime": "Information",
"Microsoft.AspNetCore.HttpLogging.HttpLoggingMiddleware": "Information"
}
},
"Jwt": {
"Keys": [ "<YourKey>" ]
},
"AppSettings": {
"Plugins.SecureStores": "UiPath.Orchestrator.CyberArk.dll;UiPath.Orchestrator.AzureKeyVault.SecureStore.dll;UiPath.Orchestrator.SecureStore.CyberArkCCP.dll;UiPath.Orchestrator.SecureStore.HashiCorpVault.dll;UiPath.Orchestrator.SecureStore.ThycoticSecretServer.dll;UiPath.Orchestrator.SecureStore.BeyondTrust.dll;UiPath.Orchestrator.SecureStore.AWSSecretsManager.dll",
"UseInMemorySecureStore": "true",
"CredentialsProxyType": "Disconnected",
"SecureStoreConfigurations": [
// AzureKeyVault owned by <username>; contact for more info
// Robot externalName: "<name>"
// The expected value of this secret is "<name>"
{
"Key": "SecureStoreKey1",
"Type": "AzureKeyVault (read only)",
"Context": {
"KeyVaultUri": "<VaultURL>",
"DirectoryId": "<DirectoryID>",
"ClientId": "<ClientID>",
"ClientSecret": "<ClientSecret>"
}
},
// In case this fails, check our internal documentation on checking if BeyondTrust is down
// <InternalDocsURL>
// Robot externalName: "<ExternalName>"
{
"Key": "SecureStoreKey2",
"Type": "BeyondTrust Password Safe - Managed Accounts",
"Context": {
"Hostname": "<Hostname>",
"APIRegistrationKey": "<APIRegistrationKey>",
"APIRunAsUsername": "<Username>",
"DefaultManagedSystemName": "",
"SystemAccountDelimiter": "/",
"ManagedAccountType": "system"
}
},
// In case this fails, check our internal documentation on checking if BeyondTrust is down
// <InternalDocsURL>
// Robot externalName: "<ExternalName>"
{
"Key": "SecureStoreKey3",
"Type": "BeyondTrust Password Safe - Team Passwords",
"Context": {
"Hostname": "<Hostname>",
"APIRegistrationKey": "<APIRegistrationKey>",
"APIRunAsUsername": "<Username>",
"FolderPathPrefix": "/", // default is "/", but it can be changed to anything
"FolderPasswordDelimiter": "/" // default is "/", but it can be changed to anything
}
},
{
// asset external name: Operating System-WinDomain
// password: <password>
"Key": "SecureStoreKey1",
"Type": "CyberArk Conjur Cloud (read only)",
"Context": {
"ServiceUrl": "<ServiceURL>",
"LoginName": "<LoginName>",
"ApiKey": "<APIKey>",
"VariableIdPrefix": "data/vault/Safe"
}
},
// Must have an empty context
// No values on startup; should add values using the endpoints before trying trying to get anything
{
"Key": "InMemoryKey1",
"Type": "InMemorySecureStore",
"Context": {
}
}
]
}
}
{
"Logging": {
"LogLevel": {
"Default": "Trace",
"Microsoft": "Warning",
"Microsoft.Hosting.Lifetime": "Information",
"Microsoft.AspNetCore.HttpLogging.HttpLoggingMiddleware": "Information"
}
},
"Jwt": {
"Keys": [ "<YourKey>" ]
},
"AppSettings": {
"Plugins.SecureStores": "UiPath.Orchestrator.CyberArk.dll;UiPath.Orchestrator.AzureKeyVault.SecureStore.dll;UiPath.Orchestrator.SecureStore.CyberArkCCP.dll;UiPath.Orchestrator.SecureStore.HashiCorpVault.dll;UiPath.Orchestrator.SecureStore.ThycoticSecretServer.dll;UiPath.Orchestrator.SecureStore.BeyondTrust.dll;UiPath.Orchestrator.SecureStore.AWSSecretsManager.dll",
"UseInMemorySecureStore": "true",
"CredentialsProxyType": "Disconnected",
"SecureStoreConfigurations": [
// AzureKeyVault owned by <username>; contact for more info
// Robot externalName: "<name>"
// The expected value of this secret is "<name>"
{
"Key": "SecureStoreKey1",
"Type": "AzureKeyVault (read only)",
"Context": {
"KeyVaultUri": "<VaultURL>",
"DirectoryId": "<DirectoryID>",
"ClientId": "<ClientID>",
"ClientSecret": "<ClientSecret>"
}
},
// In case this fails, check our internal documentation on checking if BeyondTrust is down
// <InternalDocsURL>
// Robot externalName: "<ExternalName>"
{
"Key": "SecureStoreKey2",
"Type": "BeyondTrust Password Safe - Managed Accounts",
"Context": {
"Hostname": "<Hostname>",
"APIRegistrationKey": "<APIRegistrationKey>",
"APIRunAsUsername": "<Username>",
"DefaultManagedSystemName": "",
"SystemAccountDelimiter": "/",
"ManagedAccountType": "system"
}
},
// In case this fails, check our internal documentation on checking if BeyondTrust is down
// <InternalDocsURL>
// Robot externalName: "<ExternalName>"
{
"Key": "SecureStoreKey3",
"Type": "BeyondTrust Password Safe - Team Passwords",
"Context": {
"Hostname": "<Hostname>",
"APIRegistrationKey": "<APIRegistrationKey>",
"APIRunAsUsername": "<Username>",
"FolderPathPrefix": "/", // default is "/", but it can be changed to anything
"FolderPasswordDelimiter": "/" // default is "/", but it can be changed to anything
}
},
{
// asset external name: Operating System-WinDomain
// password: <password>
"Key": "SecureStoreKey1",
"Type": "CyberArk Conjur Cloud (read only)",
"Context": {
"ServiceUrl": "<ServiceURL>",
"LoginName": "<LoginName>",
"ApiKey": "<APIKey>",
"VariableIdPrefix": "data/vault/Safe"
}
},
// Must have an empty context
// No values on startup; should add values using the endpoints before trying trying to get anything
{
"Key": "InMemoryKey1",
"Type": "InMemorySecureStore",
"Context": {
}
}
]
}
}
Exemple 3 : chemin d'accès personnalisé au journal et InMemoryStore
{
"NLog": {
"throwConfigExceptions": true,
"targets": {
"logfile": {
"type": "File",
"maxArchiveFiles": 180,
"fileName": "<FileName>",
"layout": "${longdate} ${logger} ${message}${onexception:${newline}${exception:maxInnerExceptionLevel=10:format=shortType,message,stacktrace:separator=*:innerExceptionSeparator=
	}}"
}
},
"rules": [
{
"logger": "*",
"minLevel": "Information",
"writeTo": "logconsole,logfile,eventLog"
}
]
},
"Logging": {
"LogLevel": {
"Default": "Information",
"Microsoft.AspNetCore": "Warning"
}
},
"Jwt": {
"Keys": [
"<YourKey>"
]
},
"AppSettings": {
"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",
"UseInMemorySecureStore": "true",
"CredentialsProxyType": "Disconnected",
"SecureStoreConfigurations": [
{
"Key": "InMemoryKey1",
"Type": "InMemorySecureStore",
"Context": {}
}
]
}
}
{
"NLog": {
"throwConfigExceptions": true,
"targets": {
"logfile": {
"type": "File",
"maxArchiveFiles": 180,
"fileName": "<FileName>",
"layout": "${longdate} ${logger} ${message}${onexception:${newline}${exception:maxInnerExceptionLevel=10:format=shortType,message,stacktrace:separator=*:innerExceptionSeparator=
	}}"
}
},
"rules": [
{
"logger": "*",
"minLevel": "Information",
"writeTo": "logconsole,logfile,eventLog"
}
]
},
"Logging": {
"LogLevel": {
"Default": "Information",
"Microsoft.AspNetCore": "Warning"
}
},
"Jwt": {
"Keys": [
"<YourKey>"
]
},
"AppSettings": {
"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",
"UseInMemorySecureStore": "true",
"CredentialsProxyType": "Disconnected",
"SecureStoreConfigurations": [
{
"Key": "InMemoryKey1",
"Type": "InMemorySecureStore",
"Context": {}
}
]
}
}
Création d'un Credentials Proxy
Une fois que vous avez installé l'Orchestrator Credentials Proxy, vous pouvez créer un proxy personnalisé qui contient vos magasins d'informations d'identification personnalisés.
Figure 3. Page Ajouter Credentials Proxy 
Pour ce faire, effectuez les étapes ci-dessous :
- Au niveau du locataire, sélectionnez Identifiants > Proxies > Ajouter Credentials Proxy. La fenêtre Ajouter Credentials Proxy s'affiche.
- Choisissez soit Proxy connecté (géré par Orchestrator) (Connected proxy (Managed by Orchestrator) ou proxy déconnecté (géré par le service proxy) (Disconnected proxy (Managed by the proxy service).
- Donnez un nom à votre proxy.
- Ajoutez l'URL relative à la machine virtuelle incluse dans la configuration du Orchestrator Credentials Proxy.
- Ajoutez la clé.
Pour le proxy connecté, selon la méthode d'installation, il s'agit soit de la clé secrète générée par le programme d'installation .msi, soit celle détenue par le paramètre Jwt:Keys.
Pour le proxy déconnecté, il doit s'agir d'une clé qui existe déjà dans l'un des fichiers de configuration locaux du proxy déconnecté.
Les informations que vous fournissez aux étapes 4 et 5 créent le lien entre Orchestrator et l'installation qui contient vos plug-ins de magasin d'informations d'identification personnalisés.
- Sélectionnez Créer.
Vous pouvez ensuite ajouter le magasin souhaité comme suit :
- Au niveau du locataire, sélectionnez Identifiants > Magasins > Ajouter un magasin Credential pour ajouter un magasin Credential.
- Dans la liste Proxy, sélectionnez le proxy que vous venez de créer.
- Dans la liste Type, sélectionnez le magasin d'informations d'identification tiers défini par votre plug-in.
- Fournissez la clé de configuration correspondant à celle du fichier de configuration local du proxy.
Remarque :
Pour les configurations déconnectées, assurez-vous que les clés utilisées dans Orchestrator correspondent à celles définies dans le fichier de configuration du proxy. Pour les configurations connectées, Orchestrator gère automatiquement les configurations.
Editing a credentials proxy
To edit a proxy, click More Actions > Edit. The Edit Credentials Proxy page is displayed, allowing you to change the name, URL, or key as needed.
Supprimer Credentials Proxy
Pour supprimer un proxy, sélectionnez Autres actions > Supprimer.Si le proxy sélectionné est utilisé, une boîte de dialogue d'avertissement s'affiche, indiquant le nombre de robots et de ressources qui seront affectés. Sélectionnez Oui pour confirmer la suppression ou Non pour annuler.
Figure 4. Onglet Proxies

- Type de proxy
- Configuration déconnectée
- Configurations du magasin sécurisé
- Validation au démarrage
- Paramètres du niveau proxy
- Exemples de tests de configuration
- Exemple 1 : basique
- Exemple 2 : journaux supplémentaires et plusieurs configurations
- Exemple 3 : chemin d'accès personnalisé au journal et InMemoryStore
- Création d'un Credentials Proxy
- Editing a credentials proxy
- Supprimer Credentials Proxy