- Erste Schritte
- Best Practices
- Mandant
- Über den Kontext „Mandant“
- Suche nach Ressourcen in einem Mandanten
- Verwaltung von Robotern
- Verbindung von Robotern mit Orchestrator
- Speicherung von Roboterzugangsdaten in CyberArk
- Speichern der Kennwörter von Unattended-Robotern im Azure Key Vault (schreibgeschützt)
- Speichern der Anmeldeinformationen von Unattended-Robotern im HashiCorp Vault (schreibgeschützt)
- Speichern der Anmeldeinformationen von Unattended-Robotern im AWS Secrets Manager (schreibgeschützt)
- Löschen von getrennten und nicht reagierenden Unattended-Sitzungen
- Roboter-Authentifizierung
- Roboter-Authentifizierung mit Client-Anmeldeinformationen
- Konfigurieren von Automatisierungsfunktionen
- Solutions (Lösungen)
- Audit
- Einstellungen
- Registrierung
- Cloud Robots
- Übersicht über Cloud Robots
- Ausführen von Unattended-Automatisierungen mit Cloud Robot – VM
- Hochladen Ihres eigenen Image
- Wiederverwenden von benutzerdefinierten Maschinen-Images (für manuelle Pools)
- Zurücksetzen der Anmeldeinformationen für eine Maschine (für manuelle Pools)
- Überwachung
- Sicherheitsupdates
- Testversion anfordern
- Häufig gestellte Fragen
- Konfigurieren einer VPN für Cloud-Roboter
- Konfigurieren einer ExpressRoute-Verbindung
- Live-Streaming und Remotesteuerung
- Events
- Anzeigen und Zugreifen auf Benachrichtigungen
- Anzeigen und Zugreifen auf E-Mail-Benachrichtigungen
- Es werden nur ungelesene Benachrichtigungen angezeigt
- Alle Benachrichtigungen als gelesen markieren
- Alle Benachrichtigungen löschen
- Löschen von Benachrichtigungen
- Abonnieren von Ereignissen
- Abbestellen von Ereignissen
- Automation Suite-Roboter
- Ordnerkontext
- Prozesse
- Jobs
- Apps
- Auslöser
- Protokolle
- Überwachung
- Indizes
- Warteschlangen
- Assets
- Über Assets
- Verwalten von Assets in Orchestrator
- Verwalten von Assets in Studio
- Speichern von Assets im Azure Key Vault (schreibgeschützt)
- Speichern von Assets im HashiCorp Vault (schreibgeschützt)
- Speichern von Assets im AWS Secrets Manager (schreibgeschützt)
- Speichern von Assets in Google Secret Manager (schreibgeschützt)
- Verbindungen
- Geschäftsregeln
- Speicher-Buckets
- MCP-Server
- Testverfahren in Orchestrator
- Ressourcenkatalogdienst
- Integrationen
- Fehlersuche und ‑behebung

Orchestrator-Anleitung
Managing credential proxies
Sie können Proxys für Ihre eigenen benutzerdefinierten Anmeldeinformationsspeicher erstellen und verwalten, sodass Sie die Sicherheit Ihrer Anmeldeinformationen individuell steuern können.
Proxy-Typen
Sie können zwischen diesen beiden Typen wählen:
- Verbundener Proxy (verwaltet von Orchestrator)
- Wenn ein Roboter Anmeldeinformationen anfordert, ruft der Orchestrator sie vom Proxy ab und übergibt sie an den Roboter.
Abbildung 1. Verbundene Proxy-Architektur

- Getrennter Proxy (verwaltet vom Proxydienst) – Wenn ein Roboter Anmeldeinformationen anfordert, werden diese direkt vom Proxy abgerufen, ohne dass der Orchestrator verwendet werden muss. Dieser Typ ist nur mit Robot-Version 23.10+ kompatibel.
Abbildung 2. Abgetrennte Proxy-Architektur 
- Der Proxy für getrennte Anmeldeinformationen ist nur verfügbar, wenn Sie sich im Enterprise – Advanced- Lizenzierungsplan befinden.
- Wenn Sie getrennte Proxy-Anmeldeinformationen abrufen möchten, müssen Sie die folgenden Mindestversionen verwenden: 2.0.1 für den Proxy und 24.3 für das System-Aktivitätspaket.
Getrennte Einrichtung
Der Credential Proxy des Orchestrators in der getrennten Form funktioniert mit einigen wesentlichen Unterschieden ähnlich wie die verbundene Konfiguration.
Geben Sie in der Datei appsettings.json an, dass der Proxy im getrennten Modus starten soll. Legen Sie dazu unter AppSettings den Parameter CredentialsProxyType auf den Wert Disconnected fest.
Dadurch wird der Proxy angewiesen, beim Start etwas anders zu verfahren und die Konfiguration seines sicheren Speichers aus der Datei appsettings.json zu lesen. Wenn der Parameter fehlt oder ein anderer Wert eingegeben ist, wird der Proxy im vernetzten Modus gestartet.
Geben Sie in der Datei appsettings.json an, dass der Proxy im getrennten Modus starten soll. Legen Sie dazu unter AppSettings den Parameter CredentialsProxyType auf den Wert Disconnected fest.
{
...
"AppSettings": {
...
"CredentialsProxyType": "Disconnected",
...
}
}
{
...
"AppSettings": {
...
"CredentialsProxyType": "Disconnected",
...
}
}
Dadurch wird der Proxy angewiesen, beim Start etwas anders zu verfahren und die Konfiguration des sicheren Speichers aus der Datei appsettings.json zu lesen. Wenn der Parameter fehlt oder ein anderer Wert eingegeben ist, wird der Proxy im vernetzten Modus gestartet.
Sichere Speicherkonfigurationen
Jeder Konfigurationseintrag muss Folgendes enthalten:
- Schlüssel: eindeutiger Bezeichner, der im Orchestrator beim Verknüpfen von Speicher verwendet wird. Dieser muss in der Liste der Konfigurationen eindeutig sein
- Typ: der Typ des sicheren Tresors (z. B. Azure Key Vault, BeyondTrust, CyberArk, HashiCorp Tresor, InMemory und andere).
- Kontext: Die von der Implementierung von Secure Store benötigten Daten, die sich je nach Speichertyp unterscheiden.
Sehen Sie sich folgendes Beispiel für die Konfiguration eines sicheren Tresors an:
{
...
"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": {
}
}
]
...
}
}
Der Parameter SecureStoreConfigurations ist ein Array von Konfigurationen, sodass Sie so viele Konfigurationen haben können, wie Sie möchten. Mehrere Konfigurationen desselben Typs werden unterstützt, sofern die Key -Werte eindeutig sind.
Validierung beim Start
Wenn der Proxy im getrennten Modus ausgeführt wird, führt er beim Start eine Validierung durch:
- Er validiert, ob die erforderlichen Konfigurationen in
appsettings.jsonvorhanden sind. - Er überprüft, ob in
SecureStoreConfigurationskeine doppelten Schlüssel gefunden werden. - Er bestätigt, dass alle Werte
Typegültig sind. - Er validiert die Tresor-Konnektivität (ruft
ValidateContextAsyncfür jeden Tresor auf).
Einstellungen auf Proxyebene
Für einige sichere Tresore für Zugangsdaten ist eine Konfiguration auf Hostebene erforderlich, die in appsettings.Production.json wie folgt zu spezifizieren ist:
- CyberArk: Einstellungen wie
CLIPasswordSDKExePath,UsePowerShellCLIundAdditionalAllowedCharactersmüssen unterAppSettingsdefiniert werden.{ // ... "AppSettings": { "Plugins.SecureStores.CyberArk.CLIPasswordSDKExePath": "D:\\SomePath\\CLIPasswordSDK.exe", // ... } // ... }{ // ... "AppSettings": { "Plugins.SecureStores.CyberArk.CLIPasswordSDKExePath": "D:\\SomePath\\CLIPasswordSDK.exe", // ... } // ... } - CyberArkCCP: erfordert möglicherweise
Plugins.SecureStores.CyberArkCCP.KeyStorageFlags = "MachineKeySet".{ // ... "AppSettings": { "Plugins.SecureStores.CyberArkCCP.KeyStorageFlags": "MachineKeySet", // ... } // ... }{ // ... "AppSettings": { "Plugins.SecureStores.CyberArkCCP.KeyStorageFlags": "MachineKeySet", // ... } // ... }
Konfigurationstestbeispiele
Sehen Sie sich folgende Beispiele appsettings.Production.json aus der Praxis an.
Bevor Sie Änderungen an der Datei appsettings.Production.json vornehmen, stellen Sie sicher, dass Sie eine Sicherungskopie der Originaldatei erstellen.Auf diese Weise können Sie die ursprüngliche Konfiguration einfach wiederherstellen oder Änderungen vergleichen, wenn während der Einrichtung Probleme auftreten.
Beispiel 1: Basic
Konfiguration mit BeyondTrust und Azure Key Tresor:
{
"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
}
}
]
}
}
Beispiel 2: Zusätzliche Protokolle und mehrere Konfigurationen
Enthält mehrere Tresore und eine erweiterte Protokollierung.
{
"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": {
}
}
]
}
}
Beispiel 3: Benutzerdefinierter Protokollpfad und 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": {}
}
]
}
}
Erstellen eines Credentials Proxys
Nachdem Sie den Orchestrator Credentials Proxy installiert haben, können Sie einen benutzerdefinierten Proxy erstellen, der Ihre benutzerdefinierten Anmeldeinformationsspeicher enthält.
Abbildung 3. Seite „Credentials Proxy hinzufügen“ 
Führen Sie dazu die folgenden Schritte aus:
- Wählen Sie auf Mandantenebene Anmeldeinformationen > Proxys > Credentials Proxy hinzufügen aus. Das Fenster Credentials Proxy hinzufügen wird angezeigt.
- Wählen Sie entweder Verbundener Proxy (verwaltet von Orchestrator) oder Getrennter Proxy (verwaltet vom Proxydienst) aus.
- Fügen Sie einen Namen für Ihren Proxy hinzu.
- Fügen Sie die URL der virtuellen Maschine hinzu, die im Orchestrator Credentials Proxy-Setup enthalten ist.
- Fügen Sie den Schlüssel hinzu.
Für den verbundenen Proxy ist dies, je nach Installationsmethode, entweder der geheime Schlüssel, der vom generiert wird oder der, den der Parameter Jwt:Keys enthält.
Für den getrennten Proxy muss dies ein Schlüssel sein, der bereits in einer der lokalen Konfigurationsdateien des getrennten Proxys vorhanden ist.
Die Informationen, die Sie in den Schritten 4 und 5 angeben, erstellen die Verknüpfung zwischen dem Orchestrator und der Installation, die Ihre benutzerdefinierten Plugins für den Anmeldeinformationsspeicher enthält.
- Wählen Sie Erstellen.
Sie können dann den gewünschten Store wie folgt hinzufügen:
- Wählen Sie auf Mandantenebene Anmeldeinformationen > Speicher > Anmeldeinformationsspeicher hinzufügen aus, um einen Anmeldeinformationsspeicher hinzuzufügen.
- Wählen Sie in der Liste Proxy den Proxy aus, den Sie gerade erstellt haben.
- Wählen Sie in der Liste Typ den von Ihrem Plugin definierten externen Anmeldeinformationsspeicher aus.
- Geben Sie den Konfigurationsschlüssel an, der mit dem in der lokalen Proxykonfigurationsdatei übereinstimmt.
Hinweis:
Stellen Sie bei getrennten Setups sicher, dass die im Orchestrator verwendeten Schlüssel mit den in der Proxykonfigurationsdatei definierten Schlüsseln übereinstimmen. Für verbundene Setups verwaltet Orchestrator die Konfigurationen automatisch.
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.
Löschen eines Credentials Proxys
Um einen Proxy zu löschen, wählen Sie Weitere Aktionen > Entfernen. Wird der ausgewählte Proxy verwendet, erscheint ein Warndialog mit einer Auflistung mit der Anzahl an betroffenen Robotern und Assets. Wählen Sie Ja, um das Entfernen zu bestätigen oder Nein, um die Aktion abzubrechen.
Abbildung 4. Registerkarte „Proxys“

- Proxy-Typen
- Getrennte Einrichtung
- Sichere Speicherkonfigurationen
- Validierung beim Start
- Einstellungen auf Proxyebene
- Beispiele für Konfigurationstests
- Beispiel 1: Basic
- Beispiel 2: Zusätzliche Protokolle und mehrere Konfigurationen
- Beispiel 3: Benutzerdefinierter Protokollpfad und InMemoryStore
- Erstellen eines Credentials Proxys
- Editing a credentials proxy
- Löschen eines Credentials Proxys