Vista geral do Active Directory

Selecione uma versão da documentação:

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.

imagem

  1. 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).
  2. 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.
  3. 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.
  4. 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.
  5. O cliente envia o bilhete de serviço encriptado (T2) para o servidor PostgreSQL.
  6. 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?