- Démarrage
- Prérequis
- Meilleures pratiques
- Installation
- Mise à jour en cours
- Serveur d'identité
- Module complémentaire haute disponibilité
- Résolution des erreurs de démarrage
Dépannage du serveur d'identité
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.]'
appsettings.Production.json
du serveur d’identité dans votre section AppSettings :
"AppSettings": {
"EnablePII": true
},
"AppSettings": {
"EnablePII": true
},
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.config
d'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')
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.
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
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.
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 $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
en fonction de votre installation d'Orchestrator.
Redémarrez le site IIS après avoir effectué vos changements de configuration.
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.
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.
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 le Identity Server UI devrait répondre à la plupart de vos besoins en termes de configuration SAML, cette section fournit un moyen de contrôler les paramètres SAML supplémentaires qui ne sont pas exposés par défaut. Pour une liste complète des paramètres disponibles, reportez-vous à la documentation officielle 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 :
- 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.
-
Modifiez le
appsettings.json
ou le fichierappsettings.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 leappsettings.json
ou leappsettings.Production.json
."Authentication": { "Saml2": { "ConfigFile": "saml2.xml" } },
"Authentication": { "Saml2": { "ConfigFile": "saml2.xml" } }, - Créez un fichier XML appelé
saml2.xml
et ajoutez la configuration SAML. -
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> - Ajoutez les paramètres dont vous avez besoin. Utilisez par exemple des scénarios d'équilibrage de charge
publicOrigin
ou desminIncomingSigningAlgorithm
si vous souhaitez modifier l’option SHA256 par défaut. - 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.
UiPath.Orchestrator.dll.config
d'Orchestrator n'offre pas de moyen de mettre à jour l'heure d'expiration du jeton du porteur.
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'
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.
accessTokenLifetime
en suivant les instructions ci-dessous :
- Obtenez un jeton d'installation client pour l'hôte.
- Déconnectez l'utilisateur administrateur système.
- Accédez à l'API Swagger Identity Server sur
https://<server>/identity/swagger
. - Autorisez en utilisant
Bearer <token>
, où la valeur<token>
est celle obtenue à l'étape 1. - Récupérez les détails du client à l'aide de GET
/api/Client/6654E78D-8490-4ABE-9C40-D28267C89F3A
. - 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). - Utilisez le corps de réponse modifié dans une requête PUT
/api/Client/6654E78D-8490-4ABE-9C40-D28267C89F3A
. - Vérifiez que le corps de la réponse contient la valeur mise à jour de la propriété
accessTokenLifetime
.
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 :
web.config
ne sont pas conservées lors de la mise à niveau à partir de la version 2021.10.
- Dans l'arborescence Connexions (Connections), accédez à Sites -> UiPath Orchestrator -> Identité (Identity).
- Double-cliquez sur l'icône de filtrage des demandes (Request Filtering).
- Dans le volet de droite, cliquez sur Modifier les paramètres de la fonctionnalité (Edit Feature Settings).
- Augmentez la valeur de Chaîne de requête maximale (octets) (Maximum query string (Bytes)).
-
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 installationsMSI
. - 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.
- Par défaut, il s'agit de
-
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 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.
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
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.
- Dans l'arborescence Connexions (Connections), accédez à Sites -> UiPath Orchestrator -> Identité (Identity).
- Double-cliquez sur l'icône de filtrage des demandes (Request Filtering).
- Dans le volet de droite, cliquez sur Modifier les paramètres de la fonctionnalité (Edit Feature Settings).
- Augmentez la valeur de Chaîne de requête maximale (octets) (Maximum query string (Bytes)).
-
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 installationsMSI
. - 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.
- Par défaut, il s'agit de
-
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>
Après une mise à jour vers Orchestrator Standalone 2021.10+, les opérations AD commencent à échouer lorsque vous essayez de vous authentifier.
Une solution temporaire consiste à définir loadUserProfile dans IIS sur True.
- Visualisation d'informations supplémentaires dans les journaux
- Installation défectueuse de .NET Core Hosting Bundle
- Impossible d'accéder à la page Fournisseurs externes (External Providers) après la mise à niveau vers Orchestrator v2020.4+
- /api/account/authenticate Échec des appels pour les utilisateurs qui ont modifié les mots de passe lors de la première connexion
- Le jeu de clés n’existe pas (Keyset n’existe pas) Erreur après l’installation
- Échec de RobotKeyMigration lors de la mise à jour
- Deployments en utilisant des langues qui contiennent des caractères non-ascii
- Configuration des paramètres SAML non disponibles dans l'interface utilisateur Identity Server
- Mise à jour du délai d'expiration du jeton du porteur
- Définition d'un intervalle de délai d'attente pour les portails de gestion
- A. Via l'API
- Via SQL
- Erreur 404 intermittente lors de la déconnexion
- Utilisation de l'outil Gestionnaire IIS
- Modification de l'identité Web.config
- Échec de la mise à niveau avec un délai d'expiration
- 404 lorsqu'un utilisateur associé à plusieurs locataires tente de s'authentifier
- Utilisation de l'outil Gestionnaire IIS
- Modification de l'identité Web.config
- Les opérations AD échouent après la mise à niveau vers Orchestrator 2021.10+