Esta página descreve como o PostgreSQL se integra com o Active Directory no AlloyDB Omni através da interface de programação de aplicações (API) de serviços de segurança genéricos (GSSAPI) e apresenta os principais conceitos do Kerberos. O Kerberos é o protocolo de autenticação que alimenta o Active Directory.
O Active Directory é um serviço de diretório desenvolvido pela Microsoft para redes de domínio Windows. O Active Directory é um sistema centralizado e padronizado que automatiza a gestão de rede dos dados dos utilizadores, da segurança e dos recursos distribuídos. Este serviço de diretório oferece um único ponto de administração para contas de utilizador, grupos e outros objetos de rede. Uma função essencial do Active Directory é a autenticação, que confirma a identidade e a autorização de um utilizador e concede-lhe acesso a recursos específicos na rede.
Componentes do Active Directory
Um realm
é o domínio administrativo para a autenticação Kerberos. No contexto do Active Directory, um domínio Kerberos é equivalente a um domínio do Active Directory. Os domínios representam um grupo lógico de utilizadores, computadores e serviços que partilham uma base de dados de autenticação comum. Quando configura o Kerberos, tem de especificar o domínio ao qual os seus clientes e serviços pertencem. Um domínio é uma versão em maiúsculas do nome de domínio. Por exemplo, se o domínio for ad.example.com
, o domínio é AD.EXAMPLE.COM
.
O centro de distribuição de chaves (KDC) é um serviço Kerberos essencial que é executado em todos os controladores de domínio no Active Directory. O KDC tem as seguintes funções principais:
- Serviço de autenticação (AS): valida a identidade de um utilizador no início da sessão, por exemplo, quando inicia sessão no Windows, e emite um Ticket-Granting Ticket (TGT).
- Serviço de concessão de pedidos (TGS): emite permissões de serviço para utilizadores autenticados que apresentam um TGT válido. Estes pedidos de serviço concedem acesso a serviços específicos, como uma base de dados PostgreSQL.
Um principal é uma identidade exclusiva num domínio Kerberos ao qual podem ser atribuídas permissões. Seguem-se os principais tipos de diretores:
- Principais do utilizador: representam utilizadores humanos, por exemplo,
username@REALM
. - Nomes principais do serviço (SPN): representam um serviço específico num anfitrião específico, por exemplo,
postgres/db-server.ad.example.com@REALM
. Para que um cliente peça um pedido de serviço para a sua base de dados, o serviço de base de dados tem de ter um SPN registado.
Um ficheiro keytab ou tabela de chaves contém uma lista de principais e as respetivas chaves secretas, que são derivadas das palavras-passe dos principais. Os serviços usam um ficheiro keytab para provar a respetiva identidade ao KDC e desencriptar pedidos de serviço apresentados pelos clientes.
Esta abordagem permite que um serviço como o PostgreSQL se autentique no sistema Kerberos sem exigir interação humana nem armazenar uma palavra-passe de texto simples no servidor. O ficheiro keytab é altamente confidencial e tem de ser armazenado e protegido em segurança.
Integração do PostgreSQL com o Active Directory
A integração do PostgreSQL com o Active Directory oferece-lhe uma gestão de utilizadores centralizada baseada em identidades empresariais, o que melhora a segurança da sua base de dados.
Para suportar a autenticação, o PostgreSQL oferece os seguintes métodos de integração com o Active Directory:
Protocolo LDAP (Lightweight Directory Access Protocol): pode configurar o PostgreSQL para autenticar utilizadores num servidor do Active Directory através do protocolo LDAP. Quando um utilizador tenta estabelecer ligação à base de dados, o PostgreSQL comunica com o servidor do Active Directory através do LDAP para validar as credenciais do utilizador, que são normalmente um nome de utilizador e uma palavra-passe. Este método usa o Active Directory como um fornecedor de autenticação externo.
Interface do programa de aplicação de serviços de segurança genérica (GSSAPI) com Kerberos: este é um método mais seguro e complexo que usa o protocolo Kerberos, que é o mecanismo de autenticação predefinido no Active Directory. A GSSAPI fornece uma interface padrão para as aplicações acederem a serviços de segurança.
Embora o LDAP e o GSSAPI alcancem o objetivo da integração do Active Directory, o GSSAPI com o Kerberos é a abordagem mais segura e robusta para ambientes empresariais devido à sua autenticação criptográfica forte baseada em pedidos. Esta página aborda a implementação da integração do Active Directory para o AlloyDB Omni através do método GSSAPI.
Autenticação do Active Directory com GSSAPI
O AlloyDB Omni permite-lhe fazer a autenticação através do Kerberos com o Active Directory como um back-end de autenticação. Os passos para alcançar a autenticação são apresentados no diagrama seguinte.
- O cliente
psql
inicia um pedido de autenticação através do serviço de autenticação (AS) no centro de distribuição de chaves (KDC). - O AS autentica o cliente e emite um pedido para obter pedidos (TGT) (T1) para o cliente. Em seguida, o TGT é usado para pedir pedidos de serviço.
- O cliente usa o TGT para pedir um pedido de serviço ao serviço de concessão de pedidos (TGS) no KDC para o serviço PostgreSQL. O cliente está a pedir acesso ao servidor PostgreSQL específico.
- O TGS valida o TGT e emite uma permissão do serviço (T2) para o cliente. Este pedido contém uma chave de sessão (T3) e está encriptado através da chave secreta do servidor PostgreSQL.
- O cliente envia o bilhete de serviço encriptado (T2) para o servidor PostgreSQL.
- O servidor PostgreSQL usa a respetiva chave (do ficheiro keytab) para desencriptar o pedido de serviço (T2) e, em seguida, o servidor obtém a chave de sessão (T3) e verifica a autenticidade do pedido. Se esta operação for bem-sucedida, o servidor concede acesso e estabelece um canal de comunicação seguro com o cliente através da chave de sessão.
O que se segue?
- Integre o apoio técnico de utilizadores do Active Directory com o AlloyDB Omni.
- Integre o apoio técnico de utilizadores do Active Directory no Kubernetes.
- Integre o suporte de grupos do Active Directory com o AlloyDB Omni.
- Integre o suporte de grupos do Active Directory no Kubernetes.
- Resolva problemas de integração do Active Directory no AlloyDB Omni.