MariaDB
 sql >> Database >  >> RDS >> MariaDB

Gestione nuovi utenti e LDAP in ClusterControl 1.8.2

Dopo l'aggiornamento a ClusterControl 1.8.2, dovresti ricevere il seguente banner di notifica:

Che succede? Si tratta di un avviso di ammortamento dell'attuale sistema di gestione utenti a favore del nuovo sistema di gestione utenti gestito dal servizio controller ClusterControl (cmon). Cliccando sul banner verrai reindirizzato alla pagina di creazione dell'utente per creare un nuovo utente amministratore, come descritto in questa guida per l'utente.

In questo post del blog, esamineremo il nuovo sistema di gestione degli utenti introdotto in ClusterControl 1.8.2 e vedremo come è diverso dai precedenti. Solo per chiarimento, il vecchio sistema di gestione degli utenti funzionerà ancora fianco a fianco con il nuovo sistema di autenticazione e gestione degli utenti fino al primo trimestre del 2022. D'ora in poi, tutte le nuove installazioni per ClusterControl 1.8.2 e successive saranno configurate con il nuovo utente sistema di gestione.

Gestione utenti precedente alla 1.8.2

ClusterControl 1.8.1 e precedenti memorizza le informazioni sull'utente e la contabilità all'interno di un database dell'interfaccia utente Web chiamato "dcps". Questo database è indipendente dal database cmon utilizzato dal servizio ClusterControl Controller (cmon).

Account utente e autenticazione

Un account utente è costituito dalle seguenti informazioni:

  • Nome

  • Fuso orario

  • E-mail (usata per l'autenticazione)

  • Password

  • Ruolo

  • Team

Usare un indirizzo e-mail per accedere alla GUI di ClusterControl, come mostrato nella schermata seguente:

Una volta effettuato l'accesso, ClusterControl cercherà l'organizzazione a cui appartiene l'utente e quindi assegnerà il controllo di accesso basato sui ruoli (RBAC) per accedere a un cluster e a funzionalità specifiche. Un team può avere zero o più cluster, mentre un utente deve appartenere a uno o più team. La creazione di un utente richiede un ruolo e un team creati in anticipo. ClusterControl viene fornito con un team predefinito chiamato Admin e 3 ruoli predefiniti:Super Admin, Admin e User.

Autorizzazione e controllo accessi

ClusterControl 1.8.1 e versioni precedenti utilizzavano un controllo dell'accesso basato sull'interfaccia utente basato sull'assegnazione dei ruoli. In un altro termine, abbiamo chiamato questo controllo degli accessi basato sui ruoli (RBAC). L'amministratore creerebbe ruoli ea ogni ruolo verrebbe assegnato un insieme di autorizzazioni per accedere a determinate funzionalità e pagine. L'imposizione del ruolo avviene sul lato front-end, dove il servizio controller ClusterControl (cmon) non ha idea se l'utente attivo ha la possibilità di accedere alla funzionalità perché le informazioni non sono mai state condivise tra questi due motori di autenticazione. Ciò renderebbe l'autenticazione e l'autorizzazione più difficili da controllare in futuro, soprattutto quando si aggiungono più funzionalità compatibili con entrambe le interfacce GUI e CLI.

Lo screenshot seguente mostra le funzioni disponibili che possono essere controllate tramite RBAC:

L'amministratore deve solo selezionare il livello di accesso pertinente per funzionalità specifiche, che verrà archiviato all'interno del database "dcps" e quindi utilizzato dalla GUI di ClusterControl per consentire le risorse dell'interfaccia utente agli utenti della GUI. L'elenco di accesso creato qui non ha nulla a che fare con gli utenti della CLI.

LDAP

ClusterControl precedente alla 1.8.1 utilizzava il modulo PHP LDAP per l'autenticazione LDAP. Supporta i servizi di directory Active Directory, OpenLDAP e FreeIPA ma solo un numero limitato di attributi LDAP può essere utilizzato per l'identificazione dell'utente come uid, cn o sAMAccountName. L'implementazione è abbastanza semplice e non supporta il filtraggio avanzato della base di utenti/gruppi, la mappatura degli attributi e l'implementazione TLS.

Le seguenti sono le informazioni necessarie per le impostazioni LDAP:

Poiché si tratta di un servizio frontend, il file di registro LDAP è archiviato sotto il directory dell'app Web, in particolare in /var/www/html/clustercontrol/app/log/cc-ldap.log. Un utente autenticato verrà mappato a un particolare ruolo e team ClusterControl, come definito nella pagina di mappatura del gruppo LDAP.

Gestione utenti post-1.8.2

In questa nuova versione, ClusterControl supporta sia i gestori di autenticazione, l'autenticazione front-end (tramite indirizzo e-mail) che l'autenticazione back-end (tramite nome utente). Per l'autenticazione di back-end, ClusterControl archivia le informazioni sull'utente e l'accounting all'interno del database cmon utilizzato dal servizio ClusterControl Controller (cmon).

Account utente e autenticazione

Un account utente è costituito dalle seguenti informazioni:

  • Nome utente (usato per l'autenticazione)

  • Indirizzo email

  • Nome completo

  • Tag

  • Origine

  • Disabilitato

  • Sospendi

  • Gruppi

  • Proprietario

  • ACL

  • Accessi non riusciti

  • Percorso CDT

Se confrontata con la vecchia implementazione, la nuova gestione degli utenti ha più informazioni per un utente, il che consente la manipolazione complessa dell'account utente e un migliore controllo degli accessi con una maggiore sicurezza. Un processo di autenticazione dell'utente è ora protetto dagli attacchi di forza bruta e può essere disattivato per motivi di manutenzione o di sicurezza.

Si utilizzerà un indirizzo e-mail o un nome utente per accedere alla GUI di ClusterControl, come mostrato nella schermata seguente (prestare attenzione al testo segnaposto per il campo Nome utente):

Se l'utente accede utilizzando un indirizzo e-mail, l'utente verrà autenticato tramite il servizio di gestione utenti front-end deprecato e se viene fornito un nome utente, ClusterControl utilizzerà automaticamente il nuovo servizio di gestione utenti back-end gestito dal servizio controller. Entrambe le autenticazioni funzionano con due diversi set di interfacce di gestione utente.

Autorizzazione e controllo accessi

Nella nuova gestione degli utenti, i permessi e i controlli di accesso sono controllati da una serie di moduli di testo dell'elenco di controllo degli accessi (ACL) chiamati lettura (r), scrittura (w) ed esecuzione (x). Tutti gli oggetti e le funzionalità di ClusterControl sono strutturati come parte di un albero di directory, chiamato CMON Directory Tree (CDT) e ogni voce è di proprietà di un utente, un gruppo e un ACL. Puoi pensarlo come simile ai permessi di file e directory di Linux. Infatti, l'implementazione del controllo accessi ClusterControl segue gli elenchi di controllo accessi POSIX standard.

Per fare un esempio, considera i seguenti comandi. Abbiamo recuperato il valore Cmon Directory Tree (CDT) per il nostro cluster utilizzando la riga di comando "s9s tree" (immaginalo come ls -al in UNIX). In questo esempio, il nome del nostro cluster è "PostgreSQL 12", come mostrato di seguito (indicato dalla "c" all'inizio della riga):

$ 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).

Supponiamo di avere un utente di sola lettura chiamato readeruser e che questo utente appartenga a un gruppo chiamato readergroup. Per assegnare l'autorizzazione di lettura per readeruser e readergroup, e il nostro percorso CDT è "/PostgreSQL 12" (inizia sempre con un "/", simile a UNIX), eseguiremo:

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

Ora il readeruser può accedere a ClusterControl tramite GUI e CLI come utente di sola lettura per un cluster di database chiamato "PostgreSQL 12". Si noti che gli esempi di manipolazione ACL precedenti sono stati presi dalla CLI ClusterControl, come descritto in questo articolo. Se ti connetti tramite ClusterControl GUI, vedrai la seguente nuova pagina di controllo degli accessi:

La GUI ClusterControl fornisce un modo più semplice per gestire il controllo di accesso. Fornisce un approccio guidato per configurare le autorizzazioni, la proprietà e i raggruppamenti. Simile alla versione precedente, ogni cluster è di proprietà di un team ed è possibile specificare un team diverso per avere una lettura, un amministratore o impedire a un altro team di accedere al cluster da entrambe le interfacce ClusterControl GUI o CLI.

LDAP

Nelle versioni precedenti (1.8.1 e precedenti), l'autenticazione LDAP era gestita dal componente frontend tramite un insieme di tabelle (dcps.ldap_settings e dcps.ldap_group_roles). A partire da ClusterControl 1.8.2, tutte le configurazioni e le mappature LDAP verranno archiviate all'interno di questo file di configurazione, /etc/cmon-ldap.cnf.

Si consiglia di configurare l'impostazione LDAP e le mappature di gruppo tramite l'interfaccia utente di ClusterControl poiché qualsiasi modifica a questo file richiederà un ricaricamento del processo del controller, che viene attivato automaticamente durante la configurazione di LDAP tramite l'interfaccia utente. Puoi anche apportare modifiche dirette al file, tuttavia, devi ricaricare manualmente il servizio cmon utilizzando i seguenti comandi:

$ systemctl restart cmon # or service cmon restart

Lo screenshot seguente mostra la nuova finestra di dialogo Impostazioni avanzate LDAP:

Se confrontata con la versione precedente, la nuova implementazione LDAP è più personalizzabile per supportare i servizi di directory standard del settore come Active Directory, OpenLDAP e FreeIPA. Supporta anche le mappature degli attributi in modo da poter impostare quale attributo rappresenta un valore che può essere importato nel database utente di ClusterControl come e-mail, nome reale e nome utente.

Per ulteriori informazioni, consulta la guida utente delle Impostazioni LDAP.

Vantaggi della New User Management

Si noti che l'attuale gestione degli utenti sta ancora lavorando fianco a fianco con il nuovo sistema di gestione degli utenti. Tuttavia, consigliamo vivamente ai nostri utenti di migrare al nuovo sistema prima del primo trimestre del 2022. Al momento è supportata solo la migrazione manuale. Per i dettagli, vedere la sezione relativa alla migrazione alla gestione dei nuovi utenti di seguito.

Il nuovo sistema di gestione degli utenti avvantaggerà gli utenti di ClusterControl nei seguenti modi:

  • Gestione utenti centralizzata per ClusterControl CLI e ClusterControl GUI. Tutte le autenticazioni, autorizzazioni e contabilizzazioni saranno gestite dal servizio ClusterControl Controller (cmon).

  • Configurazione LDAP avanzata e personalizzabile. L'implementazione precedente supporta solo un certo numero di attributi del nome utente e doveva essere configurata a modo suo per farlo funzionare correttamente.

  • Lo stesso account utente può essere utilizzato per autenticarsi all'API ClusterControl in modo sicuro tramite TLS. Dai un'occhiata ad esempio a questo articolo.

  • Metodi di autenticazione utente sicuri. La nuova gestione utente nativa supporta l'autenticazione utente utilizzando sia chiavi private/pubbliche che password. Per l'autenticazione LDAP, le associazioni e le ricerche LDAP sono supportate tramite SSL e TLS.

  • Una visualizzazione coerente della rappresentazione dell'ora basata sull'impostazione del fuso orario dell'utente, specialmente quando si utilizza sia l'interfaccia CLI che la GUI per gestione e monitoraggio dei cluster di database.

  • Protezione contro gli attacchi di forza bruta, in cui a un utente può essere negato l'accesso al sistema tramite sospensione o login disabilitati.

Migrazione alla Gestione nuovi utenti

Dato che entrambi i sistemi utente hanno account utente e struttura diversi, automatizzare la migrazione degli utenti dal frontend al backend è un'operazione molto rischiosa. Pertanto, l'utente deve eseguire manualmente la migrazione dell'account dopo l'aggiornamento da 1.8.1 e versioni precedenti. Fare riferimento a Abilitazione della gestione dei nuovi utenti per i dettagli. Per gli utenti LDAP esistenti, fare riferimento alla sezione Procedura di migrazione LDAP.

Raccomandiamo vivamente agli utenti di migrare a questo nuovo sistema per i seguenti motivi:

  • Il sistema di gestione degli utenti dell'interfaccia utente (in cui un utente accede utilizzando un indirizzo e-mail) sarà deprecato dal fine del 1° trimestre 2022 (~1 anno da oggi).

  • Tutte le funzionalità e i miglioramenti imminenti saranno basati sul nuovo sistema di gestione degli utenti, gestito dal processo di backend cmon.

  • È controintuitivo avere due o più gestori di autenticazione in esecuzione su un unico sistema.

Se stai riscontrando problemi e hai bisogno di assistenza per la migrazione e l'implementazione del nuovo sistema di gestione degli utenti ClusterControl, non esitare a contattarci tramite il portale di supporto, il forum della community o il canale Slack.

Pensieri finali

ClusterControl si sta evolvendo in un prodotto più sofisticato nel tempo. Per supportare la crescita, dobbiamo introdurre nuovi importanti cambiamenti per un'esperienza più ricca a lungo termine. Aspettati più funzionalità e miglioramenti al nuovo sistema di gestione degli utenti nelle prossime versioni!