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

Ny bruger og LDAP-styring i ClusterControl 1.8.2

Efter opgradering til ClusterControl 1.8.2 bør du få følgende meddelelsesbanner:

Hvad er der med det? Det er en afskrivningsmeddelelse af det nuværende brugerstyringssystem til fordel for det nye brugerstyringssystem, der håndteres af ClusterControl controller-tjenesten (cmon). Når du klikker på banneret, vil du blive omdirigeret til brugeroprettelsessiden for at oprette en ny admin-bruger, som beskrevet i denne brugervejledning.

I dette blogindlæg skal vi se nærmere på det nye brugeradministrationssystem, der blev introduceret i ClusterControl 1.8.2, og for at se, hvordan det adskiller sig fra de tidligere. For en præcisering vil det gamle brugeradministrationssystem stadig fungere side om side med det nye brugergodkendelses- og administrationssystem frem til 1. kvartal 2022. Fra nu af vil alle nye installationer til ClusterControl 1.8.2 og senere blive konfigureret med den nye bruger ledelsessystem.

Brugeradministration før 1.8.2

ClusterControl 1.8.1 og ældre gemmer brugeroplysningerne og regnskabet i en web-UI-database kaldet "dcps". Denne database er uafhængig af cmon-databasen, der bruges af ClusterControl Controller-tjenesten (cmon).

Brugerkonti og godkendelse

En brugerkonto består af følgende oplysninger:

  • Navn

  • Tidszone

  • E-mail (bruges til godkendelse)

  • Adgangskode

  • Rolle

  • Team

Man ville bruge en e-mailadresse til at logge ind på ClusterControl GUI, som vist på følgende skærmbillede:

Når du er logget ind, vil ClusterControl slå op efter den organisation, brugeren tilhører, og derefter tildele den rollebaserede adgangskontrol (RBAC) for at få adgang til en specifik klynge og funktionaliteter. Et team kan have nul eller flere klynger, mens en bruger skal tilhøre et eller flere teams. Oprettelse af en bruger kræver en rolle og et team, der er oprettet på forhånd. ClusterControl kommer med et standardteam kaldet Admin og 3 standardroller - Super Admin, Admin og User.

Tilladelse og adgangskontrol

ClusterControl 1.8.1 og ældre brugte en UI-baseret adgangskontrol baseret på rolletildeling. I et andet udtryk kaldte vi dette rollebaseret adgangskontrol (RBAC). Administratoren ville oprette roller, og hver rolle ville blive tildelt et sæt tilladelser til at få adgang til bestemte funktioner og sider. Rollehåndhævelsen sker på front-end-siden, hvor ClusterControl-controllertjenesten (cmon) ikke har nogen idé om, hvorvidt den aktive bruger har mulighed for at få adgang til funktionaliteten, fordi oplysningerne aldrig er blevet delt mellem disse to autentificeringsmotorer. Dette ville gøre godkendelse og autorisation sværere at kontrollere i fremtiden, især når der tilføjes flere funktioner, der er kompatible med både GUI- og CLI-grænseflader.

Følgende skærmbillede viser de tilgængelige funktioner, der kan styres via RBAC:

Administratoren skal blot vælge det relevante adgangsniveau for specifikke funktioner, og det vil blive gemt i "dcps"-databasen og derefter brugt af ClusterControl GUI til at tillade UI-ressourcer til GUI-brugere. Adgangslisten oprettet her har intet at gøre med CLI-brugerne.

LDAP

ClusterControl pre-1.8.1 brugte PHP LDAP-modulet til LDAP-godkendelse. Det understøtter Active Directory, OpenLDAP og FreeIPA katalogtjenester, men kun et begrænset antal LDAP-attributter kan bruges til brugeridentifikation såsom uid, cn eller sAMAccountName. Implementeringen er ret ligetil og understøtter ikke avanceret bruger-/gruppebasefiltrering, attributkortlægning og TLS-implementering.

Følgende er de nødvendige oplysninger til LDAP-indstillinger:

Da dette er en frontend-tjeneste, gemmes LDAP-logfilen under webapp-mappe, specifikt på /var/www/html/clustercontrol/app/log/cc-ldap.log. En godkendt bruger vil blive knyttet til en bestemt ClusterControl-rolle og -team, som defineret på LDAP-gruppetilknytningssiden.

Brugeradministration efter 1.8.2

I denne nye version understøtter ClusterControl både godkendelsesbehandlere, frontend-godkendelse (ved hjælp af e-mail-adresse) og backend-godkendelse (ved hjælp af brugernavn). Til backend-godkendelse gemmer ClusterControl brugeroplysningerne og regnskabet i cmon-databasen, der bruges af ClusterControl Controller-tjenesten (cmon).

Brugerkonti og godkendelse

En brugerkonto består af følgende oplysninger:

  • Brugernavn (bruges til godkendelse)

  • E-mailadresse

  • Fuldt navn

  • Tags

  • Oprindelse

  • Deaktiveret

  • Suspender

  • Grupper

  • Ejer

  • ACL

  • Mislykkede logins

  • CDT-sti

Hvis sammenlignet med den gamle implementering, har den nye brugeradministration flere oplysninger til en bruger, hvilket tillader kompleks manipulation af brugerkonti og bedre adgangskontrol med forbedret sikkerhed. En brugergodkendelsesproces er nu beskyttet mod brute-force-angreb og kan deaktiveres af vedligeholdelses- eller sikkerhedsmæssige årsager.

Man ville bruge en e-mailadresse eller et brugernavn til at logge ind på ClusterControl GUI, som vist på følgende skærmbillede (vær opmærksom på pladsholderteksten for feltet Brugernavn):

Hvis brugeren logger ind med en e-mail-adresse, bliver brugeren autentificeret via den forældede frontend-brugeradministrationstjeneste, og hvis et brugernavn er angivet, vil ClusterControl automatisk bruge den nye backend-brugerstyringstjeneste, der håndteres af controllertjenesten. Begge godkendelser fungerer med to forskellige sæt brugeradministrationsgrænseflader.

Tilladelse og adgangskontrol

I den nye brugeradministration styres tilladelser og adgangskontroller af et sæt af adgangskontrolliste (ACL) tekstformer kaldet læs (r), skriv (w) og udfør (x). Alle ClusterControl-objekter og -funktioner er struktureret som en del af et bibliotekstræ, vi kaldte dette CMON Directory Tree (CDT), og hver post ejes af en bruger, en gruppe og en ACL. Du kan tænke på det som ligner Linux fil- og mappetilladelser. Faktisk følger ClusterControl-adgangskontrolimplementeringen standard POSIX-adgangskontrollister.

For at sætte ind i et eksempel, overvej følgende kommandoer. Vi hentede Cmon Directory Tree-værdien (CDT) for vores klynge ved at bruge kommandolinjen "s9s tree" (forestil dig dette som ls -al i UNIX). I dette eksempel er vores klyngenavn "PostgreSQL 12", som vist nedenfor (angivet med "c" i begyndelsen af ​​linjen):

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

Antag, at vi har en skrivebeskyttet bruger kaldet readeruser, og denne bruger tilhører en gruppe kaldet readergroup. For at tildele læsetilladelse til læserbruger og læsergruppe, og vores CDT-sti er "/PostgreSQL 12" (start altid med et "/", svarende til UNIX), ville vi køre:

$ 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 kan læserbrugeren få adgang til ClusterControl via GUI og CLI som en skrivebeskyttet bruger for en databaseklynge kaldet "PostgreSQL 12". Bemærk, at ovenstående ACL-manipulationseksempler blev taget fra ClusterControl CLI, som beskrevet i denne artikel. Hvis du opretter forbindelse via ClusterControl GUI, vil du se følgende nye adgangskontrolside:

ClusterControl GUI giver en mere enkel måde at håndtere adgangskontrol på. Det giver en guidet tilgang til at konfigurere tilladelser, ejerskab og grupperinger. I lighed med den ældre version ejes hver klynge af et team, og du kan angive et andet team til at have en læse-, admin- eller forbyde et andet team at få adgang til klyngen fra både ClusterControl GUI eller CLI-grænseflader.

LDAP

I de tidligere versioner (1.8.1 og ældre) blev LDAP-godkendelse håndteret af frontend-komponenten gennem et sæt tabeller (dcps.ldap_settings og dcps.ldap_group_roles). Fra ClusterControl 1.8.2 vil alle LDAP-konfigurationer og tilknytninger blive gemt i denne konfigurationsfil, /etc/cmon-ldap.cnf.

Det anbefales at konfigurere LDAP-indstilling og gruppetilknytninger via ClusterControl UI, fordi enhver ændring af denne fil vil kræve en genindlæsning til controllerprocessen, som udløses automatisk, når LDAP konfigureres via UI. Du kan også foretage direkte ændringer i filen, men du skal genindlæse cmon-tjenesten manuelt ved at bruge følgende kommandoer:

$ systemctl restart cmon # or service cmon restart

Følgende skærmbillede viser den nye dialogboks med avancerede LDAP-indstillinger:

Hvis sammenlignet med den tidligere version, er den nye LDAP-implementering mere tilpasselig til at understøtte branchestandard katalogtjenester som Active Directory, OpenLDAP og FreeIPA. Det understøtter også attributtilknytninger, så du kan indstille, hvilken attribut der repræsenterer en værdi, der kan importeres til ClusterControl-brugerdatabasen, såsom e-mail, rigtigt navn og brugernavn.

For mere information, se brugervejledningen til LDAP-indstillinger.

Fordele ved den nye brugeradministration

Bemærk, at den nuværende brugeradministration stadig arbejder side om side med det nye brugeradministrationssystem. Vi anbefaler dog stærkt vores brugere at migrere til det nye system inden Q1 2022. Kun manuel migrering understøttes i øjeblikket. Se Migration til afsnittet Ny brugeradministration nedenfor for detaljer.

Det nye brugeradministrationssystem vil gavne ClusterControl-brugere på følgende måder:

  • Centraliseret brugeradministration for ClusterControl CLI og ClusterControl GUI. Al godkendelse, godkendelse og regnskab vil blive håndteret af ClusterControl Controller-tjenesten (cmon).

  • Avanceret og tilpasselig LDAP-konfiguration. Den tidligere implementering understøtter kun et antal brugernavnsattributter og skulle konfigureres på sin egen måde for at få det til at fungere korrekt.

  • Den samme brugerkonto kan bruges til at autentificere til ClusterControl API'en sikkert via TLS. Tjek f.eks. denne artikel.

  • Sikre brugergodkendelsesmetoder. Den nye indbyggede brugeradministration understøtter brugergodkendelse ved hjælp af både private/offentlige nøgler og adgangskoder. Til LDAP-godkendelse understøttes LDAP-bindinger og opslag via SSL og TLS.

  • En ensartet visning af tidsrepræsentation baseret på brugerens tidszoneindstilling, især ved brug af både CLI og GUI-grænseflade til styring og overvågning af databaseklynge.

  • Beskyttelse mod brute force-angreb, hvor en bruger kan nægtes adgang til systemet via suspendering eller deaktiverede logins.

Migration til den nye brugeradministration

Da begge brugersystemer har forskellig brugerkonto og struktur, er det en meget risikabel operation at automatisere brugermigreringen fra frontend til backend. Derfor skal brugeren udføre kontomigreringen manuelt efter opgradering fra 1.8.1 og ældre. Se venligst Aktivering af ny brugeradministration for detaljer. For eksisterende LDAP-brugere henvises til afsnittet LDAP-migreringsprocedure.

Vi anbefaler stærkt brugere at migrere til dette nye system af følgende årsager:

  • Grænsefladebrugerstyringssystemet (hvor en bruger vil logge ind med en e-mailadresse) vil blive forældet af udgangen af ​​1. kvartal 2022 (~1 år fra nu).

  • Alle kommende funktioner og forbedringer vil være baseret på det nye brugeradministrationssystem, som håndteres af cmon-backend-processen.

  • Det er kontraintuitivt at have to eller flere godkendelsesbehandlere kørende på et enkelt system.

Hvis du står over for problemer og har brug for hjælp til migreringen og implementeringen af ​​det nye ClusterControl-brugeradministrationssystem, så tøv ikke med at kontakte os via supportportalen, community-forumet eller Slack-kanalen.

Sidste tanker

ClusterControl udvikler sig til et mere sofistikeret produkt over tid. For at understøtte væksten er vi nødt til at indføre nye store ændringer for en rigere oplevelse på længere sigt. Forvent flere funktioner og forbedringer til det nye brugeradministrationssystem i de kommende versioner!


  1. Hvad er den forventede adfærd for flere sæt-returnerende funktioner i SELECT-sætning?

  2. Hvordan opdeles en varchar-kolonne som flere værdier i SQL?

  3. Få datoer fra et ugenummer i T-SQL

  4. Hvordan grupperer jeg efter uge i MySQL?