6.4.2. Bloqueo del establecimiento de sesiones por los usuarios


<< Prev   Next >>

6.4.2.1. Manualmente, para todos

Modo interactivo

El sistema "1C:Enterprise" permite bloquear sesiones de usuarios con la base de información. Se puede prohibir el establecimiento de sesiones de usuarios con una base de información, mostrando un mensaje sobre el motivo de la prohibición. Esta posibilidad es útil, por ejemplo, cuando se realizan acciones administrativas requiere que los usuarios actuales finalicen sus sesiones de trabajo y, al mismo tiempo, los nuevos usuarios no pueden conectarse a la base de información.

Cuando se trabaja en el modo cliente/servidor, el bloqueo se puede configurar mediante el programa de utilidad de administration del clúster de servidores de "1C:Enterprise".

Es posible conectarse a la base de información a pesar del bloqueo de sesiones establecido. Para ellos se utiliza el parámetro de la línea de comandos UC y el parámetro de la línea de conexión UC. Si se especifica un código de acceso no vacío al establecer un bloqueo, para establecer una conexión es necesario especificar este código de acceso en el parámetro /UC . Si el código de permiso contiene espacios, debe estar entre comillas.

Si se utiliza un cliente web o un cliente ligero que funciona a través de un servidor web, además de especificar el parámetro UC en la línea de comando de inicio, es posible especificar el código de permiso en el parámetro UC de la línea de conexión del archivo descriptor (consulte la pág. 3.19. default.vrd). En este caso, se recomienda publicar adicionalmente la base de información en el servidor web.

Por lo tanto, si se establece un bloqueo de inicio de sesión y el código de permiso se establece en el valor 123, entonces para iniciar una sesión, omitiendo el bloqueo establecido, se debe especificar la línea /UC123 en la línea de comandos para iniciar la aplicación de cliente.

Modo de programación

Además, cuando se trabaja en cualquier modo de la base de información, el bloqueo del inicio de sesiones se puede realizar utilizando el lenguaje integrado 1C:Enterprise. Para ello se utiliza el objeto de lenguaje integrado 1C:Enterprise SessionsLock, que puede crearlo en el constructor y configurar las propiedades requeridas para bloquear nuevas conexiones. El mensaje que se puede configurar para que se muestre al usuario (mediante el atributo SessionsLock.Message) se puede especificar como una línea de texto sin formato o una línea formateada.

El método de contexto global SetSessionLock() permite establecer el bloqueo creado, y el método GetSessionsLock() – permite obtener el bloqueo establecido.

6.4.2.2. Automáticamente al intentar adivinar una contraseña

Una de las formas de obtener acceso no autorizado a los datos de la base de información es adivinar la contraseña del usuario. En este caso, un usuario malicioso intenta piratear una contraseña utilizando un algoritmo predefinido, hasta que se descifra la contraseña correcta para el usuario seleccionado. Para hacer esta selección más difícil, el sistema "1C:Enterprise" ofrece un mecanismo especial que funciona solo en el modo cliente/servidor de la base de información.

El administrador gestiona el funcionamiento del mecanismo configurando los siguientes parámetros de la base de información (el diálogo está disponible mediante el comando Menú principal – Administration – Parámetros de la base de información):

  • Cantidad máxima de intentos de autenticación fallidos – determina cuántas veces un usuario puede ingresar una contraseña incorrecta antes de que se le bloqueen los intentos de inicio de sesión. El bloqueo se activará al intento N+1 de autenticación sin éxito consecutivamente, donde N – es el valor de este parámetro. En otras palabras, si el parámetro se establece en el valor 2, el usuario se bloqueará después de 3 intentos fallidos de autenticación.

    Si este parámetro se establece en el valor 0, el mecanismo se deshabilita y la plataforma no controla la cantidad de intentos de autenticación fallidos.

  • Duración del bloqueo cuando se supera el número de intentos de autenticación fallidos (en segundos) – determina cuánto tiempo el usuario no podrá intentar la autenticación si ingresó la contraseña incorrecta tantas veces como se define en el parámetro Cantidad máxima de intentos de autenticación fallidos.
  • Códigos de complemento de los nombres de usuario al bloquear la autenticación – permiten realizar otro bloqueo de intentos de autenticación para el usuario bloqueado. Los códigos de complemento están separados por el símbolo ";". En este caso, el usuario se forma a partir del nombre real del usuario bloqueado y uno de los códigos de complemento especificados. Un usuario formado con un código de complemento recibe el mismo número de intentos que un usuario habitual. Después de agotar los intentos de autenticación, el usuario "adicional" también será bloqueado.

El mecanismo funciona de la siguiente manera:

  • El intruso ingresa un nombre de usuario y comienza a adivinar la contraseña ingresando una contraseña de usuario supuesta. Una vez que se activa el límite del número máximo de errores de autenticación, el sistema bloquea el nombre de usuario utilizado por el intruso.
  • Si el usuario bloqueado intenta iniciar sesión con su propio nombre y con su contraseña, recibirá un mensaje que indica que el usuario está bloqueado.
  • En el caso de que en la base estén configurados códigos adicionales, el usuario puede utilizar uno de los códigos adicionales. Para hacerlo, necesita ingresar su nombre, completado con el código adicional. Cuando se trabaje con un código adicional, se debe tener en cuenta lo siguiente: el análisis del código adicional comienza solo si el nombre de usuario ingresado no está en la lista de usuarios de la base de información. Para dicho nombre, todos los códigos adicionales de nombres especificados en la configuración se restan secuencialmente y se verifica la presencia de un usuario de la base de información con este nombre. Una simple consecuencia de esta descripción es que no se recomienda crear códigos de complemento que coincidan con el final del nombre de un usuario real. Si dicho usuario se bloquea por el mecanismo en cuestión, no se podrá ingresar utilizando el código adicional. La siguiente consecuencia es la recomendación de iniciar el código adicional con varios caracteres "técnicos" que no pueden aparecer en el nombre de usuario, por ejemplo "!", "^", etc.

Para ver la lista de usuarios bloqueados, se puede utilizar el formulario que está disponible en el Designer mediante el comando Menú principal – Administration – Bloqueo de autenticación. El formulario está a disposición de un usuario que tenga el derecho Administrationo DataAdministration. La información sobre los bloqueos de usuarios está disponible en el registro.

El servicio de funciones auxiliares del clúster de servidores almacena la información sobre los usuarios bloqueados. Esto significa que:

  1. Si está bloqueado el único administrador, para iniciar sesión como tal usuario durante el bloqueo, se debe reiniciar el clúster de servidores.
  2. El contador de intentos de inicio de sesión fallidos se cuenta desde el momento del último intento de inicio de sesión exitoso y no tiene período límite. Sin embargo, el reinicio del clúster de servidores restablece todos los contadores para todos los usuarios de la base de información.

El mecanismo de bloqueo está controlado por el objeto de contexto global AuthenticationBlock. Usando este objeto, se puede cambiar la configuración del mecanismo (usando los métodos GetSettings()/SetSettings(). También está disponible para obtener una lista de bloqueos actuales utilizando el método GetBlocks().

Con el lenguaje integrado 1C:Enterprise, se puede forzar el desbloqueo de todos (o seleccionados) los usuarios bloqueados. Para esto es necesario obtener una lista de los bloqueos actuales, que estarán representados por una matriz de objetos InfoBaseUserAuthenticationLock. A continuación, determinar la lista de esos usuarios que deben desbloquearse (según los atributos del objeto InfoBaseUserAuthenticationLock). Seguidamente, para los usuarios bloqueados seleccionados, se debe llamar al método Unlock() del mismo objeto.

<< Prev   Next >>

Icon/Social/001 Icon/Social/006 Icon/Social/005 Icon/Social/004 Icon/Social/002