Orchestrator
Neuestes
False
Bannerhintergrundbild
Orchestrator-Anleitung
Letzte Aktualisierung 21. März 2024

Der Orchestrator Credentials Proxy

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

Dazu können Sie die gewünschten Plugins für den Anmeldeinformationsspeicher in Form von .dll-Dateien in den Orchestrator Credentials Proxy Web-Dienst laden. Das Installationskit enthält alle von UiPath unterstützten Plugins, aber Sie können auch Ihre eigene Plugin-DLL-Dateien zum Laden entwickeln. Dieser Dienst stellt dann Ihre Plugins im Orchestrator über einen Proxy bereit, der im Orchestrator basierend auf der öffentlichen URL und dem vom Proxy generierten geheimen Schlüssel erstellt wird.

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

Folgendes ist erforderlich, um den Proxy verwenden zu können:

  • ASP.NET Core versions 3.1 or 6.0.x
  • IIS-Version 8.0 oder höher
  • Die folgenden Windows-Funktionen müssen installiert sein:

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

Hard- und Softwareanforderungen

Hardwareanforderungen

Dies sind die Mindestanforderungen für die Ausführung des Proxys auf einem Windows-Server mit IIS:

CPU-Cores

RAM

2

4 GB

Softwareanforderungen

Die folgenden Windows Server-Versionen sind für die Installation des Proxys erforderlich:

  • 2012 R2
  • 2016
  • 2019
  • 2022

Installationsschritte

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

  1. Laden Sie 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-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.

      Beachten Sie, dass sie für die öffentliche URL gültig sein muss.

    • Port – Der Port, der der öffentlichen URL entspricht
    • Geheimer Schlüssel – (Automatisch generiert) Der Schlüssel, der zum Konfigurieren eines benutzerdefinierten Proxys in der Orchestrator-Benutzeroberfläche erforderlich ist. Stellen Sie sicher, dass Sie es für die zukünftige Verwendung in Ihre Zwischenablage kopieren.

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

    Getrennter Proxy

    Diese Funktion ist nur verfügbar, wenn Sie sich im Enterprise – Advanced-Lizenzierungsplan befinden.

    • SSL-Zertifikat – Das SSL-Zertifikat, 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.

    • Geheimer Schlüssel – (Automatisch generiert) Der Schlüssel, der zum Konfigurieren eines benutzerdefinierten Proxys in der Orchestrator-Benutzeroberfläche erforderlich ist. Stellen Sie sicher, dass Sie es für die zukünftige Verwendung in Ihre Zwischenablage kopieren.

    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.

Ü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.

Verschlüsseln des Parameters Jwt:Keys

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.

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 von http://registry.uipath.com/ herunterladen.

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

    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.

  2. 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.
      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 customproxydocker 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}" customproxydocker 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}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}
      • Ersetzen Sie {docker-image-name} durch den Namen, den Sie für Ihr benutzerdefiniertes Docker-Image festgelegt haben.
      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 des neuen Docker-Images
      Um Ihr Image zu testen, greifen Sie auf die Swagger-Schnittstelle (http://localhost:8000/swagger/index.html) zu und überprüfen Sie, ob die Endpunkte funktionieren.

Konfiguration

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.

Die nächsten Schritte gelten nur für den getrennten Proxy, da der verbundene Proxy keine spezifische Konfiguration erfordert.

Getrennter Proxy

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, die sich am folgenden Speicherort befindet: C:\Program Files\UiPath\OrchestratorCredentialsProxy\appsettings.Production.json.
Das sind die Felder, die in der genannten Datei bearbeitet werden müssen, im Abschnitt unter AppSettings > SecureStoreConfigurations:
  • 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

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

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.

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>"
        }
      },
    ]

CyberArk – CCP

"SecureStoreConfigurations": [
      {
        "Key": "<MyCyberArkCCPStore>",
        "Type": "CyberArkCCP",
        "Context": {
          "ApplicationId": "<ApplicationId>",
          "Safe": "<CyberArkSafe>",
          "Folder": "<CyberArkFolder>",
          "WebServiceUrl": "<CentralCredentialProviderUrl>",
          "WebServiceName": "<WebServiceName>",
          "SerializedClientCertificate": "<ClientCertificate>", // must be ".pfx" as base64
          "ClientCertificatePassword": "<ClientCertificatePassword>",
          "SerializedRootCA": "<someServerRootCA>" // must be ".crt" or ".cer" as base64
        }
      },
    ]    "SecureStoreConfigurations": [
      {
        "Key": "<MyCyberArkCCPStore>",
        "Type": "CyberArkCCP",
        "Context": {
          "ApplicationId": "<ApplicationId>",
          "Safe": "<CyberArkSafe>",
          "Folder": "<CyberArkFolder>",
          "WebServiceUrl": "<CentralCredentialProviderUrl>",
          "WebServiceName": "<WebServiceName>",
          "SerializedClientCertificate": "<ClientCertificate>", // must be ".pfx" as base64
          "ClientCertificatePassword": "<ClientCertificatePassword>",
          "SerializedRootCA": "<someServerRootCA>" // must be ".crt" or ".cer" as base64
        }
      },
    ]
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",
...
}

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>"
        }
      },
    ]    "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>"
        }
      },
    ]

Thycotic Secret Server

"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>"
        }
      },
    ]

Mehrere Anmeldeinformationsspeicher

Wenn Sie mehrere Anmeldeinformationsspeicher verwenden, können Sie sie wie folgt untereinander 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 durchgeführten Validierungsschritte:

  • Es wird sichergestellt, dass appsettings.Production.json die erwarteten Konfigurationen enthält, wie im obigen Abschnitt Konfiguration beschrieben.
  • Es wird sichergestellt, dass SecureStoreConfigurations keine doppelten Key-Parameter enthält, also dass die in der Datei appsettings.Production.json konfigurierten Anmeldeinformationsspeicher eindeutig sind.
  • Der Parameter SecureStoreConfigurations ist ein Array von Konfigurationen, was bedeutet, dass Sie beliebig viele Anmeldeinformationsspeicher hinzufügen können, auch vom gleichen Typ. Beispielsweise können Sie mehrere Azure Key Vault-Instanzen (schreibgeschützt) konfigurieren, sofern das Feld Key eindeutig ist.
  • Es wird überprüft, ob alle Type-Werte gültig sind.
  • Basierend auf der Implementierung jedes sicheren Speichers wird überprüft, 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 auch 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

Sie können den Proxy in Kombination mit einem Lastausgleich verwenden, sofern Sie sicherstellen, 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 hauptsächlich auf die benutzerdefinierten Plugins achten müssen, die Sie hinzufügen.

Wichtige Punkte, die zu beachten sind

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

War diese Seite hilfreich?

Hilfe erhalten
RPA lernen – Automatisierungskurse
UiPath Community-Forum
UiPath Logo weiß
Vertrauen und Sicherheit
© 2005-2024 UiPath. All rights reserved.