Questa pagina descrive come PostgreSQL si integra con Active Directory in AlloyDB Omni utilizzando l'interfaccia di programmazione dell'applicazione GSSAPI (Generic Security Services Application Programming Interface) e introduce i concetti chiave di Kerberos. Kerberos è il protocollo di autenticazione che supporta Active Directory.
Active Directory è un servizio directory sviluppato da Microsoft per le reti di dominio Windows. Active Directory è un sistema centralizzato e standardizzato che automatizza la gestione di rete dei dati utente, della sicurezza e delle risorse distribuite. Questo servizio directory fornisce un unico punto di amministrazione per account utente, gruppi e altri oggetti di rete. Una funzione chiave di Active Directory è l'autenticazione, che conferma l'identità e l'autorizzazione di un utente e gli concede l'accesso a risorse specifiche sulla rete.
Componenti di Active Directory
Un realm
è il dominio amministrativo per l'autenticazione Kerberos. Nel contesto di Active Directory, un realm è equivalente a un dominio Active Directory. I realm rappresentano un gruppo logico di utenti, computer e servizi che condividono un database di autenticazione comune. Quando configuri Kerberos, devi specificare il realm a cui appartengono i client e i servizi. Un realm è una versione in maiuscolo del nome di dominio. Ad esempio, se il dominio è ad.example.com, il realm è AD.EXAMPLE.COM.
Il Key Distribution Center (KDC) è un servizio Kerberos principale che viene eseguito su ogni domain controller in Active Directory. Il KDC ha le seguenti funzioni principali:
- Servizio di autenticazione (AS): verifica l'identità di un utente al momento dell'accesso iniziale, ad esempio quando accedi a Windows, ed emette un ticket TGT (Ticket-Granting Ticket).
- Servizio di approvazione di ticket (TGS): emette ticket di servizio per gli utenti autenticati che presentano un TGT valido. Questi ticket di servizio concedono l'accesso a servizi specifici, come un database PostgreSQL.
Un' entità è un'identità univoca in un realm Kerberos a cui è possibile assegnare i ticket. Di seguito sono riportati i tipi principali di entità:
- Entità utente: rappresentano gli utenti umani, ad esempio
username@REALM. - Entità di servizio (SPN): rappresentano un servizio specifico su un host specifico, ad esempio
postgres/db-server.ad.example.com@REALM. Affinché un client possa richiedere un ticket di servizio per il tuo database, il servizio di database deve avere un SPN registrato.
Un file keytab o tabella delle chiavi contiene un elenco di entità e le relative chiavi segrete, derivate dalle password delle entità. I servizi utilizzano un file keytab per dimostrare la propria identità al KDC e per decriptare i ticket di servizio presentati dai client.
Questo approccio consente a un servizio come PostgreSQL di autenticarsi nel sistema Kerberos senza richiedere l'interazione umana o memorizzare una password in testo non crittografato sul server. Il file keytab è altamente sensibile e deve essere archiviato e protetto in modo sicuro.
Integrazione di PostgreSQL con Active Directory
L'integrazione di PostgreSQL con Active Directory offre una gestione centralizzata degli utenti basata sulle identità aziendali, che migliora la sicurezza del database.
Per supportare l'autenticazione, PostgreSQL offre i seguenti metodi per l'integrazione con Active Directory:
LDAP (Lightweight Directory Access Protocol): puoi configurare PostgreSQL per autenticare gli utenti su un server Active Directory utilizzando il protocollo LDAP. Quando un utente tenta di connettersi al database, PostgreSQL comunica con il server Active Directory tramite LDAP per verificare le credenziali dell'utente, che in genere sono un nome utente e una password. Questo metodo utilizza Active Directory come provider di autenticazione esterno.
GSSAPI (Generic Security Services Application Programming Interface) con Kerberos: si tratta di un metodo più sicuro e complesso che utilizza il protocollo Kerberos, che è il meccanismo di autenticazione predefinito in Active Directory. GSSAPI fornisce un'interfaccia standard per le applicazioni per accedere ai servizi di sicurezza.
Sebbene sia LDAP sia GSSAPI raggiungano l'obiettivo dell'integrazione di Active Directory, GSSAPI con Kerberos è l'approccio più sicuro e affidabile per gli ambienti aziendali grazie alla sua autenticazione crittografica basata su ticket. Questa pagina illustra l'implementazione dell'integrazione di Active Directory per AlloyDB Omni utilizzando il metodo GSSAPI.
Autenticazione Active Directory con GSSAPI
AlloyDB Omni ti consente di eseguire l'autenticazione tramite Kerberos utilizzando Active Directory come backend di autenticazione. I passaggi per eseguire l'autenticazione sono mostrati nel seguente diagramma.

- Il client
psqlavvia una richiesta di autenticazione utilizzando il servizio di autenticazione (AS) nel Key Distribution Center (KDC). - Il servizio di autenticazione autentica il client ed emette un ticket TGT (Ticket-Granting Ticket) (T1) per il client. Il TGT viene quindi utilizzato per richiedere i ticket di servizio.
- Il client utilizza il TGT per richiedere un ticket di servizio dal servizio di approvazione di ticket (TGS) nel KDC per il servizio PostgreSQL. Il client sta ora richiedendo l'accesso al server PostgreSQL specifico.
- Il servizio di approvazione di ticket convalida il TGT ed emette un ticket di servizio (T2) per il client. Questo ticket contiene una chiave di sessione (T3) ed è criptato utilizzando la chiave segreta del server PostgreSQL.
- Il client invia il ticket di servizio criptato (T2) al server PostgreSQL.
- Il server PostgreSQL utilizza la sua chiave (dal file keytab) per decriptare il ticket di servizio (T2), quindi recupera la chiave di sessione (T3) e verifica l'autenticità del ticket. Se l'operazione ha esito positivo, il server concede l'accesso e stabilisce un canale di comunicazione sicuro con il client utilizzando la chiave di sessione.
Passaggi successivi
- Integra il supporto utente di Active Directory con AlloyDB Omni.
- Integra il supporto utente di Active Directory su Kubernetes.
- Integra il supporto dei gruppi di Active Directory con AlloyDB Omni.
- Integra il supporto dei gruppi di Active Directory su Kubernetes.
- Risolvi i problemi relativi all'integrazione di Active Directory in AlloyDB Omni.