Visão geral do Active Directory

Selecione uma versão da documentação:

Nesta página, descrevemos como o PostgreSQL se integra ao Active Directory no AlloyDB Omni usando a interface de programação de aplicativos de serviços de segurança genéricos (GSSAPI, na sigla em inglês) e apresentamos 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 do Windows. O Active Directory é um sistema centralizado e padronizado que automatiza o gerenciamento de rede de dados do usuário, segurança e recursos distribuídos. Esse serviço de diretório oferece um único ponto de administração para contas de usuário, grupos e outros objetos de rede. Uma função principal do Active Directory é a autenticação, que confirma a identidade e a autorização de um usuário e concede acesso a recursos específicos na rede.

Componentes do Active Directory

Um realm é o domínio administrativo da autenticação Kerberos. No contexto do Active Directory, um realm é equivalente a um domínio do Active Directory. Os domínios representam um grupo lógico de usuários, computadores e serviços que compartilham um banco de dados de autenticação comum. Ao configurar o Kerberos, é necessário especificar o domínio a que seus clientes e serviços pertencem. Um realm é uma versão em maiúsculas do nome de domínio. Por exemplo, se o domínio for ad.example.com, o realm será AD.EXAMPLE.COM.

O centro de distribuição de chaves (KDC, na sigla em inglês) é um serviço principal do Kerberos que é executado em todos os controladores de domínio do Active Directory. O KDC tem as seguintes funções principais:

  • Serviço de autenticação (AS): verifica a identidade de um usuário no login inicial, por exemplo, quando você faz login no Windows, e emite um tíquete de concessão de tíquete (TGT).
  • Serviço de concessão de tíquetes (TGS): emite tíquetes de serviço para usuários autenticados que apresentam um TGT válido. Esses tíquetes de serviço concedem acesso a serviços específicos, como um banco de dados PostgreSQL.

Um principal é uma identidade exclusiva em um domínio do Kerberos a que os tíquetes podem ser atribuídos. Estes são os principais tipos de administradores:

  • Principais de usuário: representam usuários humanos, por exemplo, username@REALM.
  • Principais de serviço (SPN): representam um serviço específico em um host específico, por exemplo, postgres/db-server.ad.example.com@REALM. Para que um cliente solicite um tíquete de serviço para seu banco de dados, o serviço de banco de dados precisa ter um SPN registrado.

Um arquivo keytab ou tabela de chaves contém uma lista de principais e as chaves secretas correspondentes, que são derivadas das senhas dos principais. Os serviços usam um arquivo keytab para provar a identidade deles ao KDC e descriptografar os tíquetes de serviço apresentados pelos clientes.

Essa abordagem permite que um serviço como o PostgreSQL se autentique no sistema Kerberos sem exigir interação humana ou armazenar uma senha de texto simples no servidor. O arquivo keytab é altamente sensível e precisa ser armazenado e protegido com segurança.

Integração do PostgreSQL com o Active Directory

A integração do PostgreSQL com o Active Directory oferece gerenciamento centralizado de usuários com base em identidades corporativas, o que aumenta a segurança do banco de dados.

Para oferecer suporte à autenticação, o PostgreSQL oferece os seguintes métodos de integração com o Active Directory:

  • Protocolo leve de acesso a diretórios (LDAP): é possível configurar o PostgreSQL para autenticar usuários em um servidor do Active Directory usando o protocolo LDAP. Quando um usuário tenta se conectar ao banco de dados, o PostgreSQL se comunica com o servidor do Active Directory via LDAP para verificar as credenciais do usuário, que geralmente são um nome de usuário e uma senha. Esse método usa o Active Directory como um provedor de autenticação externo.

  • Interface de programação de aplicativos de serviços de segurança genéricos (GSSAPI) com Kerberos: esse é um método mais seguro e complexo que usa o protocolo Kerberos, que é o mecanismo de autenticação padrão no Active Directory. A GSSAPI fornece uma interface padrão para que os aplicativos acessem serviços de segurança.

Embora o LDAP e o GSSAPI alcancem o objetivo da integração do Active Directory, o GSSAPI com Kerberos é a abordagem mais segura e robusta para ambientes empresariais devido à autenticação criptográfica forte e baseada em tíquetes. Esta página aborda a implementação da integração do Active Directory para o AlloyDB Omni usando o método GSSAPI.

Autenticação do Active Directory com GSSAPI

O AlloyDB Omni permite autenticar pelo Kerberos usando o Active Directory como um back-end de autenticação. As etapas para realizar a autenticação são mostradas no diagrama a seguir.

imagem

  1. O cliente psql inicia uma solicitação de autenticação usando o Serviço de autenticação (AS) no Centro de distribuição de chaves (KDC).
  2. O AS autentica o cliente e emite um tíquete de concessão de tíquete (TGT) (T1) para ele. Em seguida, o TGT é usado para solicitar tíquetes de serviço.
  3. O cliente usa o TGT para solicitar um tíquete de serviço do serviço de concessão de tíquetes (TGS) no KDC para o serviço PostgreSQL. O cliente está solicitando acesso ao servidor PostgreSQL específico.
  4. O TGS valida o TGT e emite um tíquete de serviço (T2) para o cliente. Esse tíquete contém uma chave de sessão (T3) e é criptografado usando a chave secreta do servidor PostgreSQL.
  5. O cliente envia o tíquete de serviço criptografado (T2) para o servidor PostgreSQL.
  6. O servidor PostgreSQL usa a chave (do arquivo keytab) para descriptografar o tíquete de serviço (T2). Em seguida, ele recupera a chave de sessão (T3) e verifica a autenticidade do tíquete. Se a operação for bem-sucedida, o servidor concederá acesso e estabelecerá um canal de comunicação seguro com o cliente usando a chave de sessão.

A seguir