- Primeros pasos
- Requisitos
- Mejores prácticas
- Instalación
- Actualizando
- Servidor de identidad
- Requisitos de hardware y software
- Requisitos previos para la instalación
- Instalación
- Considerdaciones de mantenimiento
- Solución de problemas de Identity Server
- Complemento de alta disponibilidad
- Solución de problemas de errores de inicio
Solución de problemas de Identity Server
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.]'
appsettings.Production.json
archivo de Identity Server dentro de tu sección AppSettings existente:
"AppSettings": {
"EnablePII": true
},
"AppSettings": {
"EnablePII": true
},
EnablePII
configuración en el appsettings.Production.json
archivo 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')
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.
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.
https://<OrchestratorURL>/identity/configuration
.
/ api / account / autenticar Llamadas que fallan de usuarios que cambiaron las contraseñas en el primer inicio de sesión
Invalid credentials, failed to login
error .
Los usuarios en esta situación deben cambiar sus contraseñar desde la página Perfil de Orchestrator.
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 $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
valor según tu instalación de Orchestrator.
Reinicia el sitio de IIS tras realizar cualquier cambio de configuració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.
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.
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:
- 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.
-
Edita los archivos
appsettings.json
oappsettings.Production.json
para incluir la siguiente sección en el nivel de raíz. Esto indica a Identity Server que busque un archivo llamadosaml2.xml
en la misma carpeta que la aplicación web y elappsettings.json
oappsettings.Production.json
."Authentication": { "Saml2": { "ConfigFile": "saml2.xml" } },
"Authentication": { "Saml2": { "ConfigFile": "saml2.xml" } }, - Crea un archivo XML llamado
saml2.xml
y añade la configuración de SAML. -
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> - Añade los ajustes que necesites. Por ejemplo, utiliza
publicOrigin
en escenarios de carga equilibrada ominIncomingSigningAlgorithm
si deseas cambiar la opción SHA256 predeterminada. - 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.
UiPath.Orchestrator.dll.config
de Orchestrator no ofrece una forma de actualizar el tiempo de expiración del token de portador.
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'
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.
accessTokenLifetime
siguiendo las instrucciones que figuran a continuación:
- Obtenga un token de instalación de cliente para el host.
- Cierra sesión como usuario administrador del sistema.
- Ve a la API de Swagger de Identity Server en
https://<server>/identity/swagger
. - Autoriza usando
Bearer <token>
, donde el valor<token>
es el obtenido en el paso 1. - Recupera los detalles del cliente usando GET
/api/Client/6654E78D-8490-4ABE-9C40-D28267C89F3A
. - Copia el cuerpo de la respuesta y cambia el valor de la propiedad
accessTokenLifetime
al valor de expiración del token deseado (en segundos). - Usa el cuerpo de la respuesta editado en una solicitud PUT
/api/Client/6654E78D-8490-4ABE-9C40-D28267C89F3A
. - Verifica que el cuerpo de la respuesta contiene el valor actualizado para la propiedad
accessTokenLifetime
.
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:
web.config
no se conservan tras la actualización a partir de la versión 2021.10.
- En el árbol Conexiones, ve a Sitios -> UiPath Orchestrator -> Identity.
- Haz doble clic en el icono Solicitar filtrado.
- En el panel derecho, haz clic en Editar configuración de características.
- Aumenta el valor para la Cadena de consulta máxima (Bytes).
-
Encuentra el archivo
web.config
para Identity.- De forma predeterminada, es
C:\Program Files (x86)\UiPath\Orchestrator\Identity\web.config
para instalaciones deMSI
. - 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.
- De forma predeterminada, es
-
Á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 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.
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
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.
- En el árbol Conexiones, ve a Sitios -> UiPath Orchestrator -> Identity.
- Haz doble clic en el icono Solicitar filtrado.
- En el panel derecho, haz clic en Editar configuración de características.
- Aumenta el valor para la Cadena de consulta máxima (Bytes).
-
Encuentra el archivo
web.config
para Identity.- De forma predeterminada, es
C:\Program Files (x86)\UiPath\Orchestrator\Identity\web.config
para instalaciones deMSI
. - 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.
- De forma predeterminada, es
-
Á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>
- Ver información adicional en registros
- Instalación defectuosa del paquete de alojamiento de .NET Core
- No se puede acceder a la página Proveedores externos tras actualizar a Orchestrator 2020.4+
- / api / account / autenticar Llamadas que fallan de usuarios que cambiaron las contraseñas en el primer inicio de sesión
- Error después de la instalación
- RobotKeyMigration falla durante la actualización
- Implementaciones con idiomas que contienen caracteres no ascii
- Configuración de los ajustes de SAML no disponible en la IU de Identity Server
- Actualizar la fecha de vencimiento del token portador
- Establecer un intervalo de tiempo de espera para los portales de gestión
- A. Mediante la API
- Mediante SQL
- Error 404 intermitente al cerrar sesión.
- Utilizar la herramienta IIS Manager
- Modificar el archivo Web.config de Identity
- La actualización falla con tiempo de espera
- 404 cuando el usuario de varios tenants intenta la autenticación
- Utilizar la herramienta IIS Manager
- Modificar el archivo Web.config de Identity
- Las operaciones de AD dan error tras la actualización a Orchestrator 2021.10+