Orchestrator
2022.10
False
Image de fond de la bannière
Guide d'installation d'Orchestrator
Dernière mise à jour 19 avr. 2024

Dépannage du serveur d'identité

Visualisation d'informations supplémentaires dans les journaux

Il est possible de rencontrer des situations dans lesquelles le serveur d'identité envoie des messages d'erreur contenant des informations sensibles. Par exemple, si le certificat utilisé pour signer les jetons d'accès générés par le serveur d'identité est une clé publique 1024 bits au lieu de 2048 bits, vous recevrez le message d'erreur suivant lorsque vous tenterez de vous connecter à un locataire Orchestrator récemment installé ou mis à niveau :

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

Pour activer la journalisation d’informations sensibles telles que les clés publiques de certificat ou les PII masquées (informations d’identification personnelles), mettez à jour le paramètre suivant dans le fichier appsettings.Production.json d'Identity Server dans votre section AppSettings :
"AppSettings": {
    "EnablePII": true
  },"AppSettings": {
    "EnablePII": true
  },
Remarque : Même après la mise à jour du paramètre EnablePII dans le fichier Identity Server appsettings.Production.json , certaines informations peuvent encore être masquées. Pour afficher les informations personnelles d'Orchestrator, ajoutez le paramètre ExternalAuth.ShowPII au UiPath.Orchestrator.dll.configd'Orchestrator.

Avec ce nouveau paramètre, le message d’erreur révèle des informations plus utiles :

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')

Installation défectueuse de .NET Core Hosting Bundle

Il peut arriver que le bundle d’hébergement .NET Core ne soit pas installé correctement. Cela peut avoir les effets suivants :

  • Les applications .NET Core s'exécutant dans IIS (telles que le serveur d'identité) ne démarrent pas. Au lieu de cela, l'erreur System.IO.IOException: IDX20807: Unable to retrieve document s'affiche.
  • Une erreur s’affiche lorsque vous accédez au Mappage du gestionnaire du serveur d'identité dans IIS.
  • L'erreur 500.19 Error Code: 0x8007000d se produit lors de la visite de l'URL https://localhost/identity dans un navigateur.

La solution évidente à ce problème est de réinstaller le pack .NET Core Hosting Bundle.

Impossible d'accéder à la page Fournisseurs externes (External Providers) après la mise à niveau vers Orchestrator v2020.4+

Lorsque vous mettez à jour Orchestrator vers 2020.4+, Identity Server migre vos paramètres précédents. Si vous aviez précédemment activé l'authentification Windows tout ayant configuré la connexion automatique pour les utilisateurs Windows AD, après avoir effectué la mise à niveau, les utilisateurs ne peuvent pas accéder à la page Fournisseurs externes (External Providers) s'ils se sont précédemment connectés à Identity Server. Les utilisateurs sont connectés aux locataires directement après avoir entré leurs informations d'identification Windows.

Sans accès à la page de connexion, l'administrateur de l'hôte ne peut ni se connecter au locataire de l'hôte ni accéder au portail de gestion des identités.

Si c’est votre cas, ouvrez un nouveau navigateur en mode incognito et tapez https://<OrchestratorURL>/identity/configuration.

/api/account/authenticate Échec des appels pour les utilisateurs qui ont modifié les mots de passe lors de la première connexion

En ce qui concerne les utilisateurs récemment créés ayant changé leur mot de passe lors de leur première connexion à Orchestrator, tous les appels effectués via PowerShell vers le point de terminaison /api/account/authenticate entraînent un message d’erreur Invalid credentials, failed to login.

Les utilisateurs qui se trouvent dans cette situation doivent changer leur mot de passe depuis la page Profil d'Orchestrator.

Le jeu de clés n’existe pas (Keyset n’existe pas) Erreur après l’installation

Après l'installation d'UiPath Orchestrator 2020.4, l'erreur interne du serveur Keyset does not exist peut se produire si le certificat utilisé pour Identity Server ne dispose pas des autorisations appropriées.

Exécutez le script PowerShell suivant en tant qu'administrateur pour accorder les autorisations du certificat :

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
Remarque :
Modifiez la valeur $siteName en fonction de votre installation d'Orchestrator.

Redémarrez le site IIS après avoir effectué vos changements de configuration.

Échec de RobotKeyMigration lors de la mise à jour

Le service Orchestrator doit être arrêté avant toute mise à jour/mise à niveau du service du serveur d'identité. Les modifications apportées aux robots dans Orchestrator au cours de la mise à jour du serveur d'identité entraînent un échec de la mise à jour.

Si cela se produit, arrêtez le service Orchestrator et ré-exécutez la migration.

Deployments en utilisant des langues qui contiennent des caractères non-ascii

Plusieurs problèmes ont été liés à des problèmes de localisation dans les langues contenant des caractères non ASCII. Pour une prise en charge complète de la localisation, veuillez effectuer une mise à niveau vers la version 20.10+ d'Insights.

Configuration des paramètres SAML non disponibles dans l'interface utilisateur Identity Server

Le contournement suivant concerne les scénarios dans lesquels vous avez installé Orchestrator v2020.4 ou une version ultérieure et qui nécessitent des paramètres spécifiques pour que votre fournisseur SAML puisse fonctionner.

Alors que l’interface utilisateur du serveur d’identité devrait répondre à la plupart de vos besoins en termes de configuration SAML, cette section fournit un moyen de contrôler des paramètres SAML supplémentaires qui ne sont pas exposés par défaut. Pour obtenir la liste complète des paramètres disponibles, consultez la documentation officielle de Sustainsys.Saml2.

Sustainsys.Saml2 est le Identity Server de la bibliothèque sur lequel repose le support SAML, et il utilise un fichier de configuration XML. Pour avoir accès aux champs qui ne sont pas disponibles dans l'interface utilisateur du Identity Server, vous devez écraser ce fichier XML. La procédure suivante décrit comment vous pouvez y parvenir :

  1. Assurez-vous d'avoir activé et correctement configuré le fournisseur d'identité externe SAML sur la page Fournisseurs externes ( External Providers ) du portail de gestion des identités.
  2. Modifiez le appsettings.json ou le fichier appsettings.Production.json pour inclure la section suivante au niveau des racines. Cela indique à Identity Server de rechercher un fichier appelé saml2.xml dans le même dossier que l’application Web et le appsettings.json ou le appsettings.Production.json.
    "Authentication": {
       "Saml2": {
         "ConfigFile": "saml2.xml"
       }
     },"Authentication": {
       "Saml2": {
         "ConfigFile": "saml2.xml"
       }
     },
  3. Créez un fichier XML appelé saml2.xml et ajoutez la configuration SAML.
  4. Associez les champs de la page Fournisseurs externes du portail de gestion des identités aux nœuds correspondants dans 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. Ajoutez les paramètres dont vous avez besoin. Utilisez par exemple des scénarios d'équilibrage de charge publicOrigin ou des minIncomingSigningAlgorithm si vous souhaitez modifier l’option SHA256 par défaut.
  6. Enregistrez les fichiers et redémarrez l'application web Identity Server dans IIS. Si vous rencontrez des erreurs avec la configuration SAML, les événements d'erreur devraient être visibles dans vos journalisations. Vous pouvez utiliser Windows Event Viewer, l'outil par défaut à cet effet.

Mise à jour du délai d'expiration du jeton du porteur

Le fichier UiPath.Orchestrator.dll.config d'Orchestrator n'offre pas de moyen de mettre à jour l'heure d'expiration du jeton du porteur.
Les modifications ne sont possibles qu'en ajustant la propriété AccessTokenLifetime du client Orchestrator.Ropc dans la base de données Clients d'Identity Server.

Dans l'exemple suivant, le délai d'expiration du jeton du porteur est défini sur 86 400 secondes (24 heures).

UPDATE [identity].[Clients]
SET AccessTokenLifetime = 86400
WHERE ClientName = 'Orchestrator.Ropc'UPDATE [identity].[Clients]
SET AccessTokenLifetime = 86400
WHERE ClientName = 'Orchestrator.Ropc'

Définition d'un intervalle de délai d'attente pour les portails de gestion

Le fichier UiPath.Orchestrator.dll.config d'Orchestrator ne permet pas de mettre à jour le délai d'expiration du jeton utilisé pour s'authentifier auprès des portails de gestion au niveau de l'hôte et de l'organisation. Par conséquent, les sessions utilisateur n'expirent pas.
Pour définir un intervalle de temps pour le délai d'expiration de ces portails, vous pouvez mettre à jour la propriété accessTokenLifetime en suivant les instructions ci-dessous :

A. Via l'API

  1. Obtenez un jeton d’installation client pour l’hôte.
  2. Déconnectez l'utilisateur administrateur système.
  3. Accédez à l'API Swagger Identity Server sur https://<server>/identity/swagger.
  4. Autorisez en utilisant Bearer <token>, où la valeur <token> est celle obtenue à l'étape 1.
  5. Récupérez les détails du client à l'aide de GET /api/Client/6654E78D-8490-4ABE-9C40-D28267C89F3A.
  6. Copiez le corps de la réponse et remplacez la valeur de la propriété accessTokenLifetime par la valeur d'expiration du jeton souhaitée (en secondes).
  7. Utilisez le corps de réponse modifié dans une requête PUT ​/api​/Client​/6654E78D-8490-4ABE-9C40-D28267C89F3A.
  8. Vérifiez que le corps de la réponse contient la valeur mise à jour de la propriété accessTokenLifetime.

Via SQL

L'exemple ci-dessous définit l'intervalle de délai d'attente sur 86 400 secondes (24 heures) :

UPDATE [identity].[Clients] SET AccessTokenLifetime = 86400 WHERE ClientName = 'Portal.OpenId'UPDATE [identity].[Clients] SET AccessTokenLifetime = 86400 WHERE ClientName = 'Portal.OpenId'

Erreur 404 intermittente lors de la déconnexion

La demande de déconnexion peut parfois avoir une chaîne de requête d'URL qui dépasse la longueur de chaîne de requête maximale par défaut autorisée par IIS. Voici deux façons de modifier ce paramètre :

Important : Les modifications apportées au web.config ne sont pas conservées lors de la mise à niveau à partir de la version 2021.10.

Utilisation de l'outil Gestionnaire IIS

  1. Dans l'arborescence Connexions (Connections), accédez à Sites -> UiPath Orchestrator -> Identité (Identity).
  2. Double-cliquez sur l'icône de filtrage des demandes (Request Filtering).
  3. Dans le volet de droite, cliquez sur Modifier les paramètres de la fonctionnalité (Edit Feature Settings).
  4. Augmentez la valeur de Chaîne de requête maximale (octets) (Maximum query string (Bytes)).


Remarque : Vous pouvez également augmenter la Longueur maximale de l'URL (octets) (Maximum URL length (Bytes)) car la chaîne de requête fait partie de la longueur globale de l'URL.

Modification de l'identité Web.config

  1. Recherchez le fichier web.config d'Identity.
    • Par défaut, il s'agit de C:\Program Files (x86)\UiPath\Orchestrator\Identity\web.config pour les installations MSI.
    • Pour les installations Azure App Service, ouvrez Application de l'éditeur de service (App Service Editor) sous Outils de développement (Development Tools) et accédez à wwwroot/Web/web.config. Assurez-vous que vous modifiez Identity, et non Orchestrator.
  2. Ouvrez avec un éditeur de texte et recherchez le nœud requestFiltering, qui se trouve sous le nœud de sécurité. Sous requestFiltering, ajoutez un nœud requestLimits comme indiqué ci-dessous :

    <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>

Échec de la mise à niveau avec un délai d'expiration

Les mises à niveau vers la version 2022.4 peuvent échouer avec une erreur de délai d'expiration en raison d'un problème de base de données Identity Server. Pour résoudre le problème, vous devez exécuter le script suivant et réessayer l'opération.

Attention : L'exécution du script suivant invalide tous les jetons et nécessite que toutes les applications et tous les robots se réauthentifient.
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 lorsqu'un utilisateur associé à plusieurs locataires tente de s'authentifier

Les utilisateurs qui font partie de plusieurs locataires rencontrent une erreur « Erreur lors de la prise de contact avec le service de partition pour valider l'organisation (#404) » (Error while contacting partition service to validate the organization (#404)) lors de l'authentification. Cette erreur se produit car la demande d’authentification dépasse la limite de longueur de chaîne de requête par défaut dans IIS (2 048 caractères), en particulier pour les utilisateurs qui sont associés à un nombre important de locataires (généralement plus de 30 locataires).

Pour résoudre ce problème, vous pouvez ajuster la limite de longueur de la chaîne de requête dans IIS.

Utilisation de l'outil Gestionnaire IIS

  1. Dans l'arborescence Connexions (Connections), accédez à Sites -> UiPath Orchestrator -> Identité (Identity).
  2. Double-cliquez sur l'icône de filtrage des demandes (Request Filtering).
  3. Dans le volet de droite, cliquez sur Modifier les paramètres de la fonctionnalité (Edit Feature Settings).
  4. Augmentez la valeur de Chaîne de requête maximale (octets) (Maximum query string (Bytes)).


Remarque : Vous pouvez également augmenter la Longueur maximale de l'URL (octets) (Maximum URL length (Bytes)) car la chaîne de requête fait partie de la longueur globale de l'URL.

Modification de l'identité Web.config

  1. Recherchez le fichier web.config d'Identity.
    • Par défaut, il s'agit de C:\Program Files (x86)\UiPath\Orchestrator\Identity\web.config pour les installations MSI.
    • Pour les installations Azure App Service, ouvrez Application de l'éditeur de service (App Service Editor) sous Outils de développement (Development Tools) et accédez à wwwroot/Web/web.config. Assurez-vous que vous modifiez Identity, et non Orchestrator.
  2. Ouvrez avec un éditeur de texte et recherchez le nœud requestFiltering, qui se trouve sous le nœud de sécurité. Sous requestFiltering, ajoutez un nœud requestLimits comme indiqué ci-dessous :

    <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>

Les opérations AD échouent après la mise à niveau vers Orchestrator 2021.10+

Après une mise à jour vers Orchestrator Standalone 2021.10+, les opérations AD commencent à échouer lorsque vous essayez de vous authentifier.

Remarque :

Une solution temporaire consiste à définir loadUserProfile dans IIS sur True.

Cette page vous a-t-elle été utile ?

Obtenez l'aide dont vous avez besoin
Formation RPA - Cours d'automatisation
Forum de la communauté UiPath
Logo Uipath blanc
Confiance et sécurité
© 2005-2024 UiPath. All rights reserved.