sql >> Base de Datos >  >> RDS >> MariaDB

Gestión de nuevos usuarios y LDAP en ClusterControl 1.8.2

Después de actualizar a ClusterControl 1.8.2, debería recibir el siguiente banner de notificación:

¿Qué pasa con eso? Es un aviso de depreciación del actual sistema de administración de usuarios a favor del nuevo sistema de administración de usuarios manejado por el servicio de controlador ClusterControl (cmon). Al hacer clic en el banner, será redirigido a la página de creación de usuarios para crear un nuevo usuario administrador, como se describe en esta guía del usuario.

En esta publicación de blog, analizaremos el nuevo sistema de administración de usuarios introducido en ClusterControl 1.8.2 y veremos en qué se diferencia de los anteriores. Solo como aclaración, el antiguo sistema de administración de usuarios seguirá funcionando junto con el nuevo sistema de administración y autenticación de usuarios hasta el primer trimestre de 2022. A partir de ahora, todas las instalaciones nuevas para ClusterControl 1.8.2 y posteriores se configurarán con el nuevo usuario. sistema de gestión.

Gestión de usuarios anterior a 1.8.2

ClusterControl 1.8.1 y anteriores almacenan la información del usuario y la contabilidad dentro de una base de datos de interfaz de usuario web llamada "dcps". Esta base de datos es independiente de la base de datos cmon que utiliza el servicio ClusterControl Controller (cmon).

Cuentas de usuario y autenticación

Una cuenta de usuario consta de la siguiente información:

  • Nombre

  • Zona horaria

  • Correo electrónico (utilizado para autenticación)

  • Contraseña

  • Rol

  • Equipo

Uno usaría una dirección de correo electrónico para iniciar sesión en la GUI de ClusterControl, como se muestra en la siguiente captura de pantalla:

Una vez que haya iniciado sesión, ClusterControl buscará la organización a la que pertenece el usuario y luego asignará el control de acceso basado en roles (RBAC) para acceder a un clúster y funcionalidades específicas. Un equipo puede tener cero o más clústeres, mientras que un usuario debe pertenecer a uno o más equipos. La creación de un usuario requiere un rol y un equipo creados de antemano. ClusterControl viene con un equipo predeterminado llamado Administrador y 3 roles predeterminados:Superadministrador, Administrador y Usuario.

Permisos y Control de Acceso

ClusterControl 1.8.1 y versiones anteriores usaban un control de acceso basado en la interfaz de usuario basado en la asignación de funciones. En otro término, lo llamamos control de acceso basado en roles (RBAC). El administrador crearía roles y a cada rol se le asignaría un conjunto de permisos para acceder a ciertas funciones y páginas. La aplicación de roles ocurre en el lado frontal, donde el servicio de controlador de ClusterControl (cmon) no tiene idea de si el usuario activo tiene la capacidad de acceder a la funcionalidad porque la información nunca se comparte entre estos dos motores de autenticación. Esto haría que la autenticación y la autorización fueran más difíciles de controlar en el futuro, especialmente cuando se agreguen más funciones que sean compatibles con las interfaces GUI y CLI.

La siguiente captura de pantalla muestra las funciones disponibles que se pueden controlar a través de RBAC:

El administrador solo necesita elegir el nivel de acceso relevante para características específicas, y se almacenará dentro de la base de datos "dcps" y luego será utilizado por la GUI de ClusterControl para permitir los recursos de la IU a los usuarios de la GUI. La lista de acceso creada aquí no tiene nada que ver con los usuarios de la CLI.

LDAP

ClusterControl anterior a 1.8.1 usaba el módulo PHP LDAP para la autenticación LDAP. Es compatible con los servicios de directorio Active Directory, OpenLDAP y FreeIPA, pero solo se puede usar una cantidad limitada de atributos LDAP para la identificación del usuario, como uid, cn o sAMAccountName. La implementación es bastante sencilla y no es compatible con el filtrado avanzado de base de usuarios/grupos, la asignación de atributos ni la implementación de TLS.

La siguiente es la información necesaria para la configuración de LDAP:

Dado que se trata de un servicio de interfaz, el archivo de registro LDAP se almacena en el directorio de aplicaciones web, específicamente en /var/www/html/clustercontrol/app/log/cc-ldap.log. Un usuario autenticado se asignará a un rol y equipo de ClusterControl en particular, como se define en la página de asignación de grupos LDAP.

Gestión de usuarios posterior a 1.8.2

En esta nueva versión, ClusterControl es compatible con los controladores de autenticación, la autenticación de frontend (usando la dirección de correo electrónico) y la autenticación de backend (usando el nombre de usuario). Para la autenticación de back-end, ClusterControl almacena la información del usuario y la contabilidad dentro de la base de datos cmon que utiliza el servicio ClusterControl Controller (cmon).

Cuentas de usuario y autenticación

Una cuenta de usuario consta de la siguiente información:

  • Nombre de usuario (utilizado para autenticación)

  • Dirección de correo electrónico

  • Nombre completo

  • Etiquetas

  • Origen

  • Deshabilitado

  • Suspender

  • Grupos

  • Propietario

  • ACL

  • Inicios de sesión fallidos

  • Ruta CDT

Si se compara con la implementación anterior, la nueva administración de usuarios tiene más información para un usuario, lo que permite una manipulación compleja de la cuenta de usuario y un mejor control de acceso con seguridad mejorada. Un proceso de autenticación de usuario ahora está protegido contra ataques de fuerza bruta y puede desactivarse por razones de mantenimiento o seguridad.

Uno usaría una dirección de correo electrónico o un nombre de usuario para iniciar sesión en la GUI de ClusterControl, como se muestra en la siguiente captura de pantalla (preste atención al texto del marcador de posición para el campo Nombre de usuario):

Si el usuario inicia sesión con una dirección de correo electrónico, se autenticará a través del servicio de administración de usuarios frontend en desuso y si se proporciona un nombre de usuario, ClusterControl utilizará automáticamente el nuevo servicio de administración de usuarios backend manejado por el servicio del controlador. Ambas autenticaciones funcionan con dos conjuntos diferentes de interfaces de administración de usuarios.

Permisos y Control de Acceso

En la nueva administración de usuarios, los permisos y los controles de acceso se controlan mediante un conjunto de formularios de texto de la Lista de control de acceso (ACL) llamados lectura (r), escritura (w) y ejecución (x). Todos los objetos y funcionalidades de ClusterControl están estructurados como parte de un árbol de directorios, lo llamamos CMON Directory Tree (CDT) y cada entrada es propiedad de un usuario, un grupo y una ACL. Puede considerarlo similar a los permisos de archivos y directorios de Linux. De hecho, la implementación del control de acceso de ClusterControl sigue las listas de control de acceso POSIX estándar.

Para poner un ejemplo, considere los siguientes comandos. Recuperamos el valor de Cmon Directory Tree (CDT) para nuestro clúster mediante el uso de la línea de comando "s9s tree" (imagine esto como ls -al en UNIX). En este ejemplo, nuestro nombre de clúster es "PostgreSQL 12", como se muestra a continuación (indicado por la "c" al principio de la línea):

$ s9s tree --list --long
MODE        SIZE OWNER                      GROUP  NAME
crwxrwx---+    - system                     admins PostgreSQL 12
srwxrwxrwx     - system                     admins localhost
drwxrwxr--  1, 0 system                     admins groups
urwxr--r--     - admin                      admins admin
urwxr--r--     - dba                        admins dba
urwxr--r--     - nobody                     admins nobody
urwxr--r--     - readeruser                 admins readeruser
urwxr--r--     - s9s-error-reporter-vagrant admins s9s-error-reporter-vagrant
urwxr--r--     - system                     admins system
Total: 22 object(s) in 4 folder(s).

Supongamos que tenemos un usuario de solo lectura llamado readeruser, y este usuario pertenece a un grupo llamado readergroup. Para asignar permisos de lectura para el usuario lector y el grupo lector, y nuestra ruta CDT es “/PostgreSQL 12” (siempre comience con “/”, similar a UNIX), ejecutaríamos:

$ s9s tree --add-acl --acl="group:readergroup:r--" "/PostgreSQL 12"
Acl is added.
$ s9s tree --add-acl --acl="user:readeruser:r--" "/PostgreSQL 12"
Acl is added.

Ahora el usuario lector puede acceder a ClusterControl a través de GUI y CLI como usuario de solo lectura para un clúster de base de datos llamado "PostgreSQL 12". Tenga en cuenta que los ejemplos de manipulación de ACL anteriores se tomaron de la CLI de ClusterControl, como se describe en este artículo. Si se conecta a través de la GUI de ClusterControl, verá la siguiente página nueva de control de acceso:

ClusterControl GUI proporciona una forma más sencilla de manejar el control de acceso. Proporciona un enfoque guiado para configurar los permisos, la propiedad y las agrupaciones. Al igual que en la versión anterior, cada clúster es propiedad de un equipo, y puede especificar un equipo diferente para que lea, administre o prohíba a otro equipo acceder al clúster desde las interfaces GUI o CLI de ClusterControl.

LDAP

En las versiones anteriores (1.8.1 y anteriores), el componente frontend manejaba la autenticación LDAP a través de un conjunto de tablas (dcps.ldap_settings y dcps.ldap_group_roles). A partir de ClusterControl 1.8.2, todas las configuraciones y asignaciones de LDAP se almacenarán dentro de este archivo de configuración, /etc/cmon-ldap.cnf.

Se recomienda configurar la configuración de LDAP y las asignaciones de grupos a través de la interfaz de usuario de ClusterControl porque cualquier cambio en este archivo requerirá una recarga en el proceso del controlador, que se activa automáticamente al configurar LDAP a través de la interfaz de usuario. También puede realizar modificaciones directas en el archivo; sin embargo, debe volver a cargar el servicio cmon manualmente mediante los siguientes comandos:

$ systemctl restart cmon # or service cmon restart

La siguiente captura de pantalla muestra el nuevo cuadro de diálogo Configuración avanzada de LDAP:

Si se compara con la versión anterior, la nueva implementación de LDAP es más personalizable para admitir servicios de directorio estándar de la industria como Active Directory, OpenLDAP y FreeIPA. También admite asignaciones de atributos para que pueda establecer qué atributo representa un valor que se puede importar a la base de datos de usuarios de ClusterControl, como correo electrónico, nombre real y nombre de usuario.

Para obtener más información, consulte la guía del usuario de configuración de LDAP.

Ventajas de la Nueva Gestión de Usuarios

Tenga en cuenta que la gestión de usuarios actual todavía funciona junto con el nuevo sistema de gestión de usuarios. Sin embargo, recomendamos encarecidamente a nuestros usuarios que migren al nuevo sistema antes del primer trimestre de 2022. Por el momento, solo se admite la migración manual. Consulte la sección Migración a la nueva administración de usuarios a continuación para obtener más detalles.

El nuevo sistema de administración de usuarios beneficiará a los usuarios de ClusterControl de las siguientes maneras:

  • Gestión de usuarios centralizada para la CLI de ClusterControl y la GUI de ClusterControl. Toda la autenticación, autorización y contabilidad serán manejadas por el servicio ClusterControl Controller (cmon).

  • Configuración LDAP avanzada y personalizable. La implementación anterior solo admite una serie de atributos de nombre de usuario y tenía que configurarse a su manera para que funcionara correctamente.

  • Se puede usar la misma cuenta de usuario para autenticarse en la API de ClusterControl de forma segura a través de TLS. Consulte este artículo, por ejemplo.

  • Métodos seguros de autenticación de usuarios. La nueva gestión de usuarios nativa admite la autenticación de usuarios mediante claves y contraseñas privadas/públicas. Para la autenticación LDAP, los enlaces y las búsquedas LDAP se admiten a través de SSL y TLS.

  • Una vista consistente de la representación del tiempo basada en la configuración de la zona horaria del usuario, especialmente cuando se usa la interfaz CLI y GUI para gestión y supervisión de clústeres de bases de datos.

  • Protección contra ataques de fuerza bruta, donde a un usuario se le puede negar el acceso al sistema mediante suspensión o inicios de sesión deshabilitados.

Migración a la Nueva Gestión de Usuarios

Dado que ambos sistemas de usuario tienen una estructura y una cuenta de usuario diferentes, es una operación muy arriesgada automatizar la migración de usuarios de frontend a backend. Por lo tanto, el usuario debe realizar la migración de la cuenta manualmente después de actualizar desde 1.8.1 y versiones anteriores. Consulte Habilitación de la administración de nuevos usuarios para obtener más información. Para los usuarios de LDAP existentes, consulte la sección Procedimiento de migración de LDAP.

Recomendamos enfáticamente a los usuarios que migren a este nuevo sistema por las siguientes razones:

  • El sistema de administración de usuarios de la interfaz de usuario (en el que un usuario iniciaría sesión con una dirección de correo electrónico) quedará obsoleto por el finales del primer trimestre de 2022 (~1 año a partir de ahora).

  • Todas las próximas funciones y mejoras se basarán en el nuevo sistema de administración de usuarios, manejado por el proceso de backend de cmon.

  • Es contrario a la intuición tener dos o más controladores de autenticación ejecutándose en un solo sistema.

Si tiene problemas y necesita ayuda para migrar e implementar el nuevo sistema de administración de usuarios de ClusterControl, no dude en comunicarse con nosotros a través del portal de soporte, el foro de la comunidad o el canal de Slack.

Reflexiones finales

ClusterControl está evolucionando hacia un producto más sofisticado con el tiempo. Para respaldar el crecimiento, tenemos que introducir nuevos cambios importantes para una experiencia más rica a largo plazo. ¡Espera más funciones y mejoras en el nuevo sistema de gestión de usuarios en las próximas versiones!