UiPath Documentation
orchestrator
latest
false
Orchestrator-Anleitung
Wichtig :
Es kann 1–2 Wochen dauern, bis die Lokalisierung neu veröffentlichter Inhalte verfügbar ist.

Der Orchestrator Credentials Proxy

Richten Sie den Orchestrator Credentials Proxy ein, um benutzerdefinierte Plugins für den Anmeldeinformationsspeicher mit dem Orchestrator zu verbinden.

Sie können dem Orchestrator Ihre eigenen Anmeldeinformationsspeicher hinzufügen, um die Sicherheit Ihrer Verbindungsdaten unabhängig zu steuern.

To do that, you can load your desired credential store plugins, in the form of .dll files, to the Orchestrator Credentials Proxy web service. The installation kit contains all plugins supported by UiPath, but you can also develop your own plugin .dll files to load.

This service then makes your plugins available to Orchestrator via a proxy, which is created in Orchestrator based on the public URL and the secret key generated by the proxy.

Bekanntes Problem

Custom port reset to 443 after an upgrade

This issue applies only if the Orchestrator Credentials Proxy is configured to use a port other than the default 443.

Wenn Sie ein Upgrade von einer Version zwischen 1.0.0 und 2.0.1 durchführen und einen benutzerdefinierten Port verwendet haben, wird der lokale Port in der Eingangsregel UiPathOrchestratorCredentialsProxy automatisch in 443 geändert (Standard). Dadurch kann die Verbindung mit dem Proxy nicht hergestellt werden.

Um dies zu umgehen, müssen Sie den lokalen Port in der Eingangsregel beim Upgrade manuell ändern.

Installation

Der Orchestrator Credentials Proxy kann entweder über ein MSI-Installationsprogramm oder über ein Docker-Image, das von UiPath bereitgestellt wird.

Über das .msi-Installationsprogramm

Voraussetzungen

The Orchestrator Credentials Proxy is an ASP.NET Core web application hosted in IIS, so you can install it on any Windows edition that can host IIS 8.0 or later. This includes both Windows Server and the Windows 10 and Windows 11 clients. Windows Server is not a requirement.

Hardwareanforderungen

These are the minimum requirements for running the proxy on a Windows machine with IIS. The actual resource needs vary depending on individual usage.

CPU-CoresRAM
24 GB
Softwareanforderungen

The machine that hosts the proxy must meet the following requirements:

  • Operating system - any Windows edition that supports IIS 8.0 or later. Windows Server 2012 R2, 2016, 2019, 2022, and 2025 all meet this requirement, as do Windows 10 and Windows 11.
  • IIS - version 8.0 or later.
  • .NET Hosting Bundle - version 10.0 or later for Orchestrator Credentials Proxy 2.2.2 and later, which runs on .NET 10. Proxy versions earlier than 2.2.2 require version 3.1 or later. The bundle installs both the ASP.NET Core Runtime and the ASP.NET Core IIS Module, which the proxy needs in order to run under IIS.
    Wichtig:

    If you upgrade to Orchestrator Credentials Proxy 2.2.2 or later from an earlier version, install the .NET 10 Hosting Bundle on the host machine and restart IIS before you start the upgraded proxy. Without it, the proxy fails to start under IIS.

In addition, the following IIS features must be enabled:

  • IIS-DefaultDocument
  • IIS-HttpErrors
  • IIS-StaticContent
  • IIS-RequestFiltering
  • IIS-URLAuthorization
  • IIS-WindowsAuthentication
  • IIS-ASPNET45
  • IIS-ISAPIExtensions
  • IIS-ISAPIFilter
  • IIS-WebSockets
  • IIS-ApplicationInit
  • IIS-ManagementConsole

How you enable these features depends on the Windows edition:

  • Windows Server - use Server Manager > Add Roles and Features.
  • Windows 10 and Windows 11 - use the Turn Windows features on or off utility, under Control Panel > Programs.
Hinweis:

The installer verifies the IIS version, the ASP.NET Core IIS Module, and the IIS features listed above before it installs anything. If any of them are missing, the installation stops and reports what needs to be added.

Installationsschritte

Führen Sie die folgenden Schritte aus, um die Installation durchzuführen:

  1. Laden Sie sich das UiPath Orchestrator Credential Proxy-Installationsprogramm aus dem Customer Portal herunter .
  2. Installieren Sie den Proxy.
Verbundener Proxy
  • Öffentliche URL – Die URL des Orchestrator Credentials Proxys, die öffentlich verfügbar gemacht wird
  • SSL Certificate - the Subject or Thumbprint of the SSL certificate used to secure connections with the Orchestrator Credentials Proxy. This is the SSL certificate installed on the computer or web server hosting the proxy. Note that it must be issued by a public certificate provider, and it needs to be valid for the Public URL.
  • Port - the port corresponding to the Public URL
  • Secret Key - (automatically generated) the key needed for configuring a custom proxy in the Orchestrator interface; make sure to copy it to your clipboard for future use.

Kann manuell geändert werden und ist auch für die Schlüsselrotation geeignet.

Getrennter Proxy

Diese Funktion ist nur verfügbar, wenn Sie den Enterprise – Advanced-Lizenzierungsplan für Flex Pricing oder Enterprise oder Application Test Enterprise für Unified Pricing nutzen.

  • SSL-Zertifikat – Der Betreff oder Fingerabdruck des SSL-Zertifikats, das zum Sichern von Verbindungen mit dem Orchestrator Credentials Proxy verwendet wird. Dies ist das SSL-Zertifikat, das auf dem Computer oder Webserver installiert ist, der den Proxy hostet.
  • Port – Der Port, der der URL entspricht.
  • Secret Key - (automatically generated) the key needed for configuring a custom proxy in the Orchestrator interface; make sure to copy it to your clipboard for future use.

Kann manuell geändert werden und ist auch für die Schlüsselrotation geeignet.

Hinweis:

For the disconnected proxy, robots connect directly to the proxy, without going through Orchestrator. This connection uses HTTPS, on the port configured for the proxy's Public URL (443 by default). See Managing credential store proxies for more information on connected and disconnected proxy types.

Nach der Installation wird der Parameter AppSettings.CredentialsProxyType in der Datei appsettings.Production.json auf „Getrennt“ festgelegt. So erkennt der Proxy den Typ beim Start.

Hinweis:

Die Option Anonyme Authentifizierung muss in IIS auf Aktiviert festgelegt sein, damit der Proxy funktioniert.

Verschlüsseln des Jwt:Keys -Parameters

Um eine zusätzliche Sicherheitsebene hinzuzufügen, können Sie die Parameter Jwt:Keys und SecureStoreConfigurations:Context in Ihrer appsettings.json -Datei verschlüsseln .

Hinweis:

Dies erfordert UiPath.ConfigProtector.exe -Version 1.0.9 oder höher.

Über das Docker-Image

Vorläufige Informationen

Alle Orchestrator-Einstellungen für Credentials Proxy, die bearbeitet werden können, sind in der Datei appsettings.json verfügbar. Die folgenden Parameter sind bei der Ersteinrichtung wichtig:

  • Jwt:Keys – (anfänglich leer) Dieses Array von Strings wird verwendet, um die Authentifizierung des Proxys einzurichten. Dies ist der geheime Schlüssel, den Sie während des Proxy-Erstellungsprozesses verwenden und der es Orchestrator ermöglicht, Daten erfolgreich vom Proxy abzurufen. Alle ungültigen Werte werden ignoriert. Wenn keine gültigen Werte gefunden werden, wird der Proxy nicht gestartet.

Die geheimen Schlüssel müssen sich in base64 befinden und können mithilfe eines der folgenden PowerShell-Skripts generiert werden.

$bytes = [System.Security.Cryptography.RandomNumberGenerator]::GetBytes(64)
$jwtSigningKey = [Convert]::ToBase64String($bytes);
Write-Host $jwtSigningKey
$bytes = [System.Security.Cryptography.RandomNumberGenerator]::GetBytes(64)
$jwtSigningKey = [Convert]::ToBase64String($bytes);
Write-Host $jwtSigningKey

Das obige Skript generiert 64 zufällige Bytes (mit SeccureRandom) und konvertiert sie in einen base64-String.

[Byte[]] $bytes = 1..64
$rng = New-Object System.Security.Cryptography.RNGCryptoServiceProvider
$rng.GetBytes($bytes)
$jwtSigningKey = [Convert]::ToBase64String($bytes);
Write-Host $jwtSigningKey
[Byte[]] $bytes = 1..64
$rng = New-Object System.Security.Cryptography.RNGCryptoServiceProvider
$rng.GetBytes($bytes)
$jwtSigningKey = [Convert]::ToBase64String($bytes);
Write-Host $jwtSigningKey
  • appSettings:Plugins.SecureStores – (ursprünglich auf die im Orchestrator verfügbaren Standard-Anmeldeinformationsspeicher festgelegt) Dies ist ein CSV-String, der verwendet wird, um anzugeben, welche DLL- vom Datenträger (von path/plugins) geladen werden sollen, damit sichere Speicher vom Proxy verwendet werden können. Das Hinzufügen ungültiger Assemblys zur Liste unterbricht den Start nicht, aber Sie erhalten Protokollfehler, wenn Sie versuchen, sie bereitzustellen.
  • appSettings:SigningCredentialSettings:FileLocation:SigningCredential:FilePath und appSettings:SigningCredentialSettings:FileLocation:SigningCredential:Password – (zunächst ausgeblendet) werden zum Verschlüsseln der Parameter Jwt:Keys und SecureStoreConfigurations:Context verwendet. Dies stellt den Dateipfad zu Ihrem Signaturzertifikat dar.
  • appSettings:SigningCredentialSettings:StoreLocation:Name, appSettings:SigningCredentialSettings:StoreLocation:Location, appSettings:SigningCredentialSettings:StoreLocation:NameType – (zunächst ausgeblendet) werden zum Verschlüsseln der Parameter Jwt:Keys und SecureStoreConfigurations:Context verwendet.
Einrichten und Ausführen des Docker-Images

Führen Sie die folgenden Schritte aus, um den Orchestrator Credentials Proxy mit Docker auszuführen.

  1. Docker-Image herunterladen

Sie können das Image unter http://registry.uipath.com/ herunterladen.

Hinweis:

Stellen Sie sicher, dass Sie die erforderliche Version des Orchestrator Credentials Proxy in die URL aufnehmen. Um beispielsweise das Bild für Version 2.1.4 herunterzuladen, verwenden Sie:

http://registry.uipath.com/orchestrator-credentialsproxy:2.1.4
http://registry.uipath.com/orchestrator-credentialsproxy:2.1.4

Diese URL verweist auf ein Docker-Image und muss über die Docker CLI und nicht über einen Webbrowser aufgerufen werden.

Beachten Sie, dass Version 1.0.0 nur den verbundenen Proxy unterstützt, während die Versionen 2.0.0+ auch den getrennten Proxy unterstützen.

Verwenden Sie diesen Befehl, um das Image abzurufen:

$bytes = [System.Security.Cryptography.RandomNumberGenerator]::GetBytes(64);
$jwtSigningKey = [Convert]::ToBase64String($bytes);
docker run -e LICENSE_AGREEMENT=accept -e Jwt__Keys__0=$jwtSigningKey -p 8000:8080 registry.uipath.com/orchestrator-credentialsproxy:1.0.0
$bytes = [System.Security.Cryptography.RandomNumberGenerator]::GetBytes(64);
$jwtSigningKey = [Convert]::ToBase64String($bytes);
docker run -e LICENSE_AGREEMENT=accept -e Jwt__Keys__0=$jwtSigningKey -p 8000:8080 registry.uipath.com/orchestrator-credentialsproxy:1.0.0

Das ist das standardmäßige UiPath-Image, das die Anmeldeinformationsspeicher enthält, die bereits in Ihrem Cloud-Konto verfügbar sind. Sie können das Image in der Cloud-Umgebung Ihrer Wahl bereitstellen.

Der obige Befehl generiert auch den geheimen Schlüssel.

  1. Erstellen Sie Ihr eigenes benutzerdefiniertes Docker-Image

Sie können Ihr eigenes Docker-Image mit zusätzlichen Assemblys erstellen, das auf dem von UiPath bereitgestellten und in Schritt 1 heruntergeladenen Image basiert. Folgendes ist dafür notwendig:

  1. Erstellen Sie eine neue Dockerfile (zur Veranschaulichung nennen wir sie CustomDockerfile) und fügen Sie Folgendes hinzu:
    FROM {docker-image-path}
    RUN rm -rf ./plugins 
    COPY --chown=1001:0 {path of your custom assemblies} ./plugins 
    ENTRYPOINT ["dotnet", "UiPath.OrchestratorCredentialsProxy.dll"]
    FROM {docker-image-path}
    RUN rm -rf ./plugins 
    COPY --chown=1001:0 {path of your custom assemblies} ./plugins 
    ENTRYPOINT ["dotnet", "UiPath.OrchestratorCredentialsProxy.dll"]
    
    • Ersetzen Sie {docker-image-path} durch den Pfad zum ursprünglichen Docker-Image, das von UiPath bereitgestellt wird.
    • Ersetzen Sie {path of your custom assemblies} durch den Pfad zu Ihren eigenen DLL-Dateien des Anmeldeinformationsspeichers Dateien an.Erfahren Sie, wie Visual Studio diese Dockerfile verwendet, um Ihre Images für ein schnelleres Debuggen zu erstellen.
  2. Generieren Sie das Docker-Image mit diesem Befehl, der den Namen der neu erstellten Dockerfile enthält:
    docker build -f CustomDockerfile . -t customproxy
    docker build -f CustomDockerfile . -t customproxy
    
  3. Führen Sie das Docker-Image aus:
    docker run --publish 8000:8080 -e LICENSE_AGREEMENT="accept" -e Jwt__Keys__0=$jwtSigningKey -e appSettings__Plugins.SecureStores="{your-list-of-assemblies}" customproxy
    docker run --publish 8000:8080 -e LICENSE_AGREEMENT="accept" -e Jwt__Keys__0=$jwtSigningKey -e appSettings__Plugins.SecureStores="{your-list-of-assemblies}" customproxy
    
    • Ersetzen Sie {your-list-of-assemblies} durch die DLL-Dateien der benutzerdefinierten Anmeldeinformationsspeicher, die Sie dem Orchestrator hinzufügen möchten.

So führen Sie das Image mit einem Jwt:Keys-Parameter aus:

  ```
  docker run --publish 8000:8080 -e LICENSE_AGREEMENT="accept" -e Jwt__Keys__0=$jwtSigningKey {docker-image-name}
  ```
  ```
  docker run --publish 8000:8080 -e LICENSE_AGREEMENT="accept" -e Jwt__Keys__0=$jwtSigningKey {docker-image-name}
  ```

So führen Sie das Image mit mehreren Jwt:Keys-Parametern aus:

  ```
  docker run --publish 8000:8080 -e LICENSE_AGREEMENT="accept" -e Jwt__Keys__0==$jwtSigningKey" -e Jwt__Keys__1==$jwtSigningKey" -e Jwt__Keys__2==$jwtSigningKey ... {docker-image-name}
  ```
  * Replace `{docker-image-name}` with the name you set for your custom Docker image.
  ```
  docker run --publish 8000:8080 -e LICENSE_AGREEMENT="accept" -e Jwt__Keys__0==$jwtSigningKey" -e Jwt__Keys__1==$jwtSigningKey" -e Jwt__Keys__2==$jwtSigningKey ... {docker-image-name}
  ```
  * Replace `{docker-image-name}` with the name you set for your custom Docker image.

Um das Image mit einem benutzerdefinierten Wert für den Parameter appSettings:Plugins.SecureStores auszuführen (d. h. mit Ihrem gewünschten Anmeldeinformationsspeicher), ersetzen Sie den Inhalt dieses Parameters durch Ihre eigenen DLL-Dateien für den Anmeldeinformationsspeicher:

  ```
  docker run --publish 8000:8080 -e LICENSE_AGREEMENT="accept" -e Jwt__Keys__0=$jwtSigningKey -e appSettings__Plugins.SecureStores="UiPath.Orchestrator.CyberArk.dll;UiPath.Orchestrator.AzureKeyVault.SecureStore.dll" {docker-image-name}
  ```
  ```
  docker run --publish 8000:8080 -e LICENSE_AGREEMENT="accept" -e Jwt__Keys__0=$jwtSigningKey -e appSettings__Plugins.SecureStores="UiPath.Orchestrator.CyberArk.dll;UiPath.Orchestrator.AzureKeyVault.SecureStore.dll" {docker-image-name}
  ```

4. (optional) Testen Sie das neue Docker-Image

Um Ihr Image zu testen, greifen Sie auf die Swagger-Schnittstelle auf http://localhost:8000/swagger/index.html zu und überprüfen Sie, ob der dedizierte unauthentifizierte Endpunkt /Health funktioniert. Eine erfolgreiche Anforderung gibt eine leere Antwort mit einem HTTP-Status-Code 200 OK zurück.

Konfiguration

Verbundener und getrennter Proxy

Der erste Schritt beim Konfigurieren Ihres Proxy besteht darin, dass Sie benutzerdefinierte .dll- Plugins, die Sie verwenden möchten, dem Ordner C:\Program Files\UiPath\CredentialsProxy\plugins hinzufügen.

Bei einigen Anmeldeinformationsspeichern müssen Sie möglicherweise Einstellungen auf Anwendungs-, Host- oder Proxyebene konfigurieren. Die Einstellungen entsprechen ihren Orchestrator-Pendants. Sie müssen diese Einstellungen in der appsettings.Production.json-Datei des Proxys angeben.

CyberArk

Sie müssen Einstellungen auf Hostebene wie CLIPasswordSDKExePath, UsePowerShellCLI und AdditionalAllowedCharacters unter dem Parameter Appsettings in der appsettings.Production.json-Datei hinzufügen:

{
// ...
  "AppSettings": {
    "Plugins.SecureStores.CyberArk.CLIPasswordSDKExePath": "D:\\PathName\\CLIPasswordSDK.exe",
    // ...
  }
  // ...
}
{
// ...
  "AppSettings": {
    "Plugins.SecureStores.CyberArk.CLIPasswordSDKExePath": "D:\\PathName\\CLIPasswordSDK.exe",
    // ...
  }
  // ...
}

CyberArk CCP

Der Credentials Proxy wird unter einem Dienstkonto ausgeführt, das kein geladenes Benutzerprofil hat. Standardmäßig wird ein Schlüsselspeicher verwendet, der ein geladenes Benutzerprofil erfordert, das für das Dienstkonto nicht verfügbar ist, sodass der private Schlüssel des CyberArk CCP-Clientzertifikats nicht geladen werden kann und der Abruf von Anmeldeinformationen über CyberArk CCP fehlschlägt. Um das Zertifikat in diesem Kontext korrekt zu laden, müssen Sie Folgendes zu appsettings.Production.json hinzufügen:

{
// ...
  "AppSettings": {
    "Plugins.SecureStores.CyberArkCCP.KeyStorageFlags": "MachineKeySet",
    // ...
  }
  // ...
}
{
// ...
  "AppSettings": {
    "Plugins.SecureStores.CyberArkCCP.KeyStorageFlags": "MachineKeySet",
    // ...
  }
  // ...
}

HashiCorp Vault

Um das Kerberos-Authentifizierungsprotokoll zu aktivieren und die Knotenweiterleitung für HashiCorp Vault zu aktivieren, fügen Sie der appsettings.Production.json-Datei folgende Parameter hinzu:

// ...
  "AppSettings": {
    "Plugins.SecureStores.HashiCorp Vault.KerberosEnabled": "true", // Optional, for Kerberos enablement
    "Plugins.SecureStores.HashiCorp Vault.ForwardToActiveNode": "true", // Optional, for forwarding to active node
    // ...
  }
  // ...
}
// ...
  "AppSettings": {
    "Plugins.SecureStores.HashiCorp Vault.KerberosEnabled": "true", // Optional, for Kerberos enablement
    "Plugins.SecureStores.HashiCorp Vault.ForwardToActiveNode": "true", // Optional, for forwarding to active node
    // ...
  }
  // ...
}

HashiCorp Vault (schreibgeschützt)

Um das Kerberos-Authentifizierungsprotokoll zu aktivieren und die Knotenweiterleitung für HashiCorp Vault (schreibgeschützt) zu aktivieren, fügen Sie der appsettings.Production.json-Datei folgende Parameter hinzu:

// ...
  "AppSettings": {
    "Plugins.SecureStores.HashiCorp Vault (read only).KerberosEnabled": "true", // Optional, for Kerberos enablement
    "Plugins.SecureStores.HashiCorp Vault (read only).ForwardToActiveNode": "true", // Optional, for forwarding to active node
    // ...
  }
  // ...
}
// ...
  "AppSettings": {
    "Plugins.SecureStores.HashiCorp Vault (read only).KerberosEnabled": "true", // Optional, for Kerberos enablement
    "Plugins.SecureStores.HashiCorp Vault (read only).ForwardToActiveNode": "true", // Optional, for forwarding to active node
    // ...
  }
  // ...
}

Nur Proxy getrennt

Dieser Proxytyp ist vollständig vom Orchestrator getrennt, deshalb müssen Sie die Informationen für die Anmeldeinformationstresore lokal in der Konfigurationsdatei appsettings.Production.json angeben. Sie finden die Dateien am folgenden Speicherort: C:\Program Files\UiPath\OrchestratorCredentialsProxy\appsettings.Production.json.

Sie müssen die folgenden Felder in der genannten Datei im Abschnitt AppSettingsSecureStoreConfigurations bearbeiten:

  • Key – Der Bezeichnerschlüssel für die Konfiguration
  • Type – Der Anmeldeinformationstresortyp, wie in den .dll- Dateien, konfiguriert über den Parameter Plugins.SecureStores in appsettings.json (siehe Beispiele unten)
  • Context – Die Verbindungsinformationen bezüglich der Implementierung des sicheren Speichers
    Wichtig:

    Nachdem Sie die Konfigurationsdatei bearbeitet haben, müssen Sie den Dienst über IIS neu starten.

Konfigurationsbeispiele

Sie müssen die folgenden Beispiele zur Konfigurationsdatei appsettings.Production.json hinzufügen, um den getrennten Proxy zu starten. Andernfalls wird der Dienst nicht gestartet.

Wählen Sie das geeignete Beispiel basierend auf Ihrem Anmeldeinformationsspeichertyp aus oder fügen Sie mehrere Anmeldeinformationsspeicher hinzu, indem Sie das allerletzte Beispiel auf dieser Seite verwenden.

Sie müssen die folgenden Felder in der genannten Datei im Abschnitt AppSettingsSecureStoreConfigurations bearbeiten:

  • Key – Der Bezeichnerschlüssel für die Konfiguration
  • Type – Der Anmeldeinformationstresortyp, wie in den .dll- Dateien, konfiguriert über den Parameter Plugins.SecureStores in appsettings.json (siehe Beispiele unten)
  • Context – Die Verbindungsinformationen bezüglich der Implementierung des sicheren Speichers
    Wichtig:

    Nachdem Sie die Konfigurationsdatei bearbeitet haben, müssen Sie den Dienst über IIS neu starten.

Hinweis:

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.

AWS Secrets Manager/AWS Secrets Manager (schreibgeschützt)
...
"SecureStoreConfigurations": [
      {
        "Key": "<MyAwsStore>",
        "Type": "AWS Secrets Manager" / "AWS Secrets Manager (read only)",
        "Context": {
          "UseDefaultCredentials": "true",
          "AccessKey": "<AccessKey>",
          "SecretKey": "<SecretKey>",
          "Region": "<SelectedRegion>"
        }
      },
    ]
...
...
"SecureStoreConfigurations": [
      {
        "Key": "<MyAwsStore>",
        "Type": "AWS Secrets Manager" / "AWS Secrets Manager (read only)",
        "Context": {
          "UseDefaultCredentials": "true",
          "AccessKey": "<AccessKey>",
          "SecretKey": "<SecretKey>",
          "Region": "<SelectedRegion>"
        }
      },
    ]
...
Azure Key Vault (schreibgeschützt)
...
"SecureStoreConfigurations": [
      {
        "Key": "<MyAzureStore>",
        "Type": "AzureKeyVault (read only)",
        "Context": {
          "KeyVaultUri": "<KeyVaultUri>",
          "DirectoryId": "<DirectoryId>",
          "ClientId": "<ClientId>",
          "ClientSecret": "<ClientSecret>"
        }
      },
    ]
...
...
"SecureStoreConfigurations": [
      {
        "Key": "<MyAzureStore>",
        "Type": "AzureKeyVault (read only)",
        "Context": {
          "KeyVaultUri": "<KeyVaultUri>",
          "DirectoryId": "<DirectoryId>",
          "ClientId": "<ClientId>",
          "ClientSecret": "<ClientSecret>"
        }
      },
    ]
...
Wichtig:

Azure Key Vault (lesen/schreiben) wird nicht unterstützt.

BeyondTrust Password Safe – Verwaltete Konten
...
"SecureStoreConfigurations": [
      {
        "Key": "<MyBeyondTrustManagedAccountsSafe>",
        "Type": "BeyondTrust Password Safe - Managed Accounts",
        "Context": {
          "Hostname": "<HostName>",
          "APIRegistrationKey": "<ApiRegistrationKey>",
          "APIRunAsUsername": "<Username>",
          "DefaultManagedSystemName": "", // can be empty or a string
          "SystemAccountDelimiter": "/", // default account delimiter is "/", but it can be changed
          "ManagedAccountType": "<ManagedAccountType>" // expected value is one of "system", "domainlinked", "database", "cloud", "application"
        }
      },
    ]
...
...
"SecureStoreConfigurations": [
      {
        "Key": "<MyBeyondTrustManagedAccountsSafe>",
        "Type": "BeyondTrust Password Safe - Managed Accounts",
        "Context": {
          "Hostname": "<HostName>",
          "APIRegistrationKey": "<ApiRegistrationKey>",
          "APIRunAsUsername": "<Username>",
          "DefaultManagedSystemName": "", // can be empty or a string
          "SystemAccountDelimiter": "/", // default account delimiter is "/", but it can be changed
          "ManagedAccountType": "<ManagedAccountType>" // expected value is one of "system", "domainlinked", "database", "cloud", "application"
        }
      },
    ]
...
BeyondTrust Password Safe – Team-Kennwörter
...
"SecureStoreConfigurations": [
      {
        "Key": "<MyBeyondTrustTeamPasswordSafe>",
        "Type": "BeyondTrust Password Safe - Team Passwords",
        "Context": {
          "Hostname": "<HostName>",
          "APIRegistrationKey": "<ApiRegistrationKey>",
          "APIRunAsUsername": "<Username>",
          "FolderPathPrefix" : "/", // default delimiter is "/", but it can be changed
          "FolderPasswordDelimiter" : "/" // default delimiter is "/", but it can be changed
        }
      },
    ]
...
...
"SecureStoreConfigurations": [
      {
        "Key": "<MyBeyondTrustTeamPasswordSafe>",
        "Type": "BeyondTrust Password Safe - Team Passwords",
        "Context": {
          "Hostname": "<HostName>",
          "APIRegistrationKey": "<ApiRegistrationKey>",
          "APIRunAsUsername": "<Username>",
          "FolderPathPrefix" : "/", // default delimiter is "/", but it can be changed
          "FolderPasswordDelimiter" : "/" // default delimiter is "/", but it can be changed
        }
      },
    ]
...
CyberArk – AIM
...
"SecureStoreConfigurations": [
      {
        "Key": "<MyCyberArk>",
        "Type": "CyberArk",
        "Context": {
          "ApplicationId": "<App_MyCyberArk>",
          "Safe": "<Passwords>",
          "Folder": "<MyFolder>"
        }
      },
    ]
...
...
"SecureStoreConfigurations": [
      {
        "Key": "<MyCyberArk>",
        "Type": "CyberArk",
        "Context": {
          "ApplicationId": "<App_MyCyberArk>",
          "Safe": "<Passwords>",
          "Folder": "<MyFolder>"
        }
      },
    ]
...

Alle Einstellungen auf Hostebene, wie z. B. CLIPasswordSDKExePath, UsePowerShellCLI oder AdditionalAllowedCharacters müssen unter dem Parameter Appsettings gespeichert werden, ähnlich wie bei Orchestrator.

{
// ...
  "AppSettings": {
    "Plugins.SecureStores.CyberArk.CLIPasswordSDKExePath": "D:\\<MyPath>\\CLIPasswordSDK.exe",
    "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;UiPath.Orchestrator.SecureStore.GoogleSecretManager.dll;UiPath.Orchestrator.SecureStore.DelineaSecretServer.dll",
    "CredentialsProxyType": "Disconnected"
    // ...
  }
  // ...
{
// ...
  "AppSettings": {
    "Plugins.SecureStores.CyberArk.CLIPasswordSDKExePath": "D:\\<MyPath>\\CLIPasswordSDK.exe",
    "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;UiPath.Orchestrator.SecureStore.GoogleSecretManager.dll;UiPath.Orchestrator.SecureStore.DelineaSecretServer.dll",
    "CredentialsProxyType": "Disconnected"
    // ...
  }
  // ...
CyberArk – CCP
...
"SecureStoreConfigurations": [
      {
        "Key": "<MyCyberArkCCPStore>",
        "Type": "CyberArkCCP",
        "Context": {
          "ApplicationId": "<ApplicationId>",
          "Safe": "<CyberArkSafe>",
          "Folder": "<CyberArkFolder>",
          "WebServiceUrl": "<CentralCredentialProviderUrl>",
          "WebServiceName": "<WebServiceName>",
          "SerializedClientCertificate": "<ClientCertificate>", // must be the ".pfx" file's content as base64 string
          "ClientCertificatePassword": "<ClientCertificatePassword>",
          "SerializedRootCA": "<someServerRootCA>" // must be the ".crt" or ".cer" file's content as base64 string
        }
      },
    ]
...
...
"SecureStoreConfigurations": [
      {
        "Key": "<MyCyberArkCCPStore>",
        "Type": "CyberArkCCP",
        "Context": {
          "ApplicationId": "<ApplicationId>",
          "Safe": "<CyberArkSafe>",
          "Folder": "<CyberArkFolder>",
          "WebServiceUrl": "<CentralCredentialProviderUrl>",
          "WebServiceName": "<WebServiceName>",
          "SerializedClientCertificate": "<ClientCertificate>", // must be the ".pfx" file's content as base64 string
          "ClientCertificatePassword": "<ClientCertificatePassword>",
          "SerializedRootCA": "<someServerRootCA>" // must be the ".crt" or ".cer" file's content as base64 string
        }
      },
    ]
...

Je nach Ihrer IIS-Konfiguration müssen Sie eventuell zusätzliche KeyStorageFlags wie folgt konfigurieren:

"AppSettings": {
...
"Plugins.SecureStores.CyberArkCCP.KeyStorageFlags": "MachineKeySet",
...
}
"AppSettings": {
...
"Plugins.SecureStores.CyberArkCCP.KeyStorageFlags": "MachineKeySet",
...
}

Sie können eine PFX-, CRT- oder CER-Datei wie folgt in eine Zeichenfolge base64 umwandeln:

$fileContentBytes = get-content 'C:\path\to\the.pfx' -Encoding Byte
[System.Convert]::ToBase64String($fileContentBytes) | Out-File 'C:\path\to\the.txt'
$fileContentBytes = get-content 'C:\path\to\the.pfx' -Encoding Byte
[System.Convert]::ToBase64String($fileContentBytes) | Out-File 'C:\path\to\the.txt'
CyberArk® Conjur Cloud (schreibgeschützt)
...
"SecureStoreConfigurations": [
      {
        "Key": "MyCyberArkConjur",
        "Type": "CyberArk Conjur Cloud (read only)",
        "Context": {
          "ServiceUrl": "https://{myCyberArkConjurUrl}/",
          "LoginName": "{myLoginName}",
          "ApiKey": "{myApiKey}",
          "VariableIdPrefix": "{myPrefix}"
        }
      },
    ]
...
...
"SecureStoreConfigurations": [
      {
        "Key": "MyCyberArkConjur",
        "Type": "CyberArk Conjur Cloud (read only)",
        "Context": {
          "ServiceUrl": "https://{myCyberArkConjurUrl}/",
          "LoginName": "{myLoginName}",
          "ApiKey": "{myApiKey}",
          "VariableIdPrefix": "{myPrefix}"
        }
      },
    ]
...
CyberArk® Conjur (schreibgeschützt)
...
"SecureStoreConfigurations": [
  {
    "Key": "MyCyberArkConjur",
    "Type": "CyberArk Conjur (read only)",
    "Context": {
      "ApplianceUrl": "https://{company}.secretsmgr.cyberark.cloud/api",
      "Account": "{myAccount}",
      "AuthenticationType": "{Jwt|ApiKey}",
      "JWT":  {
          "JwtServiceId": "{myJwtServiceId}",
          "IdentityProviderUrl": "{myIdentityProviderUrl}",
          "ClientId": "{myClientId}",
          "ClientSecret": "{myClientSecret}",
          "Scope": "{myScope}"
      },
      "ApiKey": {
          "LoginName": "{myLoginName}",
          "Key": "{myApiKey}"
      },
      "HostId": "{myHostId}",
      "VariableIdPrefix": "{myPrefix}"
    }
  },
]
...
...
"SecureStoreConfigurations": [
  {
    "Key": "MyCyberArkConjur",
    "Type": "CyberArk Conjur (read only)",
    "Context": {
      "ApplianceUrl": "https://{company}.secretsmgr.cyberark.cloud/api",
      "Account": "{myAccount}",
      "AuthenticationType": "{Jwt|ApiKey}",
      "JWT":  {
          "JwtServiceId": "{myJwtServiceId}",
          "IdentityProviderUrl": "{myIdentityProviderUrl}",
          "ClientId": "{myClientId}",
          "ClientSecret": "{myClientSecret}",
          "Scope": "{myScope}"
      },
      "ApiKey": {
          "LoginName": "{myLoginName}",
          "Key": "{myApiKey}"
      },
      "HostId": "{myHostId}",
      "VariableIdPrefix": "{myPrefix}"
    }
  },
]
...
Delinea Secret Server (schreibgeschützt)
Hinweis:

Delinea Secret Server (read only) requires Orchestrator Credentials Proxy 2.2.2 or later. Its plugin, UiPath.Orchestrator.SecureStore.DelineaSecretServer.dll, ships with the installation kit and is listed in Plugins.SecureStores by default, so you do not need to add it manually.

This is a read-only credential store. The proxy can retrieve asset values and robot credentials from it, but cannot create, update, or delete secrets.

...
"SecureStoreConfigurations": [
      {
        "Key": "<MyDelineaServer>",
        "Type": "Delinea Secret Server (read only)",
        "Context": {
          "PlatformServerUrl": "<PlatformServerUrl>",
          "SecretServerUrl": "<SecretServerUrl>",
          "RuleName": "<Rule>",
          "RuleKey": "<Key>",
          "UsernameField": "<Username>",
          "PasswordField": "<Password>"
        }
      },
    ]
...
...
"SecureStoreConfigurations": [
      {
        "Key": "<MyDelineaServer>",
        "Type": "Delinea Secret Server (read only)",
        "Context": {
          "PlatformServerUrl": "<PlatformServerUrl>",
          "SecretServerUrl": "<SecretServerUrl>",
          "RuleName": "<Rule>",
          "RuleKey": "<Key>",
          "UsernameField": "<Username>",
          "PasswordField": "<Password>"
        }
      },
    ]
...

The Context fields are the following:

  • PlatformServerUrl - (mandatory) your Delinea platform URL, for example https://<tenant>.delinea.app.
  • SecretServerUrl - (mandatory) the Secret Server URL, for example https://<tenant>.secretservercloud.eu. To retrieve it, go to the Secret Server connection page in your Delinea tenant.
  • RuleName - (mandatory) the name of the SDK client onboarding rule created in Delinea.
  • RuleKey - (optional) the onboarding key for the rule. Leave it empty if Require onboarding key was not enabled in Delinea. Although this field is optional, we recommend setting it for improved security.
  • UsernameField - (mandatory) the slug name of the Secret Template field that the username is read from, for example username.
  • PasswordField - (mandatory) the slug name of the Secret Template field that the password is read from, for example password.
Hinweis:

During Delinea's ongoing platform migration, both PlatformServerUrl and SecretServerUrl are required. The proxy uses PlatformServerUrl to check that the Delinea platform is reachable, and SecretServerUrl to retrieve the secrets themselves.

You can find the slug name of a Secret Template field in Admin > Secret Templates > Template > Fields. The values of UsernameField and PasswordField are not case-sensitive.

Assets and robot credentials linked to this store must use the numeric Secret ID from Delinea Secret Server as their External Name. String names are not supported.

For the prerequisites and the Delinea-side configuration, such as enabling SDK Client Management and creating the onboarding rule, check the Delinea Secret Server integration section in the Integrating credential stores page.

HashiCorp Vault/HashiCorp Vault (schreibgeschützt)
...
"SecureStoreConfigurations": [
      {
        "Key": "<MyHashiCorp>",
        "Type": "HashiCorp Vault" / "HashiCorp Vault (read only)",
        "Context": {
          "VaultUri": "<VaultUri>",
          "AuthenticationType": "<AppRole>",
          "RoleId": "<RoleId>",
          "SecretId": "<SecretId>",
          "Username": "<Username>",
          "Password": "<Password>",
          "Token": "<Token>",
          "SecretsEngine": "<KeyValueV2>",
          "SecretsEngineMountPath": "<Secret>",
          "DataPath": "<applications/orchestrator>",
          "Namespace": "<orchestrator>"
          "LdapUseDynamicCredentials" : "true"
          "KerberosSPN": "HTTP/vault-spn"
        }
      },
    ]
...
...
"SecureStoreConfigurations": [
      {
        "Key": "<MyHashiCorp>",
        "Type": "HashiCorp Vault" / "HashiCorp Vault (read only)",
        "Context": {
          "VaultUri": "<VaultUri>",
          "AuthenticationType": "<AppRole>",
          "RoleId": "<RoleId>",
          "SecretId": "<SecretId>",
          "Username": "<Username>",
          "Password": "<Password>",
          "Token": "<Token>",
          "SecretsEngine": "<KeyValueV2>",
          "SecretsEngineMountPath": "<Secret>",
          "DataPath": "<applications/orchestrator>",
          "Namespace": "<orchestrator>"
          "LdapUseDynamicCredentials" : "true"
          "KerberosSPN": "HTTP/vault-spn"
        }
      },
    ]
...

Alle Einstellungen auf Hostebene, wie z. B. Plugins.SecureStores.HashiCorp Vault.KerberosEnabled, Plugins.SecureStores.HashiCorp Vault (read only).KerberosEnabled, Plugins.SecureStores.HashiCorp Vault (read only).ForwardToActiveNode oder Plugins.SecureStores.HashiCorp Vault.ForwardToActiveNode, müssen unter dem Appsettings-Parameter festgelegt werden, ähnlich wie für Orchestrator.

{
// ...
  "AppSettings": {
    // Optional, for Kerberos Enablement
    "Plugins.SecureStores.HashiCorp Vault.KerberosEnabled": "true",
    "Plugins.SecureStores.HashiCorp Vault (read only).KerberosEnabled": "true"
    // Optional, for Forwarding to Active node
    "Plugins.SecureStores.HashiCorp Vault.ForwardToActiveNode": "true",
    "Plugins.SecureStores.HashiCorp Vault (read only).ForwardToActiveNode": "true"
    // ...
  }
  // ...
}
{
// ...
  "AppSettings": {
    // Optional, for Kerberos Enablement
    "Plugins.SecureStores.HashiCorp Vault.KerberosEnabled": "true",
    "Plugins.SecureStores.HashiCorp Vault (read only).KerberosEnabled": "true"
    // Optional, for Forwarding to Active node
    "Plugins.SecureStores.HashiCorp Vault.ForwardToActiveNode": "true",
    "Plugins.SecureStores.HashiCorp Vault (read only).ForwardToActiveNode": "true"
    // ...
  }
  // ...
}
Thycotic Secret Server
Wichtig:

The Thycotic Secret Server store is being succeeded by the Delinea Secret Server (read only) store, documented in the section above. Both stores share the same underlying SDK and the same rule-based onboarding mechanism, so the Context fields are largely identical. We highly encourage you to migrate existing Thycotic credential stores to the new Delinea store.

...
"SecureStoreConfigurations": [
      {
        "Key": "<MyThicoticServer>",
        "Type": "Thycotic Secret Server",
        "Context": {
          "SecretServerUrl": "<ServerUrl>",
          "RuleName": "<Rule>",
          "RuleKey": "<Key>",
          "UsernameField": "<Username>",
          "PasswordField": "<Password>"
        }
      },
    ]
...
...
"SecureStoreConfigurations": [
      {
        "Key": "<MyThicoticServer>",
        "Type": "Thycotic Secret Server",
        "Context": {
          "SecretServerUrl": "<ServerUrl>",
          "RuleName": "<Rule>",
          "RuleKey": "<Key>",
          "UsernameField": "<Username>",
          "PasswordField": "<Password>"
        }
      },
    ]
...
Google Secret Manager
...
"SecureStoreConfigurations": [
      {
        "Key": "<GoogleSecretManager>",
        "Type": "Google Secret Manager",
        "Context": {
          "ProjectId": "<ProjectId>",
          "ServiceAccountKeyJson": "<ServiceAccountKeyJson>",
        }
      },
    ]
...
...
"SecureStoreConfigurations": [
      {
        "Key": "<GoogleSecretManager>",
        "Type": "Google Secret Manager",
        "Context": {
          "ProjectId": "<ProjectId>",
          "ServiceAccountKeyJson": "<ServiceAccountKeyJson>",
        }
      },
    ]
...
Google Secret Manager (schreibgeschützt)
...
"SecureStoreConfigurations": [
      {
        "Key": "<GoogleSecretManager>",
        "Type": "Google Secret Manager (read only)",
        "Context": {
          "ProjectId": "<ProjectId>",
          "ServiceAccountKeyJson": "<ServiceAccountKeyJson>",
        }
      },
    ]
...
...
"SecureStoreConfigurations": [
      {
        "Key": "<GoogleSecretManager>",
        "Type": "Google Secret Manager (read only)",
        "Context": {
          "ProjectId": "<ProjectId>",
          "ServiceAccountKeyJson": "<ServiceAccountKeyJson>",
        }
      },
    ]
...
Mehrere Anmeldeinformationsspeicher

Wenn Sie mehrere Anmeldeinformationsspeicher verwenden, können Sie einen unter dem anderen wie folgt hinzufügen:

{
...
  "AppSettings": {
  ...
    "SecureStoreConfigurations": [
      {
        "Key": "<SecureStoreKey1>",
        "Type": "AzureKeyVault (read only)",
        "Context": {
          "KeyVaultUri": "<Uri>",
          "DirectoryId": "<DirectoryId>",
          "ClientId": "<ClientId>",
          "ClientSecret": "<ClientSecret>"
        }
      },
      {
        "Key": "<SecureStoreKey2>",
        "Type": "BeyondTrust Password Safe - Managed Accounts",
        "Context": {
          "Hostname": "<Host>",
          "APIRegistrationKey": "<ApiKey>",
          "APIRunAsUsername": "<ApiUsername>",
          "DefaultManagedSystemName": "",
          "SystemAccountDelimiter": "/",
          "ManagedAccountType": "system"
        }
      }
    ]
  ...
  }
}
{
...
  "AppSettings": {
  ...
    "SecureStoreConfigurations": [
      {
        "Key": "<SecureStoreKey1>",
        "Type": "AzureKeyVault (read only)",
        "Context": {
          "KeyVaultUri": "<Uri>",
          "DirectoryId": "<DirectoryId>",
          "ClientId": "<ClientId>",
          "ClientSecret": "<ClientSecret>"
        }
      },
      {
        "Key": "<SecureStoreKey2>",
        "Type": "BeyondTrust Password Safe - Managed Accounts",
        "Context": {
          "Hostname": "<Host>",
          "APIRegistrationKey": "<ApiKey>",
          "APIRunAsUsername": "<ApiUsername>",
          "DefaultManagedSystemName": "",
          "SystemAccountDelimiter": "/",
          "ManagedAccountType": "system"
        }
      }
    ]
  ...
  }
}

Validierung

Wichtig:

Das gilt nur für den getrennten Credentials Proxy.

Der Proxy validiert die Konfiguration beim Start, wenn der erkannte Typ Disconnected ist.

Das sind einige der Validierungsschritte, die der Proxy ausführt:

  • Der Proxy stellt sicher, dass appsettings.Production.json die erwarteten Konfigurationen enthält, wie im obigen Abschnitt Konfiguration beschrieben.
  • Der Proxy stellt sicher, dass SecureStoreConfigurations keine doppelten Key-Parameter enthält, d. h., dass die in der appsettings.Production.json-Datei konfigurierten Anmeldeinformationsspeicher eindeutig sind.
  • Der Parameter SecureStoreConfigurations ist ein Array von Konfigurationen. Sie können beliebig viele Anmeldeinformationsspeicher hinzufügen, auch vom gleichen Typ. Beispielsweise können Sie mehrere Azure Key Vault-Instanzen (schreibgeschützt) konfigurieren, sofern das Feld Key eindeutig ist.
  • Der Proxy überprüft, ob alle Type-Werte gültig sind.
  • Basierend auf der Implementierung jedes sicheren Speichers prüft der Proxy, ob der Tresor erfolgreich erreicht werden kann.

Protokollierung

Orchestrator Credentials Proxy-Protokolle werden lokal im Ordner C:\Program Files\UiPath\OrchestratorCredentialsProxy gespeichert, wenn der Anwendungspool des Proxys über Schreibberechtigungen für diesen Pfad verfügt. Diese werden in IIS konfiguriert.

Wenn Sie diesem Ordner keine Schreibberechtigungen erteilen möchten, können Sie einen relativen oder absoluten Pfad Ihrer Wahl über den Parameter NLog.targets.logfile.fileName in appsettings.Production.json angeben.

Auf Windows-Maschinen speichert der Proxy auch Protokolle in der Windows-Ereignisanzeige.

Sicherheitsüberlegungen

  • Der Orchestrator lässt nur sichere URLs (HTTPS) für den Proxy zu. Das HTTPS-Zertifikat muss gültig und von einer allgemein anerkannten Zertifizierungsstelle signiert sein. Zertifikate, die selbstsigniert oder von einer internen Stelle signiert sind, werden nicht unterstützt.
  • Der Orchestrator wird über einen geheimen Clientschlüssel validiert, der vom Orchestrator Credentials Proxy generiert wird. Der geheime Clientschlüssel wird in einer Konfigurationsdatei auf der Maschine gespeichert, auf der der Orchestrator Credentials Proxy installiert ist, und wird von Orchestrator verschlüsselt und in der Datenbank gespeichert.
  • Wenn Sie einen Anmeldeinformationsspeicherproxy im Orchestrator bearbeiten und seine URL ändern, müssen Sie den geheimen Clientschlüssel eingeben.
  • Aktionen des Orchestrator Credentials Proxy 2.0.0+ werden in der Windows-Ereignisanzeige protokolliert.
  • Binärdateien müssen auf der Windows-Maschine signiert werden.
  • Das Docker-Image muss signiert sein.

Verwenden des Orchestrator Credentials Proxy mit einem Lastausgleich

Wenn Sie den Proxy in Kombination mit einem Lastausgleich verwenden, stellen Sie sicher, dass Sie die gleiche Konfiguration auf allen Knoten beibehalten.

Elemente, die für alle Knoten identisch bleiben müssen

  • Die Version des Proxy-Installationsprogramms. Wenn Sie z. B. Version 1.0.0 verwenden, müssen auch alle Lastausgleichsknoten 1.0.0 verwenden.
  • Die Einstellungen in den Anwendungskonfigurationsdateien. In den meisten Fällen sind das appsettings.json und appsettings.Production.json. Beachten Sie, dass appsettings.Production.json für jede Installation einzigartig ist, deshalb müssen Sie diese Datei manuell zu jedem Knoten hinzufügen, um die Konsistenz sicherzustellen.
  • Die zu path/plugins hinzugefügten Anmeldeinformationsspeicher-Plugins. Alle von uns unterstützten Plugins befinden sich bereits in diesem Ordner, sodass Sie nur auf die benutzerdefinierten Plugins achten müssen, die Sie hinzufügen.

Wichtige Punkte, die zu beachten sind

  • Wenn Sie Änderungen an der Docker-Image-Konfiguration vornehmen möchten, die wir für die Installation des Proxys bereitstellen, empfehlen wir dringend, stattdessen ein benutzerdefiniertes Docker-Image zu erstellen. Sie sollten dieses benutzerdefinierte Image dann verwenden, um den Proxy auf allen Knoten bereitzustellen.
  • Einige Umgebungsvariablen können Auswirkungen auf die Laufzeit haben. Zum Beispiel Umgebungsvariablen, die appsettings.json-Konfigurationswerte überschreiben, oder solche, die sich auf die .NET-Umgebung auswirken.
  • Sie können den speziellen nicht authentifizierten Endpunkt https://{YourOrchestratorCredentialsProxyURL}/api/v1/Health verwenden, um zu überprüfen, ob der Orchestrator Credentials Proxy noch ausgeführt wird.

Aktualisieren des Orchestrator Credentials Proxy-Zertifikats

Aktualisieren Sie bei Installationen mit einem einzelnen Knoten das SSL-Zertifikat wie folgt:

  1. Importieren Sie das neue Zertifikat in den Ordner Persönlich unter Zertifikate in der Zertifikatkonsole der lokalen Maschine (certlm.msc).
  2. Erweitern Sie in der IIS-Verwaltungskonsole die Option Sites und wählen Sie UiPath Orchestrator Credential Proxy aus.
  3. Wählen Sie im Bereich auf der rechten Seite Bindungen… aus.
  4. Wählen Sie in der Ansicht Bindungen… den standardmäßigen https -Datensatz aus und verwenden Sie dann die Schaltfläche Auswählen…, um ein Zertifikat auszuwählen.
  5. Wählen Sie im Popup-Fenster Zertifikat auswählen das neu hinzugefügte Zertifikat aus.
  6. Wählen Sie OK, bis die Einrichtung abgeschlossen ist.
    Hinweis:

    Stellen Sie bei Installationen mit mehreren Knoten sicher, dass Sie das Zertifikat auf allen Maschinen aktualisieren.

Um das Zertifikat für Installationen mit einem Lastausgleich zu aktualisieren, verwenden Sie die gleichen oben beschriebenen Schritte. Da Orchestrator Credentials Proxy zustandslos ist, entfernen Sie den Knoten aus dem Lastenausgleich, wenn Sie das Zertifikat aktualisieren.

Schlüsselrotation

Schlüsselrotation mit Ausfallzeit

Hinweis:

Dieser Vorgang erfordert das Anhalten und Neustarten des laufenden Orchestrator Credentials Proxy. Dies kann sich auf alle Live-Anforderungen auswirken, die von Orchestrator ausgeführt werden.

  1. Generieren Sie einen neuen geheimen Schlüssel gemäß den Standards des Orchestrator Credentials Proxy.
  2. Stoppen Sie Ihren Orchestrator Credentials Proxy.
  3. Bearbeiten Sie die appsettings.Production.json Datei und überschreiben Sie Ihren vorhandenen Schlüssel mit dem neuen Schlüssel.
  4. Starten Sie Ihren Orchestrator Credentials Proxy.
  5. Gehen Sie in Orchestrator zu Ihrem Orchestrator Credentials Proxy und bearbeiten Sie das Secret Feld, indem Sie Ihr neues Geheimnis eintragen.

Schlüsselrotation ohne Ausfallzeit

Hinweis:

Dieser Vorgang erfordert einen Orchestrator Credentials Proxy mit einem Lastausgleich und mindestens zwei Orchestrator Credentials Proxy-Instanzen. Weitere Informationen finden Sie im Abschnitt Installation .

  1. Generieren Sie einen neuen geheimen Schlüssel gemäß den Standards des Orchestrator Credentials Proxy.
  2. Fügen Sie den neu generierten Schlüssel zu Ihren Credentials Proxy-Instanzen hinzu. Führen Sie für jede Instanz dieses Verfahren durch:
    1. Entfernen Sie eine Orchestrator Credentials Proxy-Instanz aus dem Load Balancer.
    2. Stoppen Sie diese Orchestrator Credentials Proxy-Instanz.
    3. Öffnen Sie die appsettings.Production.json Datei. Die Datei sollte einen Code enthalten, der dem folgenden ähnelt:
      {
          "Jwt": {
              "Keys": [
                  "{{OldKey}}"
              ],
      {
          "Jwt": {
              "Keys": [
                  "{{OldKey}}"
              ],
      
    4. Fügen Sie den neu generierten Schlüssel hinzu und behalten Sie den vorhandenen bei. Der Keys Parameter unterstützt mehrere durch Kommas getrennte Werte:
      {
          "Jwt": {
              "Keys": [
                  "{{OldKey}}",
                  "{{NewKey}}"
              ],
      {
          "Jwt": {
              "Keys": [
                  "{{OldKey}}",
                  "{{NewKey}}"
              ],
      
    5. Starten Sie den Orchestrator Credentials Proxy.
    6. Fügen Sie die Orchestrator Credentials Proxy-Instanz wieder in den Load Balancer ein.
  3. Gehen Sie in Orchestrator zu Ihrem Orchestrator Credentials Proxy und bearbeiten Sie das Secret Feld, indem Sie Ihr neues Geheimnis eintragen.
  4. Entfernen Sie nach einiger Zeit Ihren alten Schlüssel aus den Credentials Proxy-Instanzen.Führen Sie für jede Instanz dieses Verfahren durch:
    1. Entfernen Sie eine Orchestrator Credentials Proxy-Instanz aus dem Load Balancer.
    2. Stoppen Sie diese Orchestrator Credentials Proxy-Instanz.
    3. Öffnen Sie die appsettings.Production.json Datei. Die Datei sollte zwei Schlüssel enthalten, wie in den vorherigen Schritten beschrieben:
      {
          "Jwt": {
              "Keys": [
                  "{{OldKey}}",
                  "{{NewKey}}"
              ],
      {
          "Jwt": {
              "Keys": [
                  "{{OldKey}}",
                  "{{NewKey}}"
              ],
      
    4. Entfernen Sie den alten Schlüssel aus der Datei:{ "Jwt": { "Keys": [ "{{NewKey}}"],
    5. Starten Sie den Orchestrator Credentials Proxy.
    6. Fügen Sie die Orchestrator Credentials Proxy-Instanz wieder in den Load Balancer ein.

War diese Seite hilfreich?

Verbinden

Benötigen Sie Hilfe? Support

Möchten Sie lernen? UiPath Academy

Haben Sie Fragen? UiPath-Forum

Auf dem neuesten Stand bleiben