Solución de problemas: servidor de aplicaciones

Configuración del servidor de aplicaciones

El servicio de Windows no se puede iniciar

Si el servicio de Windows no se inicia o se inicia y se detiene inmediatamente, esto indica que hay un problema con la configuración del servidor.

Cuando el servicio del servidor se inicia, se producen una serie de verificaciones, entre las que se incluyen:

  • Acceso adecuado a la base de datos SQL e instalación de las actualizaciones de base de datos previstas.
  • Las claves de la combinación de cifrado se encuentran en el servidor para aquellos registros en la base de datos que indican que la clave debe estar contenida allí.
  • El modo de conexión del servidor admite el modo de autenticación de Blue Prism.
  • El usuario tiene los derechos adecuados para iniciar la escucha en el dispositivo.
  • Se encuentra instalada una licencia válida.

Para identificar la causa de los problemas, se deben seguir los siguientes pasos:

  • Verificar el perfil de los mensajes de advertencia dentro de la utilidad BPServer.exe: aquí se destacarán problemas tales como si el servicio de un servidor no está configurado para este perfil; o si se requiere un certificado de cifrado, pero no se encuentra; o bien si el usuario de inicio de sesión del servicio no tiene los derechos adecuados para iniciar la escucha.
  • Revisar los mensajes dentro del visor de eventos: allí se destacarán problemas tales como si no se puede encontrar el perfil del servicio del servidor; si el servidor no se puede autenticar con la base de datos; si se necesita un certificado de cifrado, pero hay problemas con él; si no se pueden encontrar esquemas de cifrado dentro del perfil del servicio; o bien si la cuenta de inicio de sesión del servicio no tiene los derechos adecuados para iniciar la escucha.

  • Intentar iniciar el servicio usando la utilidad BPServer.exe: usar esta utilidad de esta forma solo es adecuado para solucionar problemas ya que intenta iniciar el servicio bajo el contexto del usuario que inició sesión. Si el usuario que inició sesión localmente tiene permisos diferentes a la cuenta de inicio de sesión del servicio, el comportamiento que se ve aquí puede diferir en comparación a cuando el servicio se inicia desde la consola de administración de servicios. Por ejemplo, si el servicio está configurado para conectarse a SQL usando la autenticación de Windows, se requerirá que el usuario que inició sesión tenga los derechos mínimos adecuados a la base de datos de Blue Prism en el SQL Server de destino.

No se pudo detectar una licencia válida

Service cannot be started. System.NotSupportedException: A valid license could not be detected. (No se puede iniciar el servicio. System.NotSupportedException: No se pudo detectar una licencia válida).

Se debe configurar una licencia válida para el entorno a fin de que se pueda iniciar el servidor de Blue Prism.

Se puede instalar una nueva clave de licencia mediante la interfaz de usuario de Blue Prism. Puede ser necesario usar un cliente que tenga una conexión directa a la base de datos para llevar a cabo esta acción.

No se pudieron resolver las claves de cifrado

Service cannot be started. BluePrism.BPCoreLib.InvalidStateException: The following encryption keys could not be resolved: 2018 Q2 Encryption Scheme, Default Encryption Scheme (No se pudo iniciar el servicio. BluePrism.BPCoreLib.InvalidStateException: Las siguientes clave de cifrado no se pudieron resolver: Combinación de cifrado 2018 Q2, Combinación de cifrado predeterminada)

Este error indica que se prevé que haya claves de la combinación de cifrado en el servidor, pero que no se pueden encontrar. El error de arriba indica que no se pueden encontrar dos esquemas que deberían estar definidos localmente en el servidor de Blue Prism llamados: “Combinación de cifrado 2018 Q2” y “Combinación de cifrado predeterminada”.

Es necesario revisar los registros de la combinación de cifrado configurados dentro de la base de datos y asegurar que para cada uno con una ubicación de clave en el servidor, haya un registro de combinación de cifrado adecuada creado en el servidor de Blue Prism. Una comparación de ejemplo de la configuración dentro del cliente con la configuración dentro de la utilidad de configuración del servidor de Blue Prism.

La cuenta que el servicio está utilizando para ejecutarse no tiene derecho a crear servicios

Errores como el siguiente indican que la cuenta que el servicio se está ejecutando como no tiene los permisos adecuados para configurar el servicio para que escuche en la configuración establecida:

BluePrism.BPCoreLib.InvalidStateException: An error occurred while trying to start the server. The account the service is running as (AD\bpserverservice001) does not have the right to create services that listen on the server's namespace. (BluePrism.BPCoreLib.InvalidStateException: Se produjo un error mientras se intentaba iniciar el servidor. La cuenta que el servicio está usando para ejecutarse [AD\bpserverservice001] no tiene derecho a crear servicios que escuchen en el espacio de nombres del servidor).

Este es un mensaje común cuando el servidor de Blue Prism se inicia como un usuario que no es el administrador local; o si la lista de control de acceso (access control list, ACL) no se ha configurado adecuadamente.

Para resolver el problema:

  • Use la utilidad de configuración de servidor de Blue Prism para configurar permisos para que el usuario configurado inicie el servicio; o
  • ejecute el comando que se proporciona dentro del mensaje del visor de eventos.

Es importante asegurar que el permiso de ACL esté creado específicamente para el usuario que iniciará el servicio y se configure ya sea con una URL genérica si no se especifica un enlace del servidor o una URL que se alinee directamente con un enlace del servidor especificado.

Servicios de verificación de errores

Si este error se presenta cuando se está editando el perfil del servidor de Blue Prism, indica que se produjo un error al validar si el usuario que inició sesión es un administrador local.

Se sabe que esto ocurre cuando se utiliza una cuenta de usuario local para acceder a un servicio que pertenece a un dominio de Directorio Activo y cuando no se puede contactar a un controlador de dominio. Es necesario asegurar que se pueda contactar a un controlador de dominio.

No se puede encontrar el certificado de cifrado

Si no se puede acceder o restaurar el certificado utilizado para el cifrado, aparecerá el siguiente mensaje: No se puede encontrar el certificado utilizado para el cifrado de la configuración del servidor. Agregue el certificado con la huella digital correcta al almacén de certificados.

En esta situación, el usuario que configura el servidor de Blue Prism deberá recrear los perfiles de configuración del servidor. Para hacerlo, elimine el archivo Automate.config, que está ubicado en: ProgramData\Blue Prism Limited\Automate V3. Se creará automáticamente un nuevo archivo Automate.config cuando se inicie BPServer.exe. A continuación, puede aplicarse una combinación de cifrado y un nuevo certificado al nuevo archivo de configuración del servidor.

Configuración del nombre principal del servicio (SNP) para la autenticación de Kerberos

Verificar que la búsqueda de DNS esté funcionando

  1. Verifique el nombre de host del servidor de Blue Prism configurado en la pantalla Configuración de conexión en el cliente interactivo de Blue Prism.
  2. Realice una búsqueda de DNS hacia adelante desde el cliente interactivo de Blue Prism: nslookup <BP Server hostname>

    Esto generará el nombre de dominio completo (FQDN) para usarlo en el registro de SPN.

Si esto no funciona, comuníquese con su equipo interno de TI para continuar solucionando el problema.

Verificar que el SPN se haya registrado correctamente

  1. Abra el símbolo del sistema como administrador y ejecute el comando setpn -L ACCOUNT_NAME.

    Esto enumerará los SPN registrados para la cuenta que especificó durante el registro del SPN.

  2. Confirme que el SPN generado sea el mismo que el registrado, que debería tener el siguiente formato: <service class>/<host>:<port>/<service name>

    Donde:

    • la clase de servicio es HTTP. Esto NO debe cambiarse a HTTPS.
    • host es el FQDN del servidor de aplicaciones de Blue Prism, por ejemplo, appserver.bpdomain.local
    • puerto es el puerto en el que se ejecuta el servidor de aplicaciones de Blue Prism. El valor predeterminado es 8199.
    • nombre del servicio es el servidor de Blue Prism

Es importante que el SPN se configure exactamente como se describe en la configuración del SPN para que funcione correctamente. Los SPN deben ser únicos en el bosque de Directorio Activo, pero en algunas circunstancias pueden existir duplicados. Para verificar si hay entradas duplicadas, puede usar setspn -F -Q */BPserver. Aquí se enumerarán todas las entradas de SPN en el bosque que contienen ‘BPserver’. Si hay más de una entrada, esto se puede eliminar ejecutando el comando setpn -D SPN_NAME ACCOUNT_NAME.

Verificar los tickets de servicio de Kerberos

Si el SPN está registrado en la cuenta correcta, debería ser posible usar klist desde una línea de comandos no elevada para verificar que se pueda obtener un ticket de servicio de Kerberos.

Esto se puede hacer de la siguiente manera:

  • Purgando los tickets de Kerberos mediante la purga de klist.
  • Ejecutando klist get SPN_NAME, por ejemplo, klist get HTTP/appserver.bpdomain.local:8199/BPServer en la máquina del cliente para obtener el siguiente resultado.

Ejemplo de ticket de servicio de Kerberos:

Copiar
Client: testuser @ BPDOMAIN.LOCAL
                    Server: HTTP/appserver.bpdomain.local:8199/BPServer @ BPDOMAIN.LOCAL
                    KerbTicket Encryption Type: RSADSI RC4-HMAC(NT)
                    Ticket Flags 0x40a10000 -> forwardable renewable pre_authent ok_as_delegate
                    name_canonicalize
                    Start Time: 1/11/2022 12:00:00 (local)
                    End Time:  1/12/2022 22:00:00 (local)
                    Renew Time: 1/18/2022 12:00:00 (local)
                    Session Key Type: RSADSI RC4-HMAC(NT)
                    Cache Flags: 0x200 -> DISABLE-TGT-DELEGATION
                Kdc Called: dc1.bpdomain.local

El ticket de servicio de Kerberos se puede identificar consultando la sección "Servidor:" en el ejemplo anterior. Si NO se genera un ticket de servicio de Kerberos para el SPN registrado, verifique que se hayan seguido correctamente los pasos anteriores.

Si siguió los pasos anteriores y aún no puede generar un ticket de Kerberos para el SPN registrado, deberá comunicarse con su equipo de TI interno a fin de investigar más, ya que la autenticación de Kerberos de Windows no está funcionando como se esperaba.

Si puede generar correctamente un ticket de servicio de Kerberos para el SPN registrado, pero el problema no se resuelve, consulte la sección siguiente.

Cifrado de RC4

En el ejemplo anterior, el ticket de servicio de Kerberos tiene un tipo de cifrado básico de RC4 que se considera un cifrado vulnerable y no se recomienda usar.

En algunos entornos, se podrían generar tickets de RC4, pero se podrían haber habilitado las reglas que impiden que el cliente acepte y utilice dicho ticket de Kerberos.

Si ve que se generan tickets de RC4 como en el ejemplo anterior, comuníquese con sus equipos de TI internos para asegurarse de que el mecanismo de autenticación de Kerberos de la cuenta de servicio pueda usar RC4 o tenga habilitado el cifrado de AES. El tipo de autenticación de Kerberos se puede identificar verificando la sección Tipo de cifrado KerbTicket en el ejemplo anterior.

Conectividad del servidor de aplicaciones

Muchos factores pueden ser el origen de los errores al conectar un dispositivo de Blue Prism al servidor de aplicaciones. Se recomienda altamente verificar lo siguiente:

  • Se inició el servicio del servidor de Blue Prism.
  • La dirección que se utiliza para el servicio del servidor se puede resolver (es decir, mediante DNS) y no se impide la conectividad de red. (P. ej., verifique que los firewalls estén configurados adecuadamente).
  • El dispositivo de conexión está configurado con las opciones correctas:
    • El modo de conexión del servidor y el puerto coinciden con los definidos en el servidor.
    • Si el servidor está configurado con un enlace de dirección, verifique que el dispositivo se conecte usando dicha dirección.
  • Si el servidor está configurado para usar cifrado de transporte, el dispositivo de conexión debe confiar en la autoridad de certificación que emitió el certificado de servidor.

Conexión a la base de datos

Consulte la sección de solución de problemas Conectividad de la base de datos para obtener asesoramiento general sobre la conectividad.

Cuando soluciona problemas, tenga en cuenta que la cuenta que se utiliza para autenticar con SQL dependerá del modo de autenticación de SQL que se ha configurado en la conexión que utiliza el servidor:

  • Autenticación de SQL: se utilizarán las credenciales especificadas en la conexión.
  • Autenticación de Windows: se utilizará el contexto del servicio del servidor. Si el servicio se inicia desde la consola Servicios de Windows, la cuenta será la de inicio de sesión del servicio; si se inicia el servicio directamente desde BPServer.exe, será el usuario que inició sesión.

La base de datos no existe

Service cannot be started. BluePrism.BPCoreLib.InvalidStateException: Connection not valid: Server is unavailable (No se puede iniciar el servicio. BluePrism.BPCoreLib.InvalidStateException: La conexión no es válida: el servicio no está disponible)

Database 'BP_Prod_Native' does not exist (La base de datos “BP_Prod_Native” no existe)

Este error indica que no se puede encontrar la base de datos.

Verifique que el nombre del servidor de bases de datos y el de la base de datos sean correctos. Si todavía no se ha creado una base de datos de Blue Prism, un usuario con los permisos de SQL adecuados puede hacerlo con la acción Create Database (crear base de datos) incluida en el producto de forma manual mediante el uso de CreateScript.sql.

Permisos incorrectos

Service cannot be started. BluePrism.BPCoreLib.InvalidStateException: Connection not valid: Server is unavailable (No se puede iniciar el servicio. BluePrism.BPCoreLib.InvalidStateException: La conexión no es válida: el servicio no está disponible)

Cannot open database "BP_Prod_Native" requested by the login. The login failed. (No se puede abrir la base de datos “BP_Prod_Native” que solicitó el inicio de sesión. Error de inicio de sesión).

Esto indica que el usuario utilizado para la autenticación en la base de datos no tiene permisos para acceder a ella.

Se deberá conceder al usuario por lo menos permisos SQL en la base de datos de destino que cumplan o superen los permisos mínimos.

Credenciales incorrectas

Service cannot be started. BluePrism.BPCoreLib.InvalidStateException: Connection not valid: Server is unavailable (No se puede iniciar el servicio. BluePrism.BPCoreLib.InvalidStateException: La conexión no es válida: el servicio no está disponible)

No se puede determinar si la base de datos existe. Error de inicio de sesión del usuario

Este error indica que las credenciales de usuario utilizadas para acceder a la base de datos son incorrectas (p. ej., nombre de usuario o contraseña no válidos).

Verifique las credenciales de usuario que se están utilizando y que los permisos de SQL del usuario en la base de datos de destino cumplan o superen los permisos mínimos.