Orchestrator
2022.10
バナーの背景画像
Orchestrator インストール ガイド
最終更新日 2024年4月19日

Identity Server のトラブルシューティング

ログのその他の情報を表示する

Identity Server がスローするエラー メッセージには機密情報が含まれる場合があります。たとえば、Identity Server によって生成されたアクセス トークンの署名に使用された証明書が、2048 ビットではなく 1024 ビットの公開キーだった場合、新たにインストールまたはアップグレードした Orchestrator テナントにログインしようとすると、次のエラー メッセージが表示されます。

InternalServerError - IDX10630 The '[PII is hidden. For more details, see https://aka.ms/IdentityModel/PII.]'

証明書の公開鍵や非表示の PII (個人を特定可能な情報) など、機密情報のログを有効化するには、Identity Server の appsettings.Production.json ファイルの既存の AppSettings セクションの設定を次のように更新します。
"AppSettings": {
    "EnablePII": true
  },"AppSettings": {
    "EnablePII": true
  },
注: Identity Server の appsettings.Production.json ファイルで EnablePII の設定を更新しても、一部の情報が非表示のままになる場合があります。Orchestrator の PII を表示するには、Orchestrator の UiPath.Orchestrator.dll.configExternalAuth.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 ホスティング バンドルのインストール

.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 認証を有効化し、同時に Windows AD ユーザーの自動ログインを設定していた場合、アップグレードを実行すると、以前に 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 $aclimport-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 ファイルを上書きする必要があります。その管理方法を以下に示します。

  1. ID 管理ポータルの [外部プロバイダー] ページで、SAML 外部 ID プロバイダーが有効化されていて、適切に設定されていることを確認してください。
  2. 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"
       }
     },
  3. saml2.xml という名前の XML ファイルを作成して、SAML 設定を追加します。
  4. 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>
  5. 必要な設定を追加します。たとえば、負荷を分散したい場合は publicOrigin を使用し、既定の SHA256 オプションを変更する場合は、minIncomingSigningAlgorithm を使用します。
  6. ファイルを保存し、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 経由

  1. ホストのクライアント インストール トークンを取得します。
  2. システム管理者ユーザーをログアウトします。
  3. https://<server>/identity/swagger の Identity Server Swagger API に移動します。
  4. Bearer <token> を使用して認可します。<token> の値は手順 1 で取得した値です。
  5. GET /api/Client/6654E78D-8490-4ABE-9C40-D28267C89F3A を使用してクライアントの詳細情報を取得します。
  6. 応答本文をコピーして、accessTokenLifetime プロパティの値を目的のトークンの有効期限値 (秒) に変更します。
  7. PUT ​/api​/Client​/6654E78D-8490-4ABE-9C40-D28267C89F3A リクエスト内で編集した応答本文を使用します。
  8. 応答本文に、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 管理ツールを使用する

  1. [接続] ツリーで、[サイト] > [UiPath Orchestrator] > [Identity] に移動します。
  2. [要求のフィルタリング] アイコンをダブルクリックします。
  3. 右側のペインで、[機能設定の編集] をクリックします。
  4. [クエリ文字列の最大長 (バイト)] の値を増やします。


注: また、クエリ文字列は URL 全体の長さの一部であるため、[URL の最大長 (バイト)] を増やすこともできます。

Identity Web.config を変更する

  1. 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 を変更していることを確認してください。
  2. ファイルをテキスト エディターで開き、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] < @ConsumedTimeDELETE [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 管理ツールを使用する

  1. [接続] ツリーで、[サイト] > [UiPath Orchestrator] > [Identity] に移動します。
  2. [要求のフィルタリング] アイコンをダブルクリックします。
  3. 右側のペインで、[機能設定の編集] をクリックします。
  4. [クエリ文字列の最大長 (バイト)] の値を増やします。


注: また、クエリ文字列は URL 全体の長さの一部であるため、[URL の最大長 (バイト)] を増やすこともできます。

Identity Web.config を変更する

  1. 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 を変更していることを確認してください。
  2. ファイルをテキスト エディターで開き、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 v2021.10 以降へのアップグレード後に Active Directory の操作が失敗する

Orchestrator スタンドアロン 2021.10 以降に更新してから認証を試みると、Active Directory の操作が失敗するようになります。

注:

一時的な修正として、IIS の loadUserProfileTrue に設定することができます。

Was this page helpful?

サポートを受ける
RPA について学ぶ - オートメーション コース
UiPath コミュニティ フォーラム
UiPath ロゴ (白)
信頼とセキュリティ
© 2005-2024 UiPath. All rights reserved.