Autenticação de Senha do MySQL com Usuários Proxy e Mapeamento de Grupo

1

Na verdade, estou usando o MariaDB aqui, mas estou trabalhando sob o pretexto de que o MariaDB é um "substituto" para o MySQL. Não ficarei surpreso se isso acabar sendo uma diferença / problema entre plataformas, mas espero que você dê uma olhada.

O negócio é o seguinte: estou usando o CentrifyDC para autenticação PAM com um domínio do Active Directory. Está funcionando bem para o acesso SSH / sudoer, e agora eu estou tentando descobrir o authN / Z para o MySQL ... err, MariaDB.

A autenticação do usuário parece funcionar bem. Eu crio um usuário e ele funciona como pretendido:

MariaDB [(none)]> grant all privileges on *.* to myuser identified via pam;

Para completar, vou fazer o login e verificar minhas doações e quem sou:

MariaDB [(none)]> show grants;
+---------------------------------------------------------------+
| Grants for myuser@%                                            |
+---------------------------------------------------------------+
| GRANT ALL PRIVILEGES ON *.* TO 'myuser'@'%' IDENTIFIED VIA pam |
+---------------------------------------------------------------+
1 row in set (0.00 sec)

MariaDB [(none)]> SELECT USER(), CURRENT_USER(), @@proxy_user;
+-----------------+----------------+--------------+
| USER()          | CURRENT_USER() | @@proxy_user |
+-----------------+----------------+--------------+
| myuser@localhost | myuser@%        | NULL         |
+-----------------+----------------+--------------+
1 row in set (0.00 sec)

Isso parece certo para o meu olho menos de especialista.

Agora estou tentando seguir a documentação do MySQL no link , sob o título "6.3.6.2.2.3. Autenticação de Senha Unix com Usuários Proxy e Mapeamento de Grupo". Esse pode ser o meu problema: seguir os documentos do MySQL para o MariaDB - mas não consegui encontrar um equivalente do MariaDB. Veja o que acontece.

De acordo com os documentos, eu crio o usuário proxy, o grupo, etc ... Observe que 'myuser' é um membro do grupo 'my-domain-group'.

CREATE USER ''@'' IDENTIFIED WITH pam as 'mysql, my-doman-group=admin';
CREATE USER 'admin'@'localhost' IDENTIFIED BY 'really weird password';
GRANT ALL PRIVILEGES ON *.* TO 'admin'@'localhost';
GRANT PROXY ON 'admin'@'localhost' to ''@'';

Faça login como 'myuser' funciona. Vamos verificar nossas concessões:

MariaDB [(none)]> SHOW GRANTS;
+------------------------------------------------------------------------------------------+
| Grants for @                                                                             |
+------------------------------------------------------------------------------------------+
| GRANT USAGE ON *.* TO ''@'' IDENTIFIED VIA pam USING 'mysql, my-doman-group=admin' |
| GRANT PROXY ON 'admin'@'localhost' TO ''@''                                              |
+------------------------------------------------------------------------------------------+
2 rows in set (0.00 sec)

Isso é o que eu esperaria ver. Agora, de acordo com os documentos, vamos verificar quem somos intermediados por proxy como:

MariaDB [(none)]> SELECT USER(), CURRENT_USER(), @@proxy_user;
+-----------------+----------------+--------------+
| USER()          | CURRENT_USER() | @@proxy_user |
+-----------------+----------------+--------------+
| myuser@localhost | @              | NULL         |
+-----------------+----------------+--------------+
1 row in set (0.00 sec)

Então - lá nós temos isso. A conta 'myuser' não está recebendo acesso do 'my-domain-group' como deveria, mas é permitido acessar o login. O que da? Alguma sugestão?

    
por Tony 10.12.2012 / 19:10

1 resposta

0

No momento desta resposta, ela está no topo da página de referência do mysql doc:

The PAM authentication plugin is a commercial extension

Isso significa que está disponível com o mySQL Enterprise, que é o fork exclusivo da base de código mySQL da Oracle. Nenhum dos recursos do Enterprise existe no MariaDB ou na versão da comunidade do mySQL, a menos que eles tenham sido reescritos do zero por alguém fora do Oracle.

Parece que o MariaDB tem um plugin para isso, os documentos estão em:

link

Não vejo menção ao mapeamento de grupo, ele pode não ser implementado no código-fonte GPL.

    
por 30.04.2013 / 18:32