sql >> Database >  >> RDS >> MariaDB

Nieuw gebruikers- en LDAP-beheer in ClusterControl 1.8.2

Na het upgraden naar ClusterControl 1.8.2, zou u de volgende meldingsbanner moeten krijgen:

Wat is daar mee aan de hand? Het is een afschrijvingsbericht van het huidige gebruikersbeheersysteem ten gunste van het nieuwe gebruikersbeheersysteem dat wordt afgehandeld door de ClusterControl-controllerservice (cmon). Wanneer u op de banner klikt, wordt u doorgestuurd naar de pagina voor het maken van gebruikers om een ​​nieuwe admin-gebruiker aan te maken, zoals beschreven in deze gebruikershandleiding.

In deze blogpost gaan we kijken naar het nieuwe gebruikersbeheersysteem dat is geïntroduceerd in ClusterControl 1.8.2 en hoe het verschilt van de vorige. Ter verduidelijking:het oude gebruikersbeheersysteem zal tot Q1 2022 nog steeds naast het nieuwe gebruikersauthenticatie- en beheersysteem werken. Vanaf nu worden alle nieuwe installaties voor ClusterControl 1.8.2 en later geconfigureerd met de nieuwe gebruiker beheersysteem.

Gebruikersbeheer pre-1.8.2

ClusterControl 1.8.1 en ouder slaat de gebruikersinformatie en boekhouding op in een web-UI-database genaamd "dcps". Deze database is onafhankelijk van de cmon-database die wordt gebruikt door de ClusterControl Controller-service (cmon).

Gebruikersaccounts en authenticatie

Een gebruikersaccount bestaat uit de volgende informatie:

  • Naam

  • Tijdzone

  • E-mail (gebruikt voor authenticatie)

  • Wachtwoord

  • Rol

  • Team

Men zou een e-mailadres gebruiken om in te loggen op de ClusterControl GUI, zoals weergegeven in de volgende schermafbeelding:

Nadat u bent ingelogd, zoekt ClusterControl de organisatie op waartoe de gebruiker behoort en wijst vervolgens de op rollen gebaseerde toegangscontrole (RBAC) toe om toegang te krijgen tot een specifiek cluster en functionaliteiten. Een team kan nul of meer clusters hebben, terwijl een gebruiker tot een of meer teams moet behoren. Het aanmaken van een gebruiker vereist een vooraf aangemaakte rol en team. ClusterControl wordt geleverd met een standaardteam genaamd Admin, en 3 standaardrollen - Super Admin, Admin en Gebruiker.

Toestemming en toegangscontrole

ClusterControl 1.8.1 en ouder gebruikten een op de gebruikersinterface gebaseerde toegangscontrole op basis van roltoewijzing. In een andere term noemden we dit op rollen gebaseerde toegangscontrole (RBAC). De beheerder zou rollen maken en aan elke rol zou een reeks machtigingen worden toegewezen om toegang te krijgen tot bepaalde functies en pagina's. De rolhandhaving vindt plaats aan de front-end, waar ClusterControl-controllerservice (cmon) geen idee heeft of de actieve gebruiker toegang heeft tot de functionaliteit, omdat de informatie nooit wordt gedeeld tussen deze twee authenticatie-engines. Dit zou het in de toekomst moeilijker maken om authenticatie en autorisatie te controleren, vooral als er meer functies worden toegevoegd die compatibel zijn met zowel de GUI als de CLI-interface.

De volgende schermafbeelding toont de beschikbare functies die kunnen worden bestuurd via RBAC:

De beheerder hoeft alleen het relevante toegangsniveau voor specifieke functies te kiezen, en het wordt opgeslagen in de "dcps"-database en vervolgens gebruikt door de ClusterControl GUI om UI-bronnen toe te staan ​​aan de GUI-gebruikers. De hier gemaakte toegangslijst heeft niets te maken met de CLI-gebruikers.

LDAP

ClusterControl pre-1.8.1 gebruikte de PHP LDAP-module voor LDAP-authenticatie. Het ondersteunt Active Directory, OpenLDAP en FreeIPA-directoryservices, maar slechts een beperkt aantal LDAP-attributen kan worden gebruikt voor gebruikersidentificatie, zoals uid, cn of sAMAccountName. De implementatie is redelijk eenvoudig en ondersteunt geen geavanceerde gebruikers-/groepsfiltering, attributentoewijzing en TLS-implementatie.

Het volgende is de informatie die nodig is voor LDAP-instellingen:

Aangezien dit een frontend-service is, wordt het LDAP-logbestand opgeslagen onder de webapp-map, met name op /var/www/html/clustercontrol/app/log/cc-ldap.log. Een geverifieerde gebruiker wordt toegewezen aan een bepaalde ClusterControl-rol en -team, zoals gedefinieerd op de LDAP-groepstoewijzingspagina.

Gebruikersbeheer post-1.8.2

In deze nieuwe versie ondersteunt ClusterControl zowel authenticatie-handlers, de frontend-authenticatie (met e-mailadres) en backend-authenticatie (met gebruikersnaam). Voor de backend-authenticatie slaat ClusterControl de gebruikersinformatie en boekhouding op in de cmon-database die wordt gebruikt door de ClusterControl Controller-service (cmon).

Gebruikersaccounts en authenticatie

Een gebruikersaccount bestaat uit de volgende informatie:

  • Gebruikersnaam (gebruikt voor authenticatie)

  • E-mailadres

  • Volledige naam

  • Tags

  • Oorsprong

  • Uitgeschakeld

  • Opschorten

  • Groepen

  • Eigenaar

  • ACL

  • Mislukte aanmeldingen

  • CDT-pad

In vergelijking met de oude implementatie heeft het nieuwe gebruikersbeheer meer informatie voor een gebruiker, wat complexe manipulatie van gebruikersaccounts en betere toegangscontrole met verbeterde beveiliging mogelijk maakt. Een gebruikersauthenticatieproces is nu beschermd tegen brute-force-aanvallen en kan worden gedeactiveerd om onderhouds- of veiligheidsredenen.

Men zou een e-mailadres of gebruikersnaam gebruiken om in te loggen op de ClusterControl GUI, zoals weergegeven in de volgende schermafbeelding (let op de tijdelijke aanduiding-tekst voor het veld Gebruikersnaam):

Als de gebruiker inlogt met een e-mailadres, wordt de gebruiker geverifieerd via de verouderde frontend-gebruikersbeheerservice en als een gebruikersnaam wordt opgegeven, zal ClusterControl automatisch de nieuwe backend-gebruikersbeheerservice gebruiken die wordt beheerd door de controllerservice. Beide authenticaties werken met twee verschillende sets gebruikersbeheerinterfaces.

Toestemming en toegangscontrole

In het nieuwe gebruikersbeheer worden machtigingen en toegangscontroles beheerd door een set ACL-tekstvormen (Access Control List) genaamd lezen (r), schrijven (w) en uitvoeren (x). Alle ClusterControl-objecten en -functionaliteiten zijn gestructureerd als onderdeel van een directorystructuur, we noemden dit CMON Directory Tree (CDT) en elk item is eigendom van een gebruiker, een groep en een ACL. Je kunt het zien als vergelijkbaar met Linux-bestands- en mappermissies. In feite volgt de implementatie van ClusterControl-toegangscontrole de standaard POSIX-toegangscontrolelijsten.

Om een ​​voorbeeld te geven, overweeg de volgende commando's. We hebben de Cmon Directory Tree (CDT) -waarde voor ons cluster opgehaald door de opdrachtregel "s9s tree" te gebruiken (stel je dit voor als ls -al in UNIX). In dit voorbeeld is onze clusternaam "PostgreSQL 12", zoals hieronder weergegeven (aangegeven door de "c" aan het begin van de regel):

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

Stel dat we een alleen-lezen gebruiker hebben genaamd readeruser, en deze gebruiker behoort tot een groep genaamd readergroup. Om leesrechten toe te kennen aan lezergebruiker en lezersgroep, en ons CDT-pad is "/PostgreSQL 12" (begin altijd met een "/", vergelijkbaar met UNIX), zouden we het volgende uitvoeren:

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

Nu heeft de lezergebruiker toegang tot ClusterControl via GUI en CLI als een alleen-lezen gebruiker voor een databasecluster genaamd "PostgreSQL 12". Houd er rekening mee dat de bovenstaande voorbeelden van ACL-manipulatie zijn overgenomen uit de ClusterControl CLI, zoals beschreven in dit artikel. Als u verbinding maakt via de ClusterControl GUI, ziet u de volgende nieuwe pagina voor toegangscontrole:

ClusterControl GUI biedt een eenvoudigere manier om de toegangscontrole af te handelen. Het biedt een begeleide aanpak om de machtigingen, eigendom en groeperingen te configureren. Net als bij de oudere versie is elk cluster eigendom van een team, en u kunt een ander team specificeren om een ​​lees-, admin- of verbod voor een ander team om toegang te krijgen tot het cluster vanuit zowel de ClusterControl GUI als de CLI-interfaces.

LDAP

In de vorige versies (1.8.1 en ouder) werd LDAP-verificatie afgehandeld door de frontend-component via een reeks tabellen (dcps.ldap_settings en dcps.ldap_group_roles). Vanaf ClusterControl 1.8.2 worden alle LDAP-configuraties en -toewijzingen opgeslagen in dit configuratiebestand, /etc/cmon-ldap.cnf.

Het wordt aanbevolen om de LDAP-instellingen en groepstoewijzingen te configureren via de gebruikersinterface van ClusterControl, omdat voor eventuele wijzigingen in dit bestand het controllerproces opnieuw moet worden geladen, dat automatisch wordt geactiveerd bij het configureren van LDAP via de gebruikersinterface. U kunt het bestand ook rechtstreeks wijzigen, maar u moet de cmon-service handmatig opnieuw laden met behulp van de volgende opdrachten:

$ systemctl restart cmon # or service cmon restart

De volgende schermafbeelding toont het nieuwe dialoogvenster Geavanceerde LDAP-instellingen:

In vergelijking met de vorige versie is de nieuwe LDAP-implementatie beter aanpasbaar om industriestandaard directoryservices zoals Active Directory, OpenLDAP en FreeIPA te ondersteunen. Het ondersteunt ook kenmerktoewijzingen, zodat u kunt instellen welk kenmerk een waarde vertegenwoordigt die kan worden geïmporteerd in de ClusterControl-gebruikersdatabase, zoals e-mail, echte naam en gebruikersnaam.

Raadpleeg de gebruikershandleiding voor LDAP-instellingen voor meer informatie.

Voordelen van het nieuwe gebruikersbeheer

Merk op dat het huidige gebruikersbeheer nog steeds zij aan zij werkt met het nieuwe gebruikersbeheersysteem. We raden onze gebruikers echter ten zeerste aan om vóór Q1 2022 naar het nieuwe systeem te migreren. Momenteel wordt alleen handmatige migratie ondersteund. Zie Migratie naar het gedeelte Nieuw gebruikersbeheer hieronder voor details.

Het nieuwe gebruikersbeheersysteem zal ClusterControl-gebruikers op de volgende manieren ten goede komen:

  • Gecentraliseerd gebruikersbeheer voor ClusterControl CLI en ClusterControl GUI. Alle authenticatie, autorisatie en accounting worden afgehandeld door de ClusterControl Controller-service (cmon).

  • Geavanceerde en aanpasbare LDAP-configuratie. De vorige implementatie ondersteunt slechts een aantal gebruikersnaamattributen en moest op zijn eigen manier worden geconfigureerd om het goed te laten werken.

  • Dezelfde gebruikersaccount kan worden gebruikt om veilig te verifiëren bij de ClusterControl API via TLS. Bekijk bijvoorbeeld dit artikel.

  • Beveiligde gebruikersverificatiemethoden. Het nieuwe systeemeigen gebruikersbeheer ondersteunt gebruikersauthenticatie met zowel privé-/openbare sleutels als wachtwoorden. Voor LDAP-authenticatie worden de LDAP-bindingen en lookups ondersteund via SSL en TLS.

  • Een consistente weergave van tijdweergave op basis van de tijdzone-instelling van de gebruiker, vooral bij gebruik van zowel de CLI- als de GUI-interface voor databaseclusterbeheer en -bewaking.

  • Bescherming tegen brute force-aanvallen, waarbij een gebruiker de toegang tot het systeem kan worden ontzegd via opschorting of uitgeschakelde aanmeldingen.

Migratie naar het nieuwe gebruikersbeheer

Aangezien beide gebruikerssystemen verschillende gebruikersaccounts en structuur hebben, is het een zeer riskante operatie om de gebruikersmigratie van frontend naar backend te automatiseren. Daarom moet de gebruiker de accountmigratie handmatig uitvoeren na het upgraden van 1.8.1 en ouder. Raadpleeg Nieuw gebruikersbeheer inschakelen voor meer informatie. Voor bestaande LDAP-gebruikers, raadpleeg de sectie LDAP-migratieprocedure.

We raden gebruikers ten zeerste aan om naar dit nieuwe systeem te migreren om de volgende redenen:

  • Het gebruikersbeheersysteem voor de gebruikersinterface (waarbij een gebruiker zou inloggen met een e-mailadres) wordt afgeschaft door de eind Q1 2022 (~1 jaar vanaf nu).

  • Alle aankomende functies en verbeteringen zullen gebaseerd zijn op het nieuwe gebruikersbeheersysteem, afgehandeld door het cmon-backendproces.

  • Het is contra-intuïtief om twee of meer authenticatie-handlers op één systeem te hebben.

Als u problemen ondervindt en hulp nodig heeft bij de migratie en implementatie van het nieuwe ClusterControl-gebruikersbeheersysteem, aarzel dan niet om contact met ons op te nemen via het ondersteuningsportaal, het communityforum of het Slack-kanaal.

Laatste gedachten

ClusterControl evolueert in de loop van de tijd naar een meer geavanceerd product. Om de groei te ondersteunen, moeten we nieuwe grote veranderingen doorvoeren voor een rijkere ervaring op lange termijn. Verwacht in de komende versies meer functies en verbeteringen aan het nieuwe gebruikersbeheersysteem!


  1. Hoe u de taal voor uw Oracle-sessie kunt wijzigen

  2. Waarde splitsen van één veld naar twee

  3. Retourneer de korte maandnaam van een datum in Oracle

  4. Een CHECK-beperking in SQL Server uitschakelen (T-SQL-voorbeelden)