Orchestrator
2022.10
False
Imagen de fondo del banner
Guía de instalación de Orchestrator
Última actualización 19 de abr. de 2024

Solución de problemas de Identity Server

Ver información adicional en registros

Pueden producirse situaciones en las que Identity Server produce mensajes de error que contengan información confidencial. Por ejemplo, si el certificado utilizado para firmar los tokens de acceso generados por Identity Server es una clave pública con 1024 bits, en lugar de 2048 bits, se mostrará el siguiente mensaje de error al intentar iniciar sesión en un tenant de Orchestrator recién instalado o actualizado:

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

Para habilitar el registro de información confidencial como las calves públicas de certificados o la PII oculta (información personal identificable), actualiza la siguiente configuración en el appsettings.Production.jsonarchivo de Identity Server dentro de tu sección AppSettings existente:
"AppSettings": {
    "EnablePII": true
  },"AppSettings": {
    "EnablePII": true
  },
Nota: Incluso después de actualizar la EnablePIIconfiguración en el appsettings.Production.jsonarchivo de Identity Server, es posible que cierta información aún esté oculta. Para mostrar la PII de Orchestrator, añade la configuración ExternalAuth.ShowPII a UiPath.Orchestrator.dll.config.

Con esta nueva configuración, el mensaje de error revela información más útil:

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

Instalación defectuosa del paquete de alojamiento de .NET Core

Pueden darse situaciones en las que el paquete de alojamiento .NET Core no esté instalado correctamente. Esto puede tener los siguientes efectos:

  • Las aplicaciones de .NET Core que se ejecutan en IIS (como Identity Server) no se inician. En su lugar ,se muestra el error System.IO.IOException: IDX20807: Unable to retrieve document.
  • Aparecerá un error al acceder a las Asignaciones de controlador para Identity Server en IIS.
  • El error 500.19 Error Code: 0x8007000d se produce al visitar la URL https://localhost/identity en un navegador.

La solución obvia para este problema es reinstalar el paquete de alojamiento de .NET Core.

No se puede acceder a la página Proveedores externos tras actualizar a Orchestrator 2020.4+

Al actualizar Orchestrator a la versión 2020.4+, Identity Server migra sus ajustes anteriores. Si anteriormente habías habilitado la autenticación de Windows y has configurado el inicio de sesión automático para los usuarios de Windows AD, después de realizar la actualización, los usuarios no podrán acceder a la página Proveedores externos si previamente han iniciado sesión en Identity Server. Los usuarios iniciarán sesión directamente en los tenants después de introducir sus credenciales de Windows.

Sin acceso a la página Iniciar sesión, el administrador del host no puede iniciar sesión en el tenant del host y no puede acceder al portal Identity Management.

Si se da el caso, abre un navegador en modo de incógnito y escribe https://<OrchestratorURL>/identity/configuration.

/ api / account / autenticar Llamadas que fallan de usuarios que cambiaron las contraseñas en el primer inicio de sesión

Para los usuarios creados recientemente que cambien sus contraseñas al iniciar sesión en Orchestrator por primera vez, cualquier llamada realizada a través de PowerShell al punto final dará como resultado un mensaje de Invalid credentials, failed to loginerror .

Los usuarios en esta situación deben cambiar sus contraseñar desde la página Perfil de Orchestrator.

Error después de la instalación

Después de instalar UiPath Orchestrator 2020.4, puede producirse el error interno del servidor Keyset does not exist si el certificado utilizado para Identity Server no tiene establecidos los permisos adecuados.

Ejecuta el siguiente script de PowerShell como administrador para otorgar permisos para el certificado:

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
Nota:
Modifica el $siteNamevalor según tu instalación de Orchestrator.

Reinicia el sitio de IIS tras realizar cualquier cambio de configuración.

RobotKeyMigration falla durante la actualización

Deberás detener el servicio de Orchestrator antes de realizar cualquier actualización del servicio Identity Server. Los cambios realizados a los robots en Orchestrator durante la actualización de Identity Server resultarán en una actualización fallida.

Si ocurre esto, detén el servicio de Orchestrator y vuelve a ejecutar la migración.

Implementaciones con idiomas que contienen caracteres no ascii

Se han vinculado varios problemas a problemas de localización en idiomas que contienen caracteres no ascii. Para obtener compatibilidad completa con la localización, actualice a la versión 20.10+ de Insights.

Configuración de los ajustes de SAML no disponible en la IU de Identity Server

La siguiente solución aborda los escenarios en los que se haya instalado Orchestrator v2020.4 o posterior, y necesitarás una configuración específica para que el proveedor de SAML funcione.

Aunque la IU de Identity Server debería satisfacer la mayoría de tus necesidades en cuanto a la configuración de SAML, esta sección proporciona una forma de controlar los ajustes adicionales de SAML que no se exponen por defecto. Para obtener una lista completa de los ajustes disponibles, consulta la documentación oficial de Sustainsys.Saml2.

Sustainsys.Saml2 es la librería en la que depende Identity Server para la compatibilidad de SAML, y utiliza un archivo de configuración XML. Para obtener acceso a los campos que no están disponibles en la IU de Identity Server, deberás anular este archivo XML. El siguiente procedimiento describe cómo puedes administrarlo:

  1. Asegúrate de haber habilitado y configurado correctamente el proveedor de identidades externo de SAML en la página Proveedores externos del portal de gestión de identidades.
  2. Edita los archivos appsettings.json o appsettings.Production.json para incluir la siguiente sección en el nivel de raíz. Esto indica a Identity Server que busque un archivo llamado saml2.xml en la misma carpeta que la aplicación web y el appsettings.jsono appsettings.Production.json.
    "Authentication": {
       "Saml2": {
         "ConfigFile": "saml2.xml"
       }
     },"Authentication": {
       "Saml2": {
         "ConfigFile": "saml2.xml"
       }
     },
  3. Crea un archivo XML llamado saml2.xml y añade la configuración de SAML.
  4. Asgina los campos en la página Proveedores externos en el portal Identity Management a los nodos correspondientes en 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. Añade los ajustes que necesites. Por ejemplo, utiliza publicOrigin en escenarios de carga equilibrada o minIncomingSigningAlgorithm si deseas cambiar la opción SHA256 predeterminada.
  6. Guarda los archivos y reinicia la aplicación web de Identity Server en IIS. Si ocurre algún error en la configuración de SAML, los eventos de error deberían ser visibles en tus registros. Puedes utilizar el visor de eventos de Windows, la herramienta predeterminada para esta tarea.

Actualizar la fecha de vencimiento del token portador

El archivo UiPath.Orchestrator.dll.config de Orchestrator no ofrece una forma de actualizar el tiempo de expiración del token de portador.
Solo se puede realizar cambios ajustando la propiedad AccessTokenLifetime del cliente Orchestrator.Ropc en la base de datos Clients de Identity Server.

En el siguiente ejemplo, el tiempo de expiración del token de portador está establecido en 86400 segundos (24 horas).

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

Establecer un intervalo de tiempo de espera para los portales de gestión

El archivo UiPath.Orchestrator.dll.config de Orchestrator no ofrece una manera de actualizar el tiempo de expiración para el token usado para autenticar en los portales de administración de los niveles de host y de organización. Por lo tanto, las sesiones de los usuarios no expiran.
Para establecer un intervalo de tiempo para que expiren en estos portales, puedes actualizar la propiedad accessTokenLifetime siguiendo las instrucciones que figuran a continuación:

A. Mediante la API

  1. Obtén un token de instalación de cliente para el host.
  2. Cierra sesión como usuario administrador del sistema.
  3. Ve a la API de Swagger de Identity Server en https://<server>/identity/swagger.
  4. Autoriza usando Bearer <token>, donde el valor <token> es el obtenido en el paso 1.
  5. Recupera los detalles del cliente usando GET /api/Client/6654E78D-8490-4ABE-9C40-D28267C89F3A.
  6. Copia el cuerpo de la respuesta y cambia el valor de la propiedad accessTokenLifetime al valor de expiración del token deseado (en segundos).
  7. Usa el cuerpo de la respuesta editado en una solicitud PUT ​/api​/Client​/6654E78D-8490-4ABE-9C40-D28267C89F3A.
  8. Verifica que el cuerpo de la respuesta contiene el valor actualizado para la propiedad accessTokenLifetime.

Mediante SQL

El siguiente ejemplo establece el intervalo de tiempo de espera en 86400 segundos (24 horas):

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

Error 404 intermitente al cerrar sesión.

La solicitud para cerrar la sesión a veces puede tener una cadena de consulta de URL que exceda la longitud máxima predeterminada de la cadena de consulta permitida por IIS. Aquí se muestran dos maneras de modificar esta configuración:

Importante: Los cambios en web.config no se conservan tras la actualización a partir de la versión 2021.10.

Utilizar la herramienta IIS Manager

  1. En el árbol Conexiones, ve a Sitios -> UiPath Orchestrator -> Identity.
  2. Haz doble clic en el icono Solicitar filtrado.
  3. En el panel derecho, haz clic en Editar configuración de características.
  4. Aumenta el valor para la Cadena de consulta máxima (Bytes).


Nota: es posible que también quieras aumentar la Longitud de URL máxima (Bytes), ya que la cadena de consulta forma parte de la longitud general de la URL.

Modificar el archivo Web.config de Identity

  1. Encuentra el archivo web.config para Identity.
    • De forma predeterminada, es C:\Program Files (x86)\UiPath\Orchestrator\Identity\web.config para instalaciones de MSI.
    • Para instalaciones de Azure App Service, abre el Editor de App Service en Herramientas de desarrollo y ve a wwwroot/Web/web.config. Asegúrate de estar modificando Identity y no Orchestrator.
  2. Ábrelo con un editor de texto y localiza el nodo requestFiltering que está bajo el nodo de seguridad. Bajo requestFiltering, añade un nodo requestLimits tal y como se muestra a continuación:

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

La actualización falla con tiempo de espera

Las actualizaciones a la versión 2022.4 pueden fallar con un error de tiempo de espera debido a un problema con la base de datos de Identity Server. Para solucionar el problema debes ejecutar el siguiente script y volver a intentar la operación.

Importante: Al ejecutar el siguiente script se invalidan todos los tokens y se requiere que todas las aplicaciones y robots se vuelvan a autenticar.
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 cuando el usuario de varios tenants intenta la autenticación

Los usuarios que forman parte de varios tenants encuentran el mensaje "Error al contactar con el servicio de particiones para validar la organización (# 404)" durante la autenticación. Este error se produce porque la solicitud de autenticación supera el límite de longitud de la cadena de consulta predeterminada en IIS (2048 caracteres), especialmente para los usuarios que están asociados con un número significativo de tenants (que suele ser por encima de 30 tenants).

Para solucionar este problema, puedes ajustar el límite de longitud de la cadena de consulta en IIS.

Utilizar la herramienta IIS Manager

  1. En el árbol Conexiones, ve a Sitios -> UiPath Orchestrator -> Identity.
  2. Haz doble clic en el icono Solicitar filtrado.
  3. En el panel derecho, haz clic en Editar configuración de características.
  4. Aumenta el valor para la Cadena de consulta máxima (Bytes).


Nota: es posible que también quieras aumentar la Longitud de URL máxima (Bytes), ya que la cadena de consulta forma parte de la longitud general de la URL.

Modificar el archivo Web.config de Identity

  1. Encuentra el archivo web.config para Identity.
    • De forma predeterminada, es C:\Program Files (x86)\UiPath\Orchestrator\Identity\web.config para instalaciones de MSI.
    • Para instalaciones de Azure App Service, abre el Editor de App Service en Herramientas de desarrollo y ve a wwwroot/Web/web.config. Asegúrate de estar modificando Identity y no Orchestrator.
  2. Ábrelo con un editor de texto y localiza el nodo requestFiltering que está bajo el nodo de seguridad. Bajo requestFiltering, añade un nodo requestLimits tal y como se muestra a continuación:

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

Las operaciones de AD dan error tras la actualización a Orchestrator 2021.10+

Tras actualizar a Orchestrator Standalone 2021.10+, Las operaciones de AD empiezan a dar error al intentar autenticarse.

Nota:

Una solución temporal es establecer loadUserProfile en IIS en Verdadero.

Was this page helpful?

Obtén la ayuda que necesitas
RPA para el aprendizaje - Cursos de automatización
Foro de la comunidad UiPath
Logotipo blanco de UiPath
Confianza y seguridad
© 2005-2024 UiPath. All rights reserved.