- 基本情報
- ベスト プラクティス
- テナント
- Cloud ロボット
- Automation Suite ロボット
- フォルダー コンテキスト
- プロセス
- ジョブ
- Apps (アプリ)
- トリガー
- ログ
- 監視
- インデックス
- キュー
- アセット
- コネクション
- ビジネス ルール
- ストレージ バケット
- MCP サーバー
- Orchestrator のテスト
- リソース カタログ サービス
- Integrations
- トラブルシューティング

Orchestrator ユーザー ガイド
Orchestrator Credentials Proxy
Orchestrator に独自の資格情報ストアを追加することで、接続データのセキュリティを独自に制御できます。
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 the public URL and the secret key generated by the proxy.
既知の問題
これは、Orchestrator Credentials Proxy のポートが既定の 443 と異なる値に設定されている場合にのみ適用されます。
1.0.0 から 2.0.1 までの任意のバージョンからアップグレードするときに、カスタム ポートを使用していても、受信規則 UiPathOrchestratorCredentialsProxy のローカル ポートが自動的に 443 (既定値) に変更されます。これにより、プロキシへの接続が確立されなくなります。
この問題を回避するには、アップグレード時に受信規則のローカル ポートを手動で変更する必要があります。
インストール
The Orchestrator Credentials Proxy can be installed either through an.msi installer or through a Docker image provided by UiPath.
.msi インストーラーを使用する
前提条件
ハードウェア要件
IIS が搭載されている Windows Server でプロキシを実行するための最小要件は、以下のとおりです。実際に必要なリソースは、個々の使用状況によって異なります。
| CPU コア | RAM |
|---|---|
| 2 | 4 GB |
ソフトウェア要件
プロキシのインストールには、次のバージョンの Windows Server が必要です。
- 2012 R2
- 2016
- 2019 年
- 2022 年
- 2025 年
プロキシを使用するには以下が必要です。
- ASP.NET Core versions 3.1 or later
- バージョン 8.0 以上の IIS
- 次のサーバーの役割をマシンにインストールする必要があります。
- IIS-DefaultDocument
- IIS-HttpErrors
- IIS-StaticContent
- IIS-RequestFiltering
- IIS-URLAuthorization
- IIS-WindowsAuthentication
- IIS-ASPNET45
- IIS-ISAPIExtensions
- IIS-ISAPIFilter
- IIS-WebSockets
- IIS-ApplicationInit
- IIS-ManagementConsole
- Windows Server マシンの場合は、サーバー マネージャーを使用して役割をインストールします。
- For Windows 10 or Windows 11 machines, install the roles using the Turn Windows features on or off utility under Control Panel > Programs.
インストールの手順
インストールを実行するには、以下の手順に従います。
- Download the UiPath Orchestrator Credential Proxy installer from the Customer Portal.
- プロキシをインストールします。
接続状態のプロキシ
- パブリック URL - パブリックに公開されている Orchestrator Credentials Proxy の URL です。
- 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.
- ポート - パブリック URL に対応するポートです。
- シークレット キー - Orchestrator のインターフェイスでカスタム プロキシを構成するのに必要なキー (自動生成) です。後で使用できるよう、クリップボードにコピーしておいてください。
これは手動で変更できて、キー ローテーションにも適しています。
非接続のプロキシ
This feature is only available if you are on the Enterprise - Advanced licensing plan for Flex Pricing Plan, or Enterprise or Application Test Enterprise for Unified Pricing Plan.
- 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.
- Port - the port corresponding to the URL
- シークレット キー - Orchestrator のインターフェイスでカスタム プロキシを構成するのに必要なキー (自動生成) です。後で使用できるよう、クリップボードにコピーしておいてください。
これは手動で変更できて、キー ローテーションにも適しています。
インストール時に、appsettings.Production.json ファイルの AppSettings.CredentialsProxyType パラメーターは Disconnected に設定されます。これによって、プロキシは起動時に接続/非接続を検出します。
The Anonymous Authentication option must be set to Enabled in IIS for the proxy to work.
Jwt:Keys パラメーターを暗号化する
To add an extra layer of security, you can encrypt the Jwt:Keys and SecureStoreConfigurations:Context parameters in your appsettings.json file.
これには、UiPath.ConfigProtector.exe v1.0.9 以上が必要です。
Docker イメージを使用する
予備情報
Orchestrator Credentials Proxy の編集可能な設定はすべて、appsettings.json ファイルで利用できます。初期の設定では以下のパラメーターが重要です。
Jwt:Keys- (最初は空) プロキシの認証を設定するために、この文字列の配列が使用されます。プロキシの作成プロセスで使用するシークレット キーはこの配列で構成され、Orchestrator がプロキシからデータを正常に取得できるようになります。無効な値は無視されます。有効な値が見つからなかった場合、プロキシは起動しません。
シークレット キーは Base64 形式である必要があり、以下の PowerShell スクリプトのいずれかを使用して生成できます。
$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
上記のスクリプトはランダムな 64 バイトを SeccureRandomを使用して生成し、Base64 文字列に変換します。
[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- (最初は Orchestrator で利用可能な既定の資格情報ストアに設定) これは、プロキシによる Secure Store の使用を有効化するために、ディスク (path/plugins) から読み込むべき .dll アセンブリを指定する目的で使用される CSV 文字列です。無効なアセンブリをリストに追加してもスタートアップは破損しませんが、デプロイしようとするとログのエラーが発生します。appSettings:SigningCredentialSettings:FileLocation:SigningCredential:FilePath、appSettings:SigningCredentialSettings:FileLocation:SigningCredential:Password- (最初は非表示)Jwt:KeysおよびSecureStoreConfigurations:Contextパラメーターを暗号化するために使用されます。これは、署名証明書へのファイル パスを表します。appSettings:SigningCredentialSettings:StoreLocation:Name、appSettings:SigningCredentialSettings:StoreLocation:Location、appSettings:SigningCredentialSettings:StoreLocation:NameType- (最初は非表示)Jwt:KeysおよびSecureStoreConfigurations:Contextパラメーターを暗号化するために使用されます。
Docker イメージをセットアップして実行する
Docker を使用して Orchestrator Credentials Proxy を実行するには、以下の手順に従います。
- Docker イメージをダウンロードする
You can download the image from http://registry.uipath.com/.
Make sure to include the required version of the Orchestrator Credentials Proxy in the URL. For example, to download the image for version 2.1.4, use:
http://registry.uipath.com/orchestrator-credentialsproxy:2.1.4
http://registry.uipath.com/orchestrator-credentialsproxy:2.1.4
この URL は Docker イメージを指しており、Web ブラウザーではなく Docker CLI を使用してアクセスする必要があります。
バージョン 1.0.0 では接続状態のプロキシのみがサポートされますが、バージョン 2.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
$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
これは既定の UiPath イメージであり、お使いのクラウド アカウントで既に利用可能な資格情報ストアが含まれています。イメージは、選択したクラウド環境にデプロイできます。
上記のコマンドではシークレット キーも生成されます。
- 独自のカスタム Docker イメージを作成する
手順 1 でダウンロードした、UiPath が提供するイメージに基づいて、追加のアセンブリを含む独自の Docker イメージを作成できます。このためには、以下の手順に従います。
- Dockerfile を新たに作成し (分かりやすいようここでは
CustomDockerfileという名前を付けます)、以下を追加します。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"]{docker-image-path}を、UiPath が提供する初期状態の Docker イメージのパスに置き換えます。- Replace
{path of your custom assemblies}with the path to your own credential store .dll files.Find out how Visual Studio uses this Dockerfile to build your images for faster debugging.
- 次のコマンドを使用して Docker イメージを生成します。これには、新しく作成された Dockerfile の名前が含まれます。
docker build -f CustomDockerfile . -t customproxydocker build -f CustomDockerfile . -t customproxy - Docker イメージを実行する
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{your-list-of-assemblies}を、Orchestrator に追加するカスタム資格情報ストアの .dll ファイルに置き換えます。
1 つの Jwt:Keys パラメーターでイメージを実行する場合:
```
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}
```
複数の Jwt:Keys パラメーターでイメージを実行する場合:
```
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.
appSettings:Plugins.SecureStores パラメーターのカスタム値 (すなわち、目的の資格情報ストア) でイメージを実行するには、このパラメーターの内容を独自の資格情報ストアの .dll ファイルに置き換えます。次のようにします。
```
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) Test the new Docker image
イメージをテストするには、http://localhost:8000/swagger/index.html で Swagger インターフェイスにアクセスし、専用の非認証エンドポイント /Health が機能していることを確認します。リクエストが成功すると、HTTP ステータス コード 200 OK とともに空の応答が返されます。
構成
接続状態のプロキシと非接続のプロキシ
プロキシ設定の最初の手順は、使用するカスタム .dll プラグインを C:\Program Files\UiPath\CredentialsProxy\plugins フォルダーに追加することです。
一部の資格情報ストアでは、アプリケーション、ホスト、またはプロキシレベルで設定を構成する必要があります。これらの設定は、Orchestrator の対応する設定と同じです。これらの設定は、プロキシの appsettings.Production.json ファイルで指定する必要があります。
CyberArk
appsettings.Production.json ファイルの Appsettings パラメーターの下に、CLIPasswordSDKExePath、UsePowerShellCLI、AdditionalAllowedCharacters などのホスト レベルの設定を追加する必要があります。
{
// ...
"AppSettings": {
"Plugins.SecureStores.CyberArk.CLIPasswordSDKExePath": "D:\\PathName\\CLIPasswordSDK.exe",
// ...
}
// ...
}
{
// ...
"AppSettings": {
"Plugins.SecureStores.CyberArk.CLIPasswordSDKExePath": "D:\\PathName\\CLIPasswordSDK.exe",
// ...
}
// ...
}
CyberArk CCP
プロキシ経由で CyberArkCCP を取得できない場合は、appsettings.Production.json ファイルに次のパラメーターを追加します。
{
// ...
"AppSettings": {
"Plugins.SecureStores.CyberArkCCP.KeyStorageFlags": "MachineKeySet",
// ...
}
// ...
}
{
// ...
"AppSettings": {
"Plugins.SecureStores.CyberArkCCP.KeyStorageFlags": "MachineKeySet",
// ...
}
// ...
}
HashiCorp Vault
Kerberos 認証プロトコルを有効化し、HashiCorp Vault のノード転送をアクティブ化するには、appsettings.Production.json ファイルに次のパラメーターを追加します。
// ...
"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 (読み取り専用)
Kerberos 認証プロトコルを有効化し、HashiCorp Vault (読み取り専用) のノード転送をアクティブ化するには、appsettings.Production.json ファイルに次のパラメーターを追加します。
// ...
"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
// ...
}
// ...
}
非接続のプロキシのみ
この種類のプロキシは Orchestrator から完全に分離されているため、資格情報コンテナーに関する情報をローカルの設定ファイル appsettings.Production.json で指定する必要があります。ファイルは、 C:\Program Files\UiPath\OrchestratorCredentialsProxy\appsettings.Production.jsonにあります。
上記のファイルの [AppSettings - SecureStoreConfigurations] セクションで、以下のフィールドを編集する必要があります。
Key- 設定の識別子キーです。Type-appsettings.jsonでPlugins.SecureStoresパラメーターを使用して設定された .dll ファイルで識別される資格情報コンテナーの種類です (以下のサンプルを参照)。Context- Secure Store の実装に関連する接続情報です。重要:設定ファイルを編集したら、IIS からサービスを再起動する必要があります。
設定のサンプル
非接続のプロキシを起動するには、以下のサンプルを appsettings.Production.json 設定ファイルに追加する必要があります。そうしないとサービスは起動されません。
資格情報ストアの種類に基づいて適切なサンプルを選択するか、このページの最後のサンプルを使用して複数の資格情報ストアを追加します。
上記のファイルの [AppSettings - SecureStoreConfigurations] セクションで、以下のフィールドを編集する必要があります。
Key- 設定の識別子キーです。Type-appsettings.jsonでPlugins.SecureStoresパラメーターを使用して設定された .dll ファイルで識別される資格情報コンテナーの種類です (以下のサンプルを参照)。Context- Secure Store の実装に関連する接続情報です。重要:設定ファイルを編集したら、IIS からサービスを再起動する必要があります。
appsettings.Production.json ファイルに変更を加える前に、必ず元のファイルのバックアップを作成してください。こうしておけば、設定中に問題が発生した場合に、簡単に初期設定を復元したり、変更箇所を比較したりできます。
AWS Secrets Manager/AWS Secrets Manager (読み取り専用)
...
"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 (読み取り専用)
...
"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>"
}
},
]
...
Azure Key Vault (読み取り/書き込み) はサポートされていません。
BeyondTrust Password Safe - Managed Accounts
...
"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 Passwords
...
"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>"
}
},
]
...
CLIPasswordSDKExePath、UsePowerShellCLI、AdditionalAllowedCharacters などのホスト レベルの設定は、Orchestrator の場合と同様に Appsettings パラメーターの下に配置する必要があります。
{
// ...
"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",
"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",
"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
}
},
]
...
IIS の設定によっては、以下のように追加の KeyStorageFlags を設定する必要がある場合があります。
"AppSettings": {
...
"Plugins.SecureStores.CyberArkCCP.KeyStorageFlags": "MachineKeySet",
...
}
"AppSettings": {
...
"Plugins.SecureStores.CyberArkCCP.KeyStorageFlags": "MachineKeySet",
...
}
PFX、CRT、または CER のファイルは、次の方法で base64 文字列に変換できます。
$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 (読み取り専用)
...
"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 (読み取り専用)
...
"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}"
}
},
]
...
HashiCorp Vault/HashiCorp Vault (読み取り専用)
...
"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"
}
},
]
...
Plugins.SecureStores.HashiCorp Vault.KerberosEnabled、Plugins.SecureStores.HashiCorp Vault (read only).KerberosEnabled、Plugins.SecureStores.HashiCorp Vault (read only).ForwardToActiveNode、Plugins.SecureStores.HashiCorp Vault.ForwardToActiveNode などのホスト レベルの設定は、Orchestrator の場合と同様に Appsettings パラメーターの下に配置する必要があります。
{
// ...
"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
...
"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 (読み取り専用)
...
"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>",
}
},
]
...
複数の資格情報ストア
複数の資格情報ストアを使用する場合は、以下のように並べて追加できます。
{
...
"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"
}
}
]
...
}
}
検証
これは、非接続の資格情報プロキシにのみ適用されます。
プロキシは、検出した種類が Disconnected の場合、起動時に設定を検証します。
プロキシが実行する検証手順の一部を以下に示します。
- The proxy ensures that that
appsettings.Production.jsoncontains the expected configurations, as detailed in the Configuration section above. - プロキシにより、
SecureStoreConfigurationsに重複するKeyパラメーターが含まれないように、つまり、appsettings.Production.jsonファイルで設定された資格情報ストアが一意であることが確認されます。 SecureStoreConfigurationsパラメーターは、複数の値を列挙して設定できます。資格情報ストアを、同じ種類のものであっても、必要な数だけ追加できます。たとえば、Keyフィールドが一意である限り、複数の Azure Key Vault (読み取り専用) インスタンスを設定できます。- プロキシによって、すべての
Type値が有効であることが確認されます。 - 各 Secure Store の実装に基づいて、コンテナーに正常に到達できることがプロキシによって確認されます。
ログ
Orchestrator Credentials Proxy のログはローカルの C:\Program Files\UiPath\OrchestratorCredentialsProxy フォルダーに保存されます (プロキシのアプリケーション プールにそのパスへの書き込み権限がある場合)。これらは IIS で設定されます。
そのフォルダーへの書き込みアクセス許可を与えない場合は、appsettings.Production.json の NLog.targets.logfile.fileName パラメーターを使用して、任意の相対パスまたは絶対パスを指定します。
Windows マシンでは、プロキシは Windows イベント ビューアーにもログを保存します。
セキュリティに関する考慮事項
- Orchestrator ではプロキシに対してセキュリティで保護された (HTTPS) URL のみが許可されます。HTTPS 証明書は、有効である必要、および広く認識された証明機関によって署名されている必要があります。自己署名証明書または内部機関によって署名された証明書はサポートされていません。
- Orchestrator は、Orchestrator Credentials Proxy によって生成されたクライアント シークレットで検証されます。このクライアント シークレットは、Orchestrator Credentials Proxy がインストールされているマシンの構成ファイルに保存され、Orchestrator によって暗号化され、データベースに保存されます。
- Orchestrator で資格情報ストア プロキシを編集してその URL を変更する場合、クライアント シークレットも入力する必要があります。
- Orchestrator Credentials Proxy 2.0.0 以降のアクションは、Windows イベント ビューアーに記録されます。
- バイナリは Windows マシンで署名される必要があります。
- Docker イメージは署名されている必要があります。
ロード バランサーで Orchestrator Credentials Proxy を使用する
プロキシをロード バランサーと組み合わせて使用する場合は、すべてのノードで同じ構成を維持するようにしてください。
ノード間で同一である必要がある要素
- プロキシ インストーラーのバージョン。たとえば、バージョン 1.0.0 を使用する場合は、すべてのロード バランサー ノードでも 1.0.0 を使用する必要があります。
- アプリケーション構成ファイルの設定。ほとんどの場合、
appsettings.jsonとappsettings.Production.jsonです。appsettings.Production.jsonはインストールごとに一意であるため、一貫性を確保するには、手動で各ノードに追加する必要があります。 path/pluginsに追加された資格情報ストア プラグイン。UiPath がサポートするプラグインはすべてすでにこのフォルダーにあるため、注意が必要なのは追加するカスタム プラグインのみです。
考慮すべき重要事項
- プロキシのインストール用に提供されている Docker イメージの構成に変更を加える場合は、代わりにカスタム Docker イメージを作成することを強くお勧めします。次に、このカスタム イメージを使用して、すべてのノードにプロキシをデプロイする必要があります。
- 一部の環境変数は、ランタイムに影響を与える可能性があります。たとえば、
appsettings.json構成値をオーバーライドする環境変数や、.NET 環境に影響を与える環境変数などです。 - 専用の非認証エンドポイント
https://{YourOrchestratorCredentialsProxyURL}/api/v1/Healthを使用して、Orchestrator Credentials Proxy がまだ実行中かどうかを確認できます。
Orchestrator Credentials Proxy の証明書を更新する
シングルノードのインストールの場合は、次の手順で SSL 証明書を更新します。
- Import the new certificate into the Personal folder, under Certificates, in the local machine's certificate console (certlm.msc).
- In the IIS Management Console, expand Sites, and select UiPath Orchestrator Credential Proxy.
- From the right-side panel, select Bindings....
- From the Bindings... view, select the default
httpsrecord, then use the Select... button to choose a certificate. - In the Select Certificate pop-up window, select the newly added certificate.
- Select OK until you complete the setup.
注:
マルチノードのインストールの場合は、必ずすべてのマシンで証明書を更新してください。
ロード バランサーを使用しているインストールの証明書を更新するには、上記と同じ手順を使用します。Orchestrator Credentials Proxy はステートレスであるため、証明書を更新する際はロード バランサーからノードを削除してください。
キーのローテーション
ダウンタイムを伴うキーのローテーション
This operation requires stopping and restarting the running Orchestrator Credentials Proxy. This can have an impact on any live requests done by Orchestrator.
- Orchestrator Credentials Proxy の標準に従って新しいシークレット キーを生成します。
- Orchestrator Credentials Proxy を停止します。
appsettings.Production.jsonファイルを編集し、既存のキーを新しいキーで上書きします。- Orchestrator Credentials Proxy を起動します。
- Orchestrator で Orchestrator Credentials Proxy に移動し、[
Secret] フィールドを編集して新しいシークレットを指定します。
ダウンタイムを伴わないキーのローテーション
This operation requires an Orchestrator Credentials Proxy with a load balancer and a minimum of two Orchestrator Credentials Proxy instances. For more information, check the Installation section.
- Orchestrator Credentials Proxy の標準に従って新しいシークレット キーを生成します。
- 新しく生成されたキーを Credentials Proxy インスタンスに追加します。各インスタンスで以下の手順を実行します。
- Orchestrator Credentials Proxy インスタンスをロード バランサーから除外します。
- Orchestrator Credentials Proxy インスタンスを停止します。
appsettings.Production.jsonファイルを開きます。このファイルには次のようなコードが含まれています。{ "Jwt": { "Keys": [ "{{OldKey}}" ],{ "Jwt": { "Keys": [ "{{OldKey}}" ],- 既存のキーを保持したまま、新しく生成されたキーを追加します。
Keysパラメーターには、複数の値をコンマで区切って指定できます。{ "Jwt": { "Keys": [ "{{OldKey}}", "{{NewKey}}" ],{ "Jwt": { "Keys": [ "{{OldKey}}", "{{NewKey}}" ], - Orchestrator Credentials Proxy を起動します。
- Orchestrator Credentials Proxy インスタンスをロード バランサーに戻します。
- Orchestrator で Orchestrator Credentials Proxy に移動し、[
Secret] フィールドを編集して新しいシークレットを指定します。 - しばらくしてから、Credentials Proxy インスタンスから古いキーを取得します。各インスタンスで以下の手順を実行します。
- Orchestrator Credentials Proxy インスタンスをロード バランサーから除外します。
- Orchestrator Credentials Proxy インスタンスを停止します。
appsettings.Production.jsonファイルを開きます。このファイルには、前の手順で説明した次の 2 つのキーが含まれています。{ "Jwt": { "Keys": [ "{{OldKey}}", "{{NewKey}}" ],{ "Jwt": { "Keys": [ "{{OldKey}}", "{{NewKey}}" ],- ファイルから古いキーを削除して次のようにします: { "Jwt": { "Keys": [ "{{NewKey}}" ],
- Orchestrator Credentials Proxy を起動します。
- Orchestrator Credentials Proxy インスタンスをロード バランサーに戻します。
- 既知の問題
- インストール
- .msi インストーラーを使用する
- Docker イメージを使用する
- 構成
- 接続状態のプロキシと非接続のプロキシ
- CyberArk
- CyberArk CCP
- HashiCorp Vault
- HashiCorp Vault (読み取り専用)
- 非接続のプロキシのみ
- 設定のサンプル
- 検証
- ログ
- セキュリティに関する考慮事項
- ロード バランサーで Orchestrator Credentials Proxy を使用する
- ノード間で同一である必要がある要素
- 考慮すべき重要事項
- Orchestrator Credentials Proxy の証明書を更新する
- キーのローテーション
- ダウンタイムを伴うキーのローテーション
- ダウンタイムを伴わないキーのローテーション