orchestrator
latest
false
UiPath logo, featuring letters U and I in white

Orchestrator-Anleitung

Automation CloudAutomation Cloud Public SectorAutomation SuiteStandalone
Letzte Aktualisierung 9. Dez. 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.

Bekanntes Problem

Dies gilt nur für Szenarien, in denen der Port des Orchestrator Credentials Proxy auf einen anderen Wert als den Standardwert 443 festgelegt ist.

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.

Hard- und Softwareanforderungen

Hardwareanforderungen

Dies sind die Mindestanforderungen für die Ausführung des Proxys auf einem Windows Server mit IIS. Der tatsächliche Ressourcenbedarf hängt von der individuellen Verwendung ab.

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

Über das .msi-Installationsprogramm

Voraussetzungen

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

  • ASP.NET Core-Versionen 3.1, 6.0.x oder 8.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

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-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 es von einem öffentlichen Zertifikatsanbieter ausgestellt werden muss und 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 – 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.
    • 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.

    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.
Note: The Anonymous Authentication option must be set to Enabled in IIS for the proxy to work.

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

  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

Connected and Disconnected 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

If you cannot retrieve the CyberArkCCP via proxy, add the following parameter to the appsettings.Production.json file:
{
// ...
  "AppSettings": {
    "Plugins.SecureStores.CyberArkCCP.KeyStorageFlags": "MachineKeySet",
    // ...
  }
  // ...
}{
// ...
  "AppSettings": {
    "Plugins.SecureStores.CyberArkCCP.KeyStorageFlags": "MachineKeySet",
    // ...
  }
  // ...
}

HashiCorp Vault

To enable the Kerberos authentication protocol for HashiCorp Vault, add the following parameter to the appsettings.Production.json file:
// ...
  "AppSettings": {
    "Plugins.SecureStores.HashiCorp Vault.KerberosEnabled": "true",
    // ...
  }
  // ...
}
// ...
  "AppSettings": {
    "Plugins.SecureStores.HashiCorp Vault.KerberosEnabled": "true",
    // ...
  }
  // ...
}

HashiCorp Vault (read only)

To enable the Kerberos authentication protocol for HashiCorp Vault (read only), add the following parameter to the appsettings.Production.json file:
// ...
  "AppSettings": {
    "Plugins.SecureStores.HashiCorp Vault (read only).KerberosEnabled": "true",
    // ...
  }
  // ...
}
// ...
  "AppSettings": {
    "Plugins.SecureStores.HashiCorp Vault (read only).KerberosEnabled": "true",
    // ...
  }
  // ...
}

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
Important: Once you edit the configuration file, you need to restart the service from IIS.

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
Important: Once you edit the configuration file, you need to restart the service from IIS.

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

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

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

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 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 aus, bis Sie die Einrichtung abgeschlossen haben.
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.

War diese Seite hilfreich?

Hilfe erhalten
RPA lernen – Automatisierungskurse
UiPath Community-Forum
Uipath Logo White
Vertrauen und Sicherheit
© 2005–2024 UiPath. Alle Rechte vorbehalten