- 基本情報
- ベスト プラクティス
- テナント
- テナント コンテキストについて
- テナント内でリソースを検索する
- オートメーション機能を設定する
- 解決方法
- 監査
- 資格情報ストアを連携する
- 資格情報ストアを管理する
- Orchestrator Credentials Proxy
- 資格情報プロキシを管理する
- 設定
- Cloud ロボット
- フォルダー コンテキスト
- 自動化
- プロセス
- ジョブ
- Apps (アプリ)
- トリガー
- ログ
- 監視
- キュー
- アセット
- ストレージ バケット
- Test Suite - Orchestrator
- リソース カタログ サービス
- Integrations
- トラブルシューティング
Orchestrator ユーザー ガイド
Orchestrator Credentials Proxy
Orchestrator に独自の資格情報ストアを追加することで、接続データのセキュリティを独自に制御できます。
そのためには、必要な資格情報ストア プラグインを .dll ファイルの形式で、Orchestrator の Credentials Proxy Web サービスに読み込みます。インストール キットには UiPath がサポートするすべてのプラグインが含まれていますが、独自のプラグイン .dll ファイルを開発して読み込むこともできます。その後、プラグインはプロキシ経由でサービスによって Orchestrator に対して利用可能になります。プロキシは、パブリック URL とプロキシで生成されたシークレット キーに基づいて Orchestrator で作成されます。
Orchestrator Credentials Proxy は、UiPath が提供する .msi インストーラー、または Docker イメージを使用してインストールできます。
ハードウェア要件
IIS が搭載されている Windows Server でプロキシを実行するための最小要件は、以下のとおりです。実際に必要なリソースは、個々の使用状況によって異なります。
CPU コア |
RAM |
---|---|
2 |
4 GB |
ソフトウェア要件
プロキシのインストールには、次のバージョンの Windows Server が必要です。
- 2012 R2
- 2016
- 2019
- 2022 年
前提条件
プロキシを使用するには以下が必要です。
- ASP.NET コア バージョン 3.1、6.0.x、または 8.0.x
- バージョン 8.0 以上の IIS
-
Windows の次の機能をインストールする必要があります。
- IIS-DefaultDocument
- IIS-HttpErrors
- IIS-StaticContent
- IIS-RequestFiltering
- IIS-URLAuthorization
- IIS-WindowsAuthentication
- IIS-ASPNET45
- IIS-ISAPIExtensions
- IIS-ISAPIFilter
- IIS-WebSockets
- IIS-ApplicationInit
- IIS-ManagementConsole
インストールの手順
インストールを実行するには、以下の手順に従います。
予備情報
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
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
パラメーターを暗号化するために使用されます。
Jwt:Keys
パラメーターを暗号化する
appsettings.json
ファイルの Jwt:Keys
および SecureStoreConfigurations:Context
パラメーターを暗号化します。
UiPath.ConfigProtector.exe
v1.0.9 以上が必要です。
Docker イメージをセットアップして実行する
Docker を使用して Orchestrator Credentials Proxy を実行するには、以下の手順に従います。
C:\Program Files\UiPath\CredentialsProxy\plugins
フォルダーに追加することです。
appsettings.Production.json
ファイルで指定する必要があります。
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",
// ...
}
// ...
}
appsettings.Production.json
ファイルに追加します。
{
// ...
"AppSettings": {
"Plugins.SecureStores.CyberArkCCP.KeyStorageFlags": "MachineKeySet",
// ...
}
// ...
}
{
// ...
"AppSettings": {
"Plugins.SecureStores.CyberArkCCP.KeyStorageFlags": "MachineKeySet",
// ...
}
// ...
}
appsettings.Production.json
ファイルに追加します。
// ...
"AppSettings": {
"Plugins.SecureStores.HashiCorp Vault.KerberosEnabled": "true",
// ...
}
// ...
}
// ...
"AppSettings": {
"Plugins.SecureStores.HashiCorp Vault.KerberosEnabled": "true",
// ...
}
// ...
}
appsettings.Production.json
ファイルに追加します。
// ...
"AppSettings": {
"Plugins.SecureStores.HashiCorp Vault (read only).KerberosEnabled": "true",
// ...
}
// ...
}
// ...
"AppSettings": {
"Plugins.SecureStores.HashiCorp Vault (read only).KerberosEnabled": "true",
// ...
}
// ...
}
appsettings.Production.json
で指定する必要があります。ファイルは、 C:\Program Files\UiPath\OrchestratorCredentialsProxy\appsettings.Production.json
にあります。
AppSettings
- SecureStoreConfigurations
] セクションで、以下のフィールドを編集する必要があります。
Key
- 設定の識別子キーです。Type
-appsettings.json
でPlugins.SecureStores
パラメーターを使用して設定された .dll ファイルで識別される資格情報コンテナーの種類です (以下のサンプルを参照)。Context
- Secure Store の実装に関連する接続情報です。
appsettings.Production.json
設定ファイルに追加する必要があります。そうしないとサービスは起動されません。
資格情報ストアの種類に基づいて適切なサンプルを選択するか、このページの最後のサンプルを使用して複数の資格情報ストアを追加します。
AppSettings
- SecureStoreConfigurations
] セクションで、以下のフィールドを編集する必要があります。
Key
- 設定の識別子キーです。Type
-appsettings.json
でPlugins.SecureStores
パラメーターを使用して設定された .dll ファイルで識別される資格情報コンテナーの種類です (以下のサンプルを参照)。Context
- Secure Store の実装に関連する接続情報です。
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>"
}
},
]
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
}
},
]
KeyStorageFlags
を設定する必要がある場合があります。
"AppSettings": {
...
"Plugins.SecureStores.CyberArkCCP.KeyStorageFlags": "MachineKeySet",
...
}
"AppSettings": {
...
"Plugins.SecureStores.CyberArkCCP.KeyStorageFlags": "MachineKeySet",
...
}
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}"
}
},
]
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"
}
},
]
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>"
}
},
]
複数の資格情報ストア
複数の資格情報ストアを使用する場合は、以下のように並べて追加できます。
{
...
"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
の場合、起動時に設定を検証します。
プロキシが実行する検証手順の一部を以下に示します。
-
プロキシにより、上記の「設定」セクションで詳しく説明されている設定が、
appsettings.Production.json
に想定どおりに含まれていることが確認されます。 -
プロキシにより、
SecureStoreConfigurations
に重複するKey
パラメーターが含まれないように、つまり、appsettings.Production.json
ファイルで設定された資格情報ストアが一意であることが確認されます。
SecureStoreConfigurations
パラメーターは、複数の値を列挙して設定できます。資格情報ストアを、同じ種類のものであっても、必要な数だけ追加できます。たとえば、Key
フィールドが一意である限り、複数の Azure Key Vault (読み取り専用) インスタンスを設定できます。
-
プロキシによって、すべての
Type
値が有効であることが確認されます。 -
各 Secure Store の実装に基づいて、コンテナーに正常に到達できることがプロキシによって確認されます。
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 イメージは署名されている必要があります。
プロキシをロード バランサーと組み合わせて使用する場合は、すべてのノードで同じ構成を維持するようにしてください。
- プロキシ インストーラーのバージョン。たとえば、バージョン 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 がまだ実行中かどうかを確認できます。
シングルノードのインストールの場合は、次の手順で SSL 証明書を更新します。
- 新しい証明書を、ローカル マシンの証明書コンソール (certlm.msc) の [証明書] の下にある [個人] フォルダーにインポートします。
- IIS 管理コンソールで、[サイト] を展開して [UiPath Orchestrator Credential Proxy] を選択します。
- 右側のパネルから [バインド...] を選択します。
- [バインド...] ビューから既定の
https
レコードを選択し、[選択...] ボタンを使用して証明書を選択します。 - [証明書の選択] ポップアップ ウィンドウで、新しく追加した証明書を選択します。
- セットアップが完了するまで [OK] を選択します。
マルチノードのインストールの場合は、必ずすべてのマシンで証明書を更新してください。
ロード バランサーを使用しているインストールの証明書を更新するには、上記と同じ手順を使用します。Orchestrator Credentials Proxy はステートレスであるため、証明書を更新する際はロード バランサーからノードを削除してください。