- 基本情報
- 要件
- ベスト プラクティス
- インストール
- 更新
- Identity Server
- ハードウェアおよびソフトウェアの要件
- インストールの前提条件
- インストール
- メンテナンスに関する考慮事項
- Identity Server のトラブルシューティング
- 起動エラーのトラブルシューティング
ログのその他の情報を表示する
Identity Server がスローするエラー メッセージには機密情報が含まれる場合があります。たとえば、Identity Server によって生成されたアクセス トークンの署名に使用された証明書が、2048 ビットではなく 1024 ビットの公開キーだった場合、新たにインストールまたはアップグレードした Orchestrator テナントにログインしようとすると、次のエラー メッセージが表示されます。
InternalServerError - IDX10630 The '[PII is hidden. For more details, see https://aka.ms/IdentityModel/PII.]'
To enable the logging of sensitive information such as certificate public keys or hidden PII (personally identifiable information), update the following setting in the Identity Server's appsettings.Production.json file, within your existing AppSettings section:
"AppSettings": {
"EnablePII": true
},
"AppSettings": {
"EnablePII": true
},
Even after updating the EnablePII setting in the Identity Server's appsettings.Production.json file, some information might still be hidden. To display Orchestrator PII, add the ExternalAuth.ShowPII setting to Orchestrator's UiPath.Orchestrator.dll.config.
この新しい設定により、より役に立つ情報がエラー メッセージに表示されるようになります。
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 ホスティング バンドルのインストール
.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 以降のバージョンへアップグレードすると [外部プロバイダー] ページにアクセスできない
Orchestrator を v2020.4+ に更新すると、Identity Server は以前の設定を移行します。以前に Windows AD ユーザーの自動ログインを設定したときに Windows 認証を有効化していた場合、アップグレードの実行後、そのユーザーが以前に Identity Server にログインしていると、[ 外部プロバイダー ] ページにアクセスできません。ユーザーは、Windows 資格情報を入力した後、テナントに直接ログインします。
ログイン ページにアクセスできない場合、ホスト管理者はホスト テナントにログインできず、ID 管理ポータルにもアクセスできません。
この問題が発生した場合は、シークレット モードでブラウザーを開いて「https://<OrchestratorURL>/identity/configuration」のような URL を入力してください。
/api/account/authenticate の呼び出しが、初回ログイン時にパスワードを変更したユーザーに対して失敗する
新しく作成したユーザーが Orchestrator への初回ログイン時にパスワードを変更した場合、PowerShell を介した何らかの呼び出しを /api/account/authenticate エンドポイント に対して実行すると、 Invalid credentials, failed to login エラー メッセージが表示されます。
その場合、ユーザーは Orchestrator の [プロファイル] ページでパスワードを変更する必要があります。
インストール後にキーセットが存在しないエラー
UiPath Orchestrator v2020.4 のインストール後、Identity Server で使用する証明書に適切な権限が設定されていないと、内部サーバー エラー 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
Orchestrator のインストール環境に応じて $siteName の値を変更します。
設定に何らかの変更を加えたら、IIS サイトを再起動します。
更新中に RobotKeyMigration が失敗する
Identity Server サービスを更新/アップグレードする際は、あらかじめ Orchestrator サービスを停止する必要があります。Identity Server の更新中に Orchestrator 内でロボットに対する変更が行われた場合、更新に失敗します。
この問題が発生した場合は Orchestrator サービスを停止して移行を再度実行してください。
非 ASCII 文字を含む言語を使用したデプロイ
非 ASCII 文字を含む言語でのローカライズに関する問題に、複数の問題が関連しています。完全なローカライズ サポートが必要な場合は、Insights v20.10 以降にアップグレードしてください。
Identity Server の UI で SAML の設定を利用不可に設定する
以下の回避策は、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内の対応するノードにマッピングします。図 1. 外部プロバイダー
<?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 イベント ビューアーを使用できます。
ベアラー トークンの有効期限を更新する
Orchestrator の UiPath.Orchestrator.dll.config ファイルでは、ベアラー トークンの有効期限を更新できません。
トークンの有効期限を変更するには、Identity Server の 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'
管理ポータルのタイムアウト期間を設定する
Orchestrator の UiPath.Orchestrator.dll.config ファイルでは、ホストレベルおよび組織レベルの管理ポータルでの認証に使用されるトークンの有効期限を更新できません。そのため、ユーザー セッションはタイムアウトしません。
これらのポータルにタイムアウト期間を設定するには、以下の手順に従って accessTokenLifetime プロパティを更新します。
A. API 経由
- ホストのクライアント インストール トークンを取得します。
- システム管理者ユーザーをログアウトします。
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プロパティの更新された値が含まれていることを確認します。
SQL 経由
次の例では、タイムアウト期間を 86400 秒 (24 時間) に設定します。
UPDATE [identity].[Clients] SET AccessTokenLifetime = 86400 WHERE ClientName = 'Portal.OpenId'
UPDATE [identity].[Clients] SET AccessTokenLifetime = 86400 WHERE ClientName = 'Portal.OpenId'
ログアウトする際に 404 エラーが断続的に発生する
ログアウトの要求に含まれる URL クエリの文字列は、IIS で許可されている既定のクエリ文字列の最大長を超える場合があります。この設定を変更する方法は 2 つあります。
v2021.10 以降、web.config への変更はアップグレード時には保持されません。
IIS 管理ツールを使用する
- [接続] ツリーで、[サイト] > [UiPath Orchestrator] > [Identity] に移動します。
- [要求のフィルタリング] アイコンをダブルクリックします。
- 右側のペインで、[機能設定の編集] をクリックします。
- [クエリ文字列の最大長 (バイト)] の値を増やします。
図 2. 要求フィルター設定の編集
また、クエリ文字列は URL 全体の長さの一部であるため、[URL の最大長 (バイト)] を増やすこともできます。
Identity Web.config を変更する
-
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
複数のテナントに属するユーザーが認証を試行すると 404 エラーが発生する
複数のテナントに属するユーザーで、認証時に「Error while contacting partition service to validate the organization (#404) (組織の検証時、パーティション サービスと通信中にエラーが発生しました (#404))」というエラーが発生します。このエラーは、認証要求が IIS の既定のクエリ文字列の長さ制限 (2048 文字) を超えているために発生し、特にユーザーが多数のテナント (一般的には 30 を超えるテナント) に関連付けられている場合に発生します。
この問題を解決するには、IIS のクエリ文字列の長さ制限を調整します。
IIS 管理ツールを使用する
- [接続] ツリーで、[サイト] > [UiPath Orchestrator] > [Identity] に移動します。
- [要求のフィルタリング] アイコンをダブルクリックします。
- 右側のペインで、[機能設定の編集] をクリックします。
- [クエリ文字列の最大長 (バイト)] の値を増やします。
図 3. 要求フィルター設定の編集
また、クエリ文字列は URL 全体の長さの一部であるため、[URL の最大長 (バイト)] を増やすこともできます。
Identity Web.config を変更する
-
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>
Orchestrator 2021.10 以降へのアップグレード後に Active Directory の操作が失敗する
Orchestrator スタンドアロン 2021.10 以降に更新してから認証を試みると、Active Directory の操作が失敗するようになります。
一時的な修正として、IIS の loadUserProfile を True に設定することができます。
- ログのその他の情報を表示する
- 誤った .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 の操作が失敗する