MariaDB
 sql >> Base de Dados >  >> RDS >> MariaDB

Gerenciamento de Novo Usuário e LDAP no ClusterControl 1.8.2

Após atualizar para o ClusterControl 1.8.2, você deve obter o seguinte banner de notificação:

O que há com isso? É um aviso de depreciação do atual sistema de gerenciamento de usuários em favor do novo sistema de gerenciamento de usuários administrado pelo serviço de controlador ClusterControl (cmon). Ao clicar no banner, você será redirecionado para a página de criação de usuário para criar um novo usuário administrador, conforme descrito neste guia do usuário.

Nesta postagem de blog, examinaremos o novo sistema de gerenciamento de usuários introduzido no ClusterControl 1.8.2 e veremos como ele é diferente dos anteriores. Apenas para esclarecimento, o antigo sistema de gerenciamento de usuários ainda funcionará lado a lado com o novo sistema de autenticação e gerenciamento de usuários até o primeiro trimestre de 2022. A partir de agora, todas as novas instalações do ClusterControl 1.8.2 e posteriores serão configuradas com o novo usuário Sistema de gestão.

Gerenciamento de usuários pré-1.8.2

ClusterControl 1.8.1 e anteriores armazenam as informações do usuário e a contabilidade dentro de um banco de dados de interface do usuário da Web chamado "dcps". Esse banco de dados é independente do banco de dados cmon usado pelo serviço ClusterControl Controller (cmon).

Contas de usuário e autenticação

Uma conta de usuário consiste nas seguintes informações:

  • Nome

  • Fuso horário

  • E-mail (usado para autenticação)

  • Senha

  • Função

  • Equipe



Usaria um endereço de e-mail para fazer login na GUI do ClusterControl, conforme mostrado na captura de tela a seguir:


Uma vez conectado, o ClusterControl procurará a organização à qual o usuário pertence e, em seguida, atribuirá o controle de acesso baseado em função (RBAC) para acessar um cluster e funcionalidades específicos. Uma equipe pode ter zero ou mais clusters, enquanto um usuário deve pertencer a uma ou mais equipes. A criação de um usuário requer uma função e uma equipe criadas previamente. O ClusterControl vem com uma equipe padrão chamada Admin e 3 funções padrão - Super Admin, Admin e User.

Permissão e controle de acesso

ClusterControl 1.8.1 e anteriores usavam um controle de acesso baseado em interface do usuário com base na atribuição de função. Em outro termo, chamamos isso de controle de acesso baseado em função (RBAC). O administrador criaria funções e cada função receberia um conjunto de permissões para acessar determinados recursos e páginas. A imposição de função acontece no lado do front-end, onde o serviço do controlador ClusterControl (cmon) não tem ideia se o usuário ativo tem a capacidade de acessar a funcionalidade porque as informações nunca são compartilhadas entre esses dois mecanismos de autenticação. Isso tornaria a autenticação e a autorização mais difíceis de controlar no futuro, especialmente ao adicionar mais recursos compatíveis com as interfaces GUI e CLI.

A captura de tela a seguir mostra os recursos disponíveis que podem ser controlados via RBAC:


O administrador só precisa escolher o nível de acesso relevante para recursos específicos, e ele será armazenado dentro do banco de dados "dcps" e usado pela GUI do ClusterControl para permitir recursos de interface do usuário para os usuários da GUI. A lista de acesso criada aqui não tem nada a ver com os usuários da CLI.

LDAP

ClusterControl pré-1.8.1 usava o módulo PHP LDAP para autenticação LDAP. Ele suporta serviços de diretório Active Directory, OpenLDAP e FreeIPA, mas apenas um número limitado de atributos LDAP pode ser usado para identificação do usuário, como uid, cn ou sAMAccountName. A implementação é bastante direta e não suporta filtragem avançada de base de usuário/grupo, mapeamento de atributos e implementação de TLS.

A seguir estão as informações necessárias para as configurações do LDAP:

Como este é um serviço de front-end, o arquivo de log LDAP é armazenado sob o diretório de aplicativos da web, especificamente em /var/www/html/clustercontrol/app/log/cc-ldap.log. Um usuário autenticado será mapeado para uma determinada função e equipe do ClusterControl, conforme definido na página de mapeamento do grupo LDAP.

Gerenciamento de usuários pós-1.8.2

Nesta nova versão, o ClusterControl suporta ambos os manipuladores de autenticação, a autenticação de front-end (usando endereço de e-mail) e a autenticação de back-end (usando nome de usuário). Para a autenticação de back-end, o ClusterControl armazena as informações do usuário e a contabilidade dentro do banco de dados cmon que é usado pelo serviço ClusterControl Controller (cmon).

Contas de usuário e autenticação

Uma conta de usuário consiste nas seguintes informações:

  • Nome de usuário (usado para autenticação)

  • Endereço de e-mail

  • Nome completo

  • Etiquetas

  • Origem

  • Desativado

  • Suspender

  • Grupos

  • Proprietário

  • ACL

  • Logins com falha

  • caminho do CDT

Se comparado com a implementação antiga, o novo gerenciamento de usuários possui mais informações para um usuário, o que permite manipulação complexa de contas de usuários e melhor controle de acesso com segurança aprimorada. Um processo de autenticação de usuário agora está protegido contra ataques de força bruta e pode ser desativado por motivos de manutenção ou segurança.

Pode-se usar um endereço de e-mail ou nome de usuário para fazer login na GUI do ClusterControl, conforme mostrado na captura de tela a seguir (preste atenção ao texto do espaço reservado para o campo Nome de usuário):

Se o usuário fizer login usando um endereço de e-mail, ele será autenticado por meio do serviço de gerenciamento de usuário de front-end obsoleto e se um nome de usuário for fornecido, o ClusterControl usará automaticamente o novo serviço de gerenciamento de usuário de back-end manipulado pelo serviço de controlador. Ambas as autenticações funcionam com dois conjuntos diferentes de interfaces de gerenciamento de usuário.

Permissão e controle de acesso

No novo gerenciamento de usuários, permissões e controles de acesso são controlados por um conjunto de formulários de texto da Lista de Controle de Acesso (ACL) chamados de leitura (r), gravação (w) e execução (x). Todos os objetos e funcionalidades do ClusterControl são estruturados como parte de uma árvore de diretórios, chamamos isso de CMON Directory Tree (CDT) e cada entrada é de propriedade de um usuário, um grupo e uma ACL. Você pode pensar nisso como semelhante às permissões de arquivos e diretórios do Linux. Na verdade, a implementação do controle de acesso ClusterControl segue as Listas de Controle de Acesso POSIX padrão.

Para colocar em um exemplo, considere os seguintes comandos. Recuperamos o valor Cmon Directory Tree (CDT) para nosso cluster usando a linha de comando "s9s tree" (imagine isso como ls -al no UNIX). Neste exemplo, o nome do nosso cluster é “PostgreSQL 12”, conforme mostrado abaixo (indicado pelo "c" no início da linha):

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

Suponha que temos um usuário somente leitura chamado readeruser, e esse usuário pertence a um grupo chamado readergroup. Para atribuir permissão de leitura para readeruser e readergroup, e nosso caminho CDT é “/PostgreSQL 12” (sempre comece com um “/”, semelhante ao UNIX), executarí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.

Agora o usuário leitor pode acessar o ClusterControl via GUI e CLI como um usuário somente leitura para um cluster de banco de dados chamado "PostgreSQL 12". Observe que os exemplos de manipulação de ACL acima foram obtidos da CLI do ClusterControl, conforme descrito neste artigo. Se você se conectar por meio da GUI do ClusterControl, verá a seguinte nova página de controle de acesso:


A GUI do ClusterControl fornece uma maneira mais simples de lidar com o controle de acesso. Ele fornece uma abordagem guiada para configurar as permissões, propriedade e agrupamentos. Semelhante à versão mais antiga, cada cluster é de propriedade de uma equipe e você pode especificar uma equipe diferente para ter uma leitura, administração ou proibir outra equipe de acessar o cluster a partir de interfaces GUI ou CLI do ClusterControl.

LDAP

Nas versões anteriores (1.8.1 e anteriores), a autenticação LDAP era tratada pelo componente frontend por meio de um conjunto de tabelas (dcps.ldap_settings e dcps.ldap_group_roles). A partir do ClusterControl 1.8.2, todas as configurações e mapeamentos LDAP serão armazenados dentro deste arquivo de configuração, /etc/cmon-ldap.cnf.

Recomenda-se definir a configuração do LDAP e os mapeamentos de grupo por meio da interface do usuário do ClusterControl porque qualquer alteração nesse arquivo exigirá uma recarga no processo do controlador, que é acionado automaticamente ao configurar o LDAP por meio da interface do usuário. Você também pode fazer modificações diretas no arquivo, no entanto, você precisa recarregar o serviço cmon manualmente usando os seguintes comandos:

$ systemctl restart cmon # or service cmon restart

A captura de tela a seguir mostra a nova caixa de diálogo Configurações avançadas do LDAP:


Se comparado com a versão anterior, a nova implementação do LDAP é mais personalizável para oferecer suporte a serviços de diretório padrão do setor, como Active Directory, OpenLDAP e FreeIPA. Ele também suporta mapeamentos de atributos para que você possa definir qual atributo representa um valor que pode ser importado para o banco de dados de usuários do ClusterControl, como email, nome real e nome de usuário.

Para obter mais informações, consulte o guia do usuário de configurações de LDAP.

Vantagens do Gerenciamento de Novos Usuários

Observe que o gerenciamento de usuários atual ainda está trabalhando lado a lado com o novo sistema de gerenciamento de usuários. No entanto, é altamente recomendável que nossos usuários migrem para o novo sistema antes do primeiro trimestre de 2022. No momento, apenas a migração manual é suportada. Consulte a seção Migração para o Gerenciamento de Novos Usuários abaixo para obter detalhes.

O novo sistema de gerenciamento de usuários beneficiará os usuários do ClusterControl das seguintes maneiras:

  • Gerenciamento de usuários centralizado para ClusterControl CLI e ClusterControl GUI. Toda a autenticação, autorização e contabilização serão tratadas pelo serviço ClusterControl Controller (cmon).

  • Configuração LDAP avançada e personalizável. A implementação anterior suporta apenas alguns atributos de nome de usuário e teve que ser configurada de maneira própria para que funcionasse corretamente.

  • A mesma conta de usuário pode ser usada para autenticar a API ClusterControl com segurança via TLS. Confira este artigo por exemplo.

  • Métodos seguros de autenticação do usuário. O novo gerenciamento de usuário nativo oferece suporte à autenticação de usuário usando chaves e senhas privadas/públicas. Para autenticação LDAP, as ligações e pesquisas LDAP são suportadas via SSL e TLS.

  • Uma visão consistente da representação de tempo com base na configuração de fuso horário do usuário, especialmente ao usar a interface CLI e GUI para gerenciamento e monitoramento de cluster de banco de dados.

  • Proteção contra ataques de força bruta, em que um usuário pode ter o acesso negado ao sistema por meio de suspensão ou logins desabilitados.

Migração para o Gerenciamento de Novos Usuários

Como os dois sistemas de usuário têm contas e estruturas de usuário diferentes, é uma operação muito arriscada automatizar a migração de usuários de front-end para back-end. Portanto, o usuário deve realizar a migração da conta manualmente após a atualização da versão 1.8.1 e anterior. Consulte Habilitando o Gerenciamento de Novos Usuários para obter detalhes. Para usuários LDAP existentes, consulte a seção Procedimento de migração de LDAP.

Recomendamos vivamente que os usuários migrem para este novo sistema pelos seguintes motivos:

  • O sistema de gerenciamento de usuários da interface do usuário (no qual um usuário faria login usando um endereço de e-mail) será descontinuado pelo final do primeiro trimestre de 2022 (~ 1 ano a partir de agora).

  • Todos os recursos e melhorias futuros serão baseados no novo sistema de gerenciamento de usuários, gerenciado pelo processo de back-end cmon.

  • É contra-intuitivo ter dois ou mais manipuladores de autenticação em execução em um único sistema.

Se você estiver enfrentando problemas e precisar de assistência na migração e implementação do novo sistema de gerenciamento de usuários ClusterControl, não hesite em nos contatar através do portal de suporte, fórum da comunidade ou canal Slack.

Considerações finais

O ClusterControl está evoluindo para um produto mais sofisticado ao longo do tempo. Para suportar o crescimento, temos que introduzir novas mudanças importantes para uma experiência mais rica a longo prazo. Espere mais recursos e melhorias para o novo sistema de gerenciamento de usuários nas próximas versões!