A configuração do Active Directory no AlloyDB Omni é opcional e está desativada por predefinição. Apenas os ambientes que usam o servidor do Active Directory para autenticação podem usar este mecanismo de configuração.
Antes de começar
Ative a autenticação do Active Directory
Para ativar a autenticação do Active Directory no AlloyDB Omni, siga estes passos, que incluem a configuração da interface do programa de aplicação de serviço de segurança genérica (GSSAPI), que é uma interface de programação de aplicações que permite aos programas aceder a serviços de segurança.
Adicione as seguintes entradas ao ficheiro
/var/lib/postgresql/data/pg_hba.conf
, antes da entrada
host all all all scram-sha-256
.Execute o seguinte comando do Docker para adicionar o
gss
no contentor:docker exec CONTAINER_NAME sed -i 's;^host all all all scram-sha-256$;hostgssenc all all 0.0.0.0/0 gss map=gssmap\n&;' /var/lib/postgresql/data/pg_hba.conf
Execute o seguinte comando do Docker para verificar se o ficheiro
pg_hba.conf
está no contentor:docker exec CONTAINER_NAME cat /var/lib/postgresql/data/pg_hba.conf
Verifique se a seguinte entrada está no ficheiro:
hostgssenc all all 0.0.0.0/0 gss map=gssmap
Para mais informações, consulte o artigo O ficheiro pg_hba.conf.
Copie o ficheiro de separador de chaves para o diretório de dados na imagem do AlloyDB Omni.
docker cp PATH TO KEYTAB FILE CONTAINER_NAME:/var/lib/postgresql/data/alloydb.keytab docker exec CONTAINER_NAME chmod 600 /var/lib/postgresql/data/alloydb.keytab docker exec CONTAINER_NAME chown postgres:postgres /var/lib/postgresql/data/alloydb.keytab
O ficheiro keytab é gerado pelo Kerberos para o servidor PostgreSQL. Para saber mais acerca da autenticação, consulte o artigo Autenticação GSSAPI.
Adicione uma entrada para o ficheiro keytab ao ficheiro
/var/lib/postgresql/data/DATA_DIR/postgresql.conf
.Execute o seguinte comando do Docker para adicionar a entrada no contentor:
docker exec CONTAINER_NAME sed -i '$akrb_server_keyfile='"'"'/var/lib/postgresql/data/alloydb.keytab'"'" /var/lib/postgresql/data/postgresql.conf
Execute o seguinte comando do Docker para verificar o ficheiro
postgresql.conf
no contentor:docker exec CONTAINER_NAME tail /var/lib/postgresql/data/postgresql.conf
Certifique-se de que a seguinte entrada está no ficheiro:
krb_server_keyfile=/var/lib/postgresql/data/alloydb.keytab
Para mais informações, consulte o artigo krb_server_keyfile.
Opcional: adicione entradas ao ficheiro
/var/lib/postgresql/data/DATA_DIR/pg_ident.conf
.Quando usa um sistema de autenticação externo, como GSSAPI, o nome do utilizador do sistema operativo que iniciou a ligação pode não ser o mesmo que o utilizador (função) da base de dados que quer usar.
Neste caso, especifique o mapeamento do utilizador do sistema para o utilizador do PostgreSQL no ficheiro
/var/lib/postgresql/data/DATA_DIR/pg_ident.conf
:docker exec -it CONTAINER_NAME bash $ echo -e " gssmap /^(.*)@EXAMPLE\.COM$ \1 gssmap /^(.*)@example\.com$ \1 " | column -t | tee -a /var/lib/postgresql/data/pg_ident.conf
Para implementar o mapeamento de nomes de utilizador, especifique
map=gssmap
no campo de opções no ficheiropg_hba.conf
.Para mais informações sobre a autenticação baseada em ident, consulte os mapas de ident.
Recarregue as configurações do PostgreSQL com o seguinte comando:
docker exec -it CONTAINER_NAME psql -h localhost -U postgres psql (16.3) Type "help" for help. postgres=# select pg_reload_conf();
Teste a autenticação do Active Directory
Para verificar se a autenticação do Active Directory está a funcionar, siga estes passos:
- Inicie sessão no Active Directory através do
kinit
. Execute o seguinte comando
psql
a partir da máquina onde costuma executar o comandokinit
:root@4f6414ad02ef:/# kinit AD_USER_NAME Password for user1@YOUR.REALM: root@4f6414ad02ef:/# psql --h ALLOYDB_SERVER_HOST_NAME -U AD_USER_NAME psql (16.6 (Ubuntu 16.6-0ubuntu0.24.04.1), server 16.3) GSSAPI-encrypted connection Type "help" for help. user1=#
Desative a autenticação do Active Directory
Para desativar a autenticação do Active Directory no AlloyDB Omni, siga estes passos, que desativam a GSSAPI:
Remova as entradas no ficheiro
pg_hba.conf
que apontam para ogss
método de autenticação:docker exec CONTAINER_NAME sed -i '/hostgssenc all all 0.0.0.0\/0 gss map=gssmap/d' /var/lib/postgresql/data/pg_hba.conf
Recarregue as configurações do PostgreSQL com o seguinte comando:
docker exec -it CONTAINER_NAME psql -h localhost -U postgres psql (16.3) Type "help" for help. postgres=# select pg_reload_conf();
O que se segue?
- Integre o suporte de grupos do Active Directory com o AlloyDB Omni.
- Resolva problemas do Active Directory no AlloyDB Omni.