Autenticando usuários do linux no Postgresql - parte 1
Depois de algum tempo sem escrever nada técnico, quebrarei o silêncio e colocarei algo do meu interesse: como autenticar usuários do linux no Postgresql.
Primeiro, uma enrolação: por que fazer isso? Centralizar os logins é uma boa prática para administrar a rede, pois assim os usuários precisam se lembrar de menos senhas, sendo possível também implantar Single Sign On (SSO) e colocar a sua senha apenas uma vez por dia e com isso estar autenticado em todos os sistemas e simplificar e muito a administração do ecossistema implantado.
Uma rede bem feita poderia ter o seguinte fluxo de trabalho: o RH faz o cadastro de um funcionário novo, e com isso o login do cliente já é inserido no banco de dados. Depois disso o administrador responsável coloca o usuários nos grupos adequados e com isso o novo funcionário só precisa trocar a senha inicial por uma forte (eu disse forte!) e pronto! Depois de alguns meses o infeliz faz algo muito errado e é convidado a conhecer outros lugares, fazer novas experiências e basta o superior dele entrar em contato com o RH para que a conta dele seja bloqueada de imediato (RH ou o administrador da rede, depende em quem confia mais).
Esse é o meu mundo ideal, mas na prática nunca vi nenhum lugar onde precisasse de apenas uma senha.
Agora um pouco de teoria. No linux para integrar os logins, você precisa de duas coisas: integrar o nsswitch e o PAM
- NSSWITCH: responsável por fazer o mapeamento id para login ou grupo. É possível criar arquivos ou diretórios com qualquer id, mesmo não tendo o login criado, mas é uma péssima prática
- PAM: responsável pela autenticação dos usuários. É um serviço independente do acima
Algumas pessoas podem fazer a pergunta: Por que não LDAP? Para quem não sabe, o AD da Microsoft é um LDAP também, e é a solução mais indicada para guardar esse tipo de dado, pois a sua estrutura interna é feita para leituras frequentes e poucas atualizações. O LDAP para autenticação é uma maravilha, e já vem integrado com a maior parte das distribuições.
Então por que Postgresql? Porque programar sistemas em LDAP não é nada fácil e o fato dos usuários estarem dentro do banco de dados fazem as integrações ficarem muito legais por causa de chaves estrangeiras: tudo fica muito consistente.
Na próxima parte, falarei sobre a primeira alternativa que conheço: libss_pgsql e pam_pgsql.
Posted at 11:33AM Jan 10, 2009 by ze in Linux | Comments[1]



Posted by thiago on Fevereiro 26, 2010 at 01:49 PM BRT #