- 基本情報
- 要件
- ベスト プラクティス
- インストール
- 更新
- Identity Server
- High Availability Add-on
appsettings.json ファイル (C:\Program Files (x86)\UiPath\Orchestrator\Identity) には Identity Server の設定が含まれています。そのままの設定で Identity Server を使用できます。同内容のもう 1 つのファイル appsettings.Production.json に、お使いの Identity Server に特有の設定を指定します。
Identity Server を好みに合わせて設定するには、appsettings.Production.json ファイルを変更します。このファイルによって、appsettings.json 内の既存の設定が各インストール処理の後に上書きされます。
これらのパラメーターの値の変更は管理者のみが行うことが推奨されます。
さらに、どのような状況でも appsettings.Production.json の設定を変更できるように、IIS サーバーを停止することをお勧めします。
このページに記載されていないパラメーターは、変更しないでください。
すべてのパラメーターは、大文字と小文字を区別します。
設定の優先度
設定は複数の場所で行えます。設定値を決定する際に Identity Server で使用される優先度を、高 (1) から低 (3) までで次に示します。
appsettings.Production.jsonファイル内の値appsettings.jsonファイル内の値- コード内の既定値です。特定の設定が
appsettings.Production.jsonまたはappsettings.jsonに見つからない場合にのみ使用されます。
設定
appsettings.json ファイルはコンマで区切られた複数の json セクションで構成される内部構造を持っています。
接続文字列
ConnectionStrings セクションには、Identity Server データベースの接続文字列が格納されます。この値はインストーラーによって設定されます。
この設定の値は appsettings.Production.json および appsettings.json に設定されています。
"ConnectionStrings": { "DefaultConnection": "Server=.\\sqlexpress;Database=IdentityServer;User ID=<username>;Password=<password>;" }
"ConnectionStrings": { "DefaultConnection": "Server=.\\sqlexpress;Database=IdentityServer;User ID=<username>;Password=<password>;" }
暗号化
EncryptionSettings セクションには、テナントの暗号化キーが格納されます。これらの値は、インストール中に Orchestrator の UiPath.Orchestrator.dll.config から自動的に移行されます。
この設定の値は appsettings.Production.json および appsettings.json に設定されています。
"EncryptionSettings": {
"EncryptionKey": "<ENCRYPTION_KEY>"
}
"EncryptionSettings": {
"EncryptionKey": "<ENCRYPTION_KEY>"
}
Identity Server を設定すると、Orchestrator と同様にローカル キー (上記をご覧ください) や Azure Key Vault (下記をご覧ください) を使用できるようになります。
"EncryptionSettings": {
"MultiTenantEncryptionKeyProvider": "AzureKeyVault",
"EncryptionKeyPerTenant": true,
"AzureKeyVaultAddress": "keyVaultAddress",
"AzureKeyVaultCertificateThumbprint": "keyvaultCertificateThumbprint",
"AzureKeyVaultClientId" : "azureClientId"
},
"EncryptionSettings": {
"MultiTenantEncryptionKeyProvider": "AzureKeyVault",
"EncryptionKeyPerTenant": true,
"AzureKeyVaultAddress": "keyVaultAddress",
"AzureKeyVaultCertificateThumbprint": "keyvaultCertificateThumbprint",
"AzureKeyVaultClientId" : "azureClientId"
},
MultiTenantEncryptionKeyProvider- Orchestrator からテナントごとに生成された暗号化キーを格納するキー管理アプリケーションを指定します。既定では、コード内のこの値はConfigFileKeyに設定されています。指定できる値はAzureKeyVaultとConfigFileKeyです。この値は、Identity Server のインストール時に UiPath.Orchestrator.dll.config のEncryptionKeyPerTenant.KeyProviderの設定からコピーされます。
The following Identity Server keys match the Orchestrator keys within UiPath.Orchestrator.dll.config's SecureAppSettings section:
| Identity Server のキー | Orchestrator のキー |
|---|---|
EncryptionKeyPerTenant | EncryptionKeyPerTenant.Enabled |
AzureKeyVaultAddress | Azure.KeyVault.VaultAddress |
AzureKeyVaultCertificateThumbprint | Azure.KeyVault.CertificateThumbprint |
AzureKeyVaultClientId | Azure.KeyVault.ClientId |
MultiTenantEncryptionKeyProvider | EncryptionKeyPerTenant.KeyProvider |
If CertificatesStoreLocation parameter in UiPath.Orchestrator.dll.config is set to LocalMachine, make sure that AzureKeyVaultCertificateStoreLocation in appsettings.Production.json has the same value.
If you change the Encryption Key or the Azure Key Vault settings inside Orchestrator’s UiPath.Orchestrator.dll.config, you must also update Identity Server's appsettings.Production.json with the same values.
ログ
Logging セクションでは、Identity Server で使用される各コンポーネントのログ レベルを設定します。これは全般的なログ設定です。詳しくはこちらをご覧ください。
このセクションには appsettings.json 内の値が含まれます。
"Logging": {
"LogLevel": {
"Default": "Trace",
"Microsoft": "Warning",
"Microsoft.Hosting.Lifetime": "Information"
}
}
"Logging": {
"LogLevel": {
"Default": "Trace",
"Microsoft": "Warning",
"Microsoft.Hosting.Lifetime": "Information"
}
}
Identity Server では、Microsoft や Microsoft.Hosting.Lifetime などの主要なコンポーネントにいくつかの既定値が提供されます。
NLog
NLog セクションには、Orchestrator と同様に、NLog ターゲット経由で Identity Server にログを記録する方法が定義されます。
このセクションには appsettings.json 内の値が含まれます。
json
"NLog": {
"IncludeScopes": true,
"throwConfigExceptions": false,
"targets": {
"EventLog": {
"type": "EventLog",
"source": "IdentityService",
"layout": "${longdate} ${logger} ${message}${onexception:${newline}${exception:maxInnerExceptionLevel=10:format=shortType,message,stacktrace:separator=*:innerExceptionSeparator=
	}}"
}
},
"rules": [
{
"logger": "*",
"minLevel": "Info",
"writeTo": "EventLog"
}
]
},
json
"NLog": {
"IncludeScopes": true,
"throwConfigExceptions": false,
"targets": {
"EventLog": {
"type": "EventLog",
"source": "IdentityService",
"layout": "${longdate} ${logger} ${message}${onexception:${newline}${exception:maxInnerExceptionLevel=10:format=shortType,message,stacktrace:separator=*:innerExceptionSeparator=
	}}"
}
},
"rules": [
{
"logger": "*",
"minLevel": "Info",
"writeTo": "EventLog"
}
]
},
既定では、NLog は ApplicationEvents にログを書き込むように構成されています。json のセクションを使用して NLog を設定する方法の詳細については、 こちらをご覧ください 。
アプリの設定
AppSettings セクションは、Identity Server の主要な設定セクションです。このセクションには appsettings.Production.json および appsettings.json 内の値が含まれます。
-
IdentityServerAddress- Identity Server API の呼び出しに使用されるトークンを検証するときに、Identity Server で確認されるオーディエンスを表します。インストール中、appsettings.Production.jsonの内のこのフィールドに Identity Server のアドレスが自動的に設定されます。Orchestrator のデータ伝達が遮断されるため、この値は変更しないでください。この設定の値は
appsettings.Production.jsonおよびappsettings.jsonに設定されています。注:IdentityServerAddressの値は小文字の URL を入力するようにしてください。それ以外の場合にはエラーが発生します。 -
Saml2ValidCertificateOnly-trueに設定すると、SAML2 の設定時に無効な証明書を使用できなくなります。既定では、設定の値はコード内で
trueに設定されています。 -
EnablePII-trueに設定すると、例外に機密情報が含まれるようになります。たとえば、外部 ID プロバイダーの URL アドレスや Identity Server のアドレスなどです。既定では、設定の値は
appsettings.jsonおよびコード内でfalseに設定されています。 -
HideErrorCodesInUi- ログインのエラー コードを UI に表示するかどうかを制御します。既定では、このパラメーターは表示されません。既定値はfalseです。UI でログインのエラー コードを非表示にするには、trueに設定します (例:"HideErrorCodesInUi": true)。 -
CookieValidationInterval- ユーザーとテナントがまだアクティブかどうかや、ユーザーが別のブラウザーにログインしていないかどうかを判断するために、Cookie が確認されるまでの間隔 (秒単位) を表します。appsetttings.Production.json内の値は、同じ設定を持つ Orchestrator から自動的に移行されます。既定では、値は
appsettings.Production.jsonおよびコード内で60秒に設定されています。 -
CookieExpireMinutes- Identity Server の Cookie の有効期限が切れるまでの時間 (分単位) を表します。appsetttings.Production.json内の値は、同じ設定を持つ Orchestrator から自動的に移行されます。既定では、値は
appsettings.Production.jsonおよびコード内で60分に設定されています。 -
OrchestratorUrl- Orchestrator の URL を表します。ID 管理ポータルの [ハブ] メニュー内の Orchestrator アイコンをクリックするとリダイレクトされる URL です。この値はインストール中に
appsettings.Production.jsonに設定されます。注:OrchestratorUrlの値は小文字の URL を入力するようにしてください。それ以外の場合にはエラーが発生します。"AppSettings": { "IdentityServerAddress": "https://myIdentity.domain.local/identity", "EnablePII": false, "HideErrorCodesInUi": true, "CookieExpireMinutes": 30, "OrchestratorUrl": "https://myOrchestratorURL.domain.local" } }"AppSettings": { "IdentityServerAddress": "https://myIdentity.domain.local/identity", "EnablePII": false, "HideErrorCodesInUi": true, "CookieExpireMinutes": 30, "OrchestratorUrl": "https://myOrchestratorURL.domain.local" } }
ローカライズ
LocalizationSettings セクションには、コード内の次の既定値が含まれます。
"LocalizationSettings": {
"EnabledLanguages": "en,ja,de,es,es-MX,fr,ko,pt,pt-BR,ru,tr,zh-CN"
}
"LocalizationSettings": {
"EnabledLanguages": "en,ja,de,es,es-MX,fr,ko,pt,pt-BR,ru,tr,zh-CN"
}
EnabledLanguages- Identity Server で使用可能な言語が表示されます。使用可能な言語の数を制限するために使用します。
ロード バランサー
LoadBalancerSettings セクションには、appsettings.Production.json およびコード内の次の既定値が含まれます。
"LoadBalancerSettings": {
"UseRedis": false,
"RedisConnectionString": "",
"SlidingExpirationTimeInSeconds": 600
}
"LoadBalancerSettings": {
"UseRedis": false,
"RedisConnectionString": "",
"SlidingExpirationTimeInSeconds": 600
}
マルチノード アップグレードの場合、appsetttings.Production.json 内の値は Orchestrator の UiPath.Orchestrator.dll.config から自動的に移行されます。Redis が Orchestrator 内に設定されていない場合、appsettings.Production.json にはこの設定が含まれます。
UseRedis- データベースとして Redis を使用して、ロード バランサー経由で接続しているすべてのサーバーとの間でメッセージの配信とキャッシュ処理を行います。マルチノードの場合、これは必須です。RedisConnectionString-LoadBalancer.UseRedisがtrueに設定されている場合にのみ使用できます。Redis サーバーを設定するための接続文字列です。サーバーの URL、パスワード、Redis が使用するポートを含みます。また、Orchestrator ノードと Redis サービスの間で SSL 暗号化接続を有効化することもできます。詳しくは、こちらをご覧ください。 例:- SSL が有効な場合 -
"RedisConnectionString": "DOCWREDIS02:6379,password=12345678,ssl=true" - SSL が有効でない場合 -
"RedisConnectionString": "DOCWREDIS02:6379,password=12345678"
- SSL が有効な場合 -
SlidingExpirationTimeInSeconds- キャッシュ内項目のスライド式有効期限を制御します。この有効期限は、Redis キャッシュとメモリ内キャッシュ (Redis が利用できない場合の既定値) の両方に適用されます。
署名資格情報
SigningCredentialSettings セクションには、Identity Server によって生成されたトークンの署名に使用される証明書の場所を記述します。このセクションの設定値は、ユーザーの入力に基づいてインストーラーによって設定されます。証明書ストアまたは Azure Key Vault からの証明書の読み取りを許可するように設定できます。
証明書のローテーションの設定
-
SigningCredential- 既定の証明書のName、Location、およびNameTypeを指定するために使用します。 -
ValidationKeys- 2 番目の証明書のName、Location、およびNameTypeを指定するために使用します。これは、証明書のローテーションに必要です。注:セキュリティ上の理由から、署名証明書には 2048 ビットの公開キーが必要です。証明書が有効かつ期限が切れておらず、Identity Server が秘密キーにアクセスできることを確認してください。
Refer to Certificate Rotation for more on the adjustments you need to make to the
SigningCredentialSettingssection to ensure that you always use a certificate within its validity period.
資格情報ストアの場所の設定例
以下が、資格情報ストア内で資格情報を検索するためのクラシックな設定です。
"SigningCredentialSettings": {
"StoreLocation": {
"Name": "30f3c11e676fc8eb1f9dd4e330f3ce668d796796",
"Location": "LocalMachine",
"NameType": "Thumbprint"
}
"SigningCredentialSettings": {
"StoreLocation": {
"Name": "30f3c11e676fc8eb1f9dd4e330f3ce668d796796",
"Location": "LocalMachine",
"NameType": "Thumbprint"
}
この例では、Name は拇印の値を表します。
Location と NameType に他の値を使用することはお勧めしません。
Azure Key Vault の場所の設定例
"SigningCredentialSettings": {
"AzureKeyVaultLocation": {
"KeyName": "key_name_534553553"
}
"SigningCredentialSettings": {
"AzureKeyVaultLocation": {
"KeyName": "key_name_534553553"
}
この例では、KeyName は Azure Key Vault 内で検索するキーを表します。
認可
RestrictBasicAuthentication- ユーザーによる Orchestrator インスタンスへの基本認証資格情報を使用したログインを可能にするかどうかを制御できます。既定では、この設定はappsettings.Production.jsonファイルに表示されません。次の値を使用できます。true- ユーザーは基本認証資格情報を使用してログインできません。false- ユーザーは基本認証資格情報を使用してログインできます。これは既定値です。
EnableBasicAuthenticationForHostTenant- ホスト管理者による Orchestrator インスタンスのホスト テナントへの基本認証資格情報を使用したログインを可能にするかどうかを制御できます。既定では、この設定はappsettings.Production.jsonファイルに表示されません。次の値を使用できます。true- ホスト管理者は基本認証資格情報を使用してログインできます。これは既定値です。false- ホスト管理者は基本認証資格情報を使用してログインできません。
このパラメーターは RestrictBasicAuthentication パラメーターをバイパスします。つまり、EnableBasicAuthenticationForHostTenant が true に設定され、RestrictBasicAuthentication が true に設定されている場合は、ホスト レベルでの基本認証の資格情報を使用してログインできることになります。