- 基本情報
- 要件
- ベスト プラクティス
- インストール
- 更新
- Identity Server
- ハードウェアおよびソフトウェアの要件
- インストールの前提条件
- インストール
- メンテナンスに関する考慮事項
- Identity Server のトラブルシューティング
- High Availability Add-on
- 起動エラーのトラブルシューティング
Identity Server のトラブルシューティング
Identity Server がスローするエラー メッセージには機密情報が含まれる場合があります。たとえば、Identity Server によって生成されたアクセス トークンの署名に使用された証明書が、2048 ビットではなく 1024 ビットの公開キーだった場合、新たにインストールまたはアップグレードした Orchestrator テナントにログインしようとすると、次のエラー メッセージが表示されます。
InternalServerError - IDX10630 The '[PII is hidden. For more details, see https://aka.ms/IdentityModel/PII.]'
appsettings.Production.json
ファイルの既存の AppSettings セクションの設定を次のように更新します。
"AppSettings": {
"EnablePII": true
},
"AppSettings": {
"EnablePII": true
},
appsettings.Production.json
ファイルで EnablePII
の設定を更新しても、一部の情報が非表示のままになる場合があります。Orchestrator の PII を表示するには、Orchestrator の UiPath.Orchestrator.dll.config
に ExternalAuth.ShowPII の設定を追加します。
この新しい設定により、より役に立つ情報がエラー メッセージに表示されるようになります。
The 'Microsoft.IdentityModel.Tokens.X509SecurityKey, KeyId: 'F9B1F6C18B728C02C8853470C71C365F000C86B5', InternalId: 'd3dadcac-e5aa-48e6-a20a-9232a3c3d16f'.'
for signing cannot be smaller than '2048' bits. KeySize: '1024'. (Parameter 'key.KeySize')
.NET Core ホスティング バンドルが適切にインストールされない場合があります。その場合、次のような影響があると考えられます。
- IIS (Identity Server など) で動作する .NET Core アプリケーションが起動せずに、
System.IO.IOException: IDX20807: Unable to retrieve document
エラーが表示される - IIS 内の Identity Server のハンドラー マッピングにアクセスするとエラーが表示される。
- ブラウザーで URL https://localhost/identity にアクセスすると、エラー
500.19 Error Code: 0x8007000d
が発生します。
この問題への確実な対処方法は、.NET Core ホスティング バンドルを再インストールすることです。
Orchestrator を v2020.4 以降のバージョンに更新する場合、Identity Server は、以前の設定を移行します。以前に Windows 認証を有効化し、同時に Windows AD ユーザーの自動ログインを設定していた場合、アップグレードを実行すると、以前に Identity Server にログインしていたユーザーは、[外部プロバイダー] ページにアクセスできなくなります。これらのユーザーは、各自の Windows 資格情報を入力すると、テナントに直接ログインされます。
ホスト管理者は [ログイン] ページにアクセスできず、ホスト テナントにログインできません。また、ID 管理ポータルにアクセスすることもできません。
https://<OrchestratorURL>/identity/configuration
」のような URL を入力してください。
Invalid credentials, failed to login
というエラー メッセージが表示されます。
その場合、ユーザーは Orchestrator の [プロファイル] ページでパスワードを変更する必要があります。
Keyset does not exist
が発生することがあります。
管理者権限で以下の PowerShell スクリプトを実行して、証明書に権限を付与します。
import-module WebAdministration
$siteName = 'UiPath Orchestrator'
$binding = (Get-ChildItem -Path IIS:\SSLBindings | Where Sites -eq $siteName)[0]
$certLoc = "cert:\LocalMachine\MY\$($binding.Thumbprint)"
$cert = Get-Item $certLoc
$keyPath = $env:ProgramData + "\Microsoft\Crypto\RSA\MachineKeys\"
$keyName = $cert.PrivateKey.CspKeyContainerInfo.UniqueKeyContainerName
$keyFullPath = $keyPath + $keyName
$acl = (Get-Item $keyFullPath).GetAccessControl('Access')
$permission="IIS_IUSRS","Full","Allow"
$accessRule = New-Object -TypeName System.Security.AccessControl.FileSystemAccessRule -ArgumentList $permission
$acl.AddAccessRule($accessRule)
Set-Acl -Path $keyFullPath -AclObject $acl
import-module WebAdministration
$siteName = 'UiPath Orchestrator'
$binding = (Get-ChildItem -Path IIS:\SSLBindings | Where Sites -eq $siteName)[0]
$certLoc = "cert:\LocalMachine\MY\$($binding.Thumbprint)"
$cert = Get-Item $certLoc
$keyPath = $env:ProgramData + "\Microsoft\Crypto\RSA\MachineKeys\"
$keyName = $cert.PrivateKey.CspKeyContainerInfo.UniqueKeyContainerName
$keyFullPath = $keyPath + $keyName
$acl = (Get-Item $keyFullPath).GetAccessControl('Access')
$permission="IIS_IUSRS","Full","Allow"
$accessRule = New-Object -TypeName System.Security.AccessControl.FileSystemAccessRule -ArgumentList $permission
$acl.AddAccessRule($accessRule)
Set-Acl -Path $keyFullPath -AclObject $acl
$siteName
の値を変更します。
設定に何らかの変更を加えたら、IIS サイトを再起動します。
Identity Server サービスを更新/アップグレードする際は、あらかじめ Orchestrator サービスを停止する必要があります。Identity Server の更新中に Orchestrator 内でロボットに対する変更が行われた場合、更新に失敗します。
この問題が発生した場合は Orchestrator サービスを停止して移行を再度実行してください。
非 ASCII 文字を含む言語でのローカライズに関する問題に、複数の問題が関連しています。完全なローカライズ サポートが必要な場合は、Insights v20.10 以降にアップグレードしてください。
以下の回避策は、Orchestrator v2020.4 以降がインストールされていて、SAML プロバイダーが機能するために特定の設定を必要とする場合に適用できます。
Identity Server の UI は SAML 設定に関するほとんどのニーズを満たすはずですが、このセクションでは、既定で公開されていない追加の SAML 設定を制御する方法について説明します。利用可能なすべての設定のリストについては、Sustainsys.Saml2 の公式ドキュメントをご覧ください。
Sustainsys.Saml2 は Identity Server が SAML のサポートのために依存するライブラリで、XML 設定ファイルを使用します。Identity Server の UI で利用できないフィールドにアクセスできるようにするには、この XML ファイルを上書きする必要があります。その管理方法を以下に示します。
- ID 管理ポータルの [外部プロバイダー] ページで、SAML 外部 ID プロバイダーが有効化されていて、適切に設定されていることを確認してください。
-
appsettings.json
ファイルまたはappsettings.Production.json
ファイルを編集して、ルート レベルに以下のセクションを含めるようにします。これにより、Identity Server は、Web アプリケーションおよびappsettings.json
またはappsettings.Production.json
と同じフォルダーでsaml2.xml
というファイルを探すよう指示されます。"Authentication": { "Saml2": { "ConfigFile": "saml2.xml" } },
"Authentication": { "Saml2": { "ConfigFile": "saml2.xml" } }, saml2.xml
という名前の XML ファイルを作成して、SAML 設定を追加します。-
ID 管理ポータルの [外部プロバイダー] ページ上のフィールドを、
saml2.xml
内の対応するノードにマッピングします。<?xml version="1.0" encoding="utf-8"?> <configuration> <configSections> <section name="sustainsys.saml2" type="Sustainsys.Saml2.Configuration.SustainsysSaml2Section, Sustainsys.Saml2" /> </configSections> <sustainsys.saml2 entityId="--1--" returnUrl="--5--"> <identityProviders> <add entityId="--2--" signOnUrl="--3--" allowUnsolicitedAuthnResponse="--4--" binding="--6--"> <signingCertificate storeName="--7--" storeLocation="--8--" findValue="--9--" x509FindType="FindByThumbprint"/> </add> </identityProviders> <serviceCertificates> <add use="Both" storeName="--10--" storeLocation="--11--" findValue="--12--" x509FindType="FindByThumbprint"/> </serviceCertificates> </sustainsys.saml2> </configuration>
<?xml version="1.0" encoding="utf-8"?> <configuration> <configSections> <section name="sustainsys.saml2" type="Sustainsys.Saml2.Configuration.SustainsysSaml2Section, Sustainsys.Saml2" /> </configSections> <sustainsys.saml2 entityId="--1--" returnUrl="--5--"> <identityProviders> <add entityId="--2--" signOnUrl="--3--" allowUnsolicitedAuthnResponse="--4--" binding="--6--"> <signingCertificate storeName="--7--" storeLocation="--8--" findValue="--9--" x509FindType="FindByThumbprint"/> </add> </identityProviders> <serviceCertificates> <add use="Both" storeName="--10--" storeLocation="--11--" findValue="--12--" x509FindType="FindByThumbprint"/> </serviceCertificates> </sustainsys.saml2> </configuration> - 必要な設定を追加します。たとえば、負荷を分散したい場合は
publicOrigin
を使用し、既定の SHA256 オプションを変更する場合は、minIncomingSigningAlgorithm
を使用します。 - ファイルを保存し、IIS で Identity Server の Web アプリケーションを再起動します。SAML 設定でエラーが発生した場合は、エラー イベントがログに表示される必要があります。そのために、既定のツールである Windows イベント ビューアーを使用できます。
UiPath.Orchestrator.dll.config
ファイルでは、ベアラー トークンの有効期限を更新できません。
Clients
データベースで、Orchestrator.Ropc
クライアントの AccessTokenLifetime
プロパティを設定する必要があります。
次の例では、ベアラー トークンの有効期限が 86400 秒 (24 時間) に設定されています。
UPDATE [identity].[Clients]
SET AccessTokenLifetime = 86400
WHERE ClientName = 'Orchestrator.Ropc'
UPDATE [identity].[Clients]
SET AccessTokenLifetime = 86400
WHERE ClientName = 'Orchestrator.Ropc'
UiPath.Orchestrator.dll.config
ファイルでは、ホストレベルおよび組織レベルの管理ポータルでの認証に使用されるトークンの有効期限を更新できません。そのため、ユーザー セッションはタイムアウトしません。
accessTokenLifetime
プロパティを更新します。
- ホストのクライアント インストール トークンを取得します。
- システム管理者ユーザーをログアウトします。
https://<server>/identity/swagger
の Identity Server Swagger API に移動します。Bearer <token>
を使用して認可します。<token>
の値は手順 1 で取得した値です。- GET
/api/Client/6654E78D-8490-4ABE-9C40-D28267C89F3A
を使用してクライアントの詳細情報を取得します。 - 応答本文をコピーして、
accessTokenLifetime
プロパティの値を目的のトークンの有効期限値 (秒) に変更します。 - PUT
/api/Client/6654E78D-8490-4ABE-9C40-D28267C89F3A
リクエスト内で編集した応答本文を使用します。 - 応答本文に、
accessTokenLifetime
プロパティの更新された値が含まれていることを確認します。
ログアウトの要求に含まれる URL クエリの文字列は、IIS で許可されている既定のクエリ文字列の最大長を超える場合があります。この設定を変更する方法は 2 つあります。
web.config
への変更はアップグレード時には保持されません。
- [接続] ツリーで、[サイト] > [UiPath Orchestrator] > [Identity] に移動します。
- [要求のフィルタリング] アイコンをダブルクリックします。
- 右側のペインで、[機能設定の編集] をクリックします。
- [クエリ文字列の最大長 (バイト)] の値を増やします。
-
Identity Server の
web.config
ファイルを探します。MSI
インストールの場合、既定ではC:\Program Files (x86)\UiPath\Orchestrator\Identity\web.config
に存在します。- Azure App Service のインストールの場合、[Development Tools] の [App Service Editor] を開き、
wwwroot/Web/web.config
に移動します。Orchestrator ではなく Identity Server を変更していることを確認してください。
-
ファイルをテキスト エディターで開き、security ノードの下にある requestFiltering ノードを探します。次に示すように、requestFiltering の下に requestLimits ノードを追加します。
<configuration> <location path="." inheritInChildApplications="false"> <system.webServer> <security> <requestFiltering> <requestLimits maxQueryString="4096" /> </requestFiltering> </security> </system.webServer> </location> </configuration>
<configuration> <location path="." inheritInChildApplications="false"> <system.webServer> <security> <requestFiltering> <requestLimits maxQueryString="4096" /> </requestFiltering> </security> </system.webServer> </location> </configuration>
v2022.4 へのアップグレードは、Identity Server データベースの問題によりタイムアウト エラーが発生して失敗する可能性があります。この問題を修正するには、次のスクリプトを実行して操作をリトライする必要があります。
DELETE [identity].[PersistedGrants] WHERE [Expiration] < GETUTCDATE()
DECLARE @ConsumedTime DATETIME = DATEADD(SECOND, -7200, GETUTCDATE())
DELETE [identity].[PersistedGrants] WHERE [ConsumedTime] IS NOT NULL AND [ConsumedTime] < @ConsumedTime
DELETE [identity].[PersistedGrants] WHERE [Expiration] < GETUTCDATE()
DECLARE @ConsumedTime DATETIME = DATEADD(SECOND, -7200, GETUTCDATE())
DELETE [identity].[PersistedGrants] WHERE [ConsumedTime] IS NOT NULL AND [ConsumedTime] < @ConsumedTime
複数のテナントに属するユーザーで、認証時に「Error while contacting partition service to validate the organization (#404) (組織の検証時、パーティション サービスと通信中にエラーが発生しました (#404))」というエラーが発生します。このエラーは、認証要求が IIS の既定のクエリ文字列の長さ制限 (2048 文字) を超えているために発生し、特にユーザーが多数のテナント (一般的には 30 を超えるテナント) に関連付けられている場合に発生します。
この問題を解決するには、IIS のクエリ文字列の長さ制限を調整します。
- [接続] ツリーで、[サイト] > [UiPath Orchestrator] > [Identity] に移動します。
- [要求のフィルタリング] アイコンをダブルクリックします。
- 右側のペインで、[機能設定の編集] をクリックします。
- [クエリ文字列の最大長 (バイト)] の値を増やします。
-
Identity Server の
web.config
ファイルを探します。MSI
インストールの場合、既定ではC:\Program Files (x86)\UiPath\Orchestrator\Identity\web.config
に存在します。- Azure App Service のインストールの場合、[Development Tools] の [App Service Editor] を開き、
wwwroot/Web/web.config
に移動します。Orchestrator ではなく Identity Server を変更していることを確認してください。
-
ファイルをテキスト エディターで開き、security ノードの下にある requestFiltering ノードを探します。次に示すように、requestFiltering の下に requestLimits ノードを追加します。
<configuration> <location path="." inheritInChildApplications="false"> <system.webServer> <security> <requestFiltering> <requestLimits maxQueryString="4096" /> </requestFiltering> </security> </system.webServer> </location> </configuration>
<configuration> <location path="." inheritInChildApplications="false"> <system.webServer> <security> <requestFiltering> <requestLimits maxQueryString="4096" /> </requestFiltering> </security> </system.webServer> </location> </configuration>
- ログのその他の情報を表示する
- 誤った .NET Core ホスティング バンドルのインストール
- Orchestrator v2020.4 以降のバージョンへアップグレードすると [外部プロバイダー] ページにアクセスできない
- /api/account/authenticate の呼び出しが、初回ログイン時にパスワードを変更したユーザーに対して失敗する
- インストール後にキーセットが存在しないエラー
- 更新中に RobotKeyMigration が失敗する
- 非 ASCII 文字を含む言語を使用したデプロイ
- Identity Server の UI で SAML の設定を利用不可に設定する
- ベアラー トークンの有効期限を更新する
- 管理ポータルのタイムアウト期間を設定する
- A. API 経由
- SQL 経由
- ログアウトする際に 404 エラーが断続的に発生する
- IIS 管理ツールを使用する
- Identity Web.config を変更する
- タイムアウトの発生によりアップグレードが失敗する
- 複数のテナントに属するユーザーが認証を試行すると 404 エラーが発生する
- IIS 管理ツールを使用する
- Identity Web.config を変更する
- Orchestrator v2021.10 以降へのアップグレード後に Active Directory の操作が失敗する