Autenticação Postgres no LDAP com mapeamento de nome de usuário

27/02/2013

1


Olá pessoal, tudo bem?

Estou com um problema que está me tirando o sono. Espero que alguém tenha alguma idéia.

O ambiente:
- Possuo uma base de usuários cujos nomes são os números do CPF tipo 11111111111
- O Postgres autentica perfeitamente esses usuários no LDAP
- Possuo uma restrição de que minha aplicação não pode ter usuários iniciados por números

Pensei então em criar os usuários no Postgres adicionando a letra "a" no começo do CPF ficando assim: a11111111111.

O problema é que não estou encontrando uma solução para fazer esses usuários do Postgres serem mapeados para os usuários do LDAP sem a letra "a".

Tentei usar o pg_ident.conf sem sucesso.

Abaixo o conteúdo do pg_hba.conf:

host all all 10.10.10.0/24 ldap "ldap://127.0.0.1/basedn;uid=;,cn=usuarios,ou=ldapconfig,dc=dominio,dc=com,dc=br"
host all 11111111111 10.10.10.0/24 ident map=test


Conteúdo do pg_ident.conf:

test 11111111111 a11111111111


Com essa configuração o log é o seguinte:

2013-02-26 12:22:42 BRST FATAL: role "11111111111" does not exist


Quando eu inverto as linhas do pg_hba.conf aparece isso no log:

2013-02-26 12:25:40 BRST FATAL: Ident authentication failed for user "11111111111"


Pode ser que haja alguma maneira de fazer esse mapeamento usando PAM, REGEX nos arquivos de configuração ou outro meio, mas não consigo imaginar.

Vocês acham que seria possível fazer esse mapeamento?

Abraços
Responder
×
+1 DevUP
Acesso diário, +1 DevUP
Parabéns, você está investindo na sua carreira