Panoramica di Active Directory

Seleziona una versione della documentazione:

Questa pagina descrive come PostgreSQL si integra con Active Directory in AlloyDB Omni utilizzando l'interfaccia di programmazione dell'applicazione Generic Security Services (GSSAPI) e introduce i concetti chiave di Kerberos. Kerberos è il protocollo di autenticazione che alimenta Active Directory.

Active Directory è un servizio di directory sviluppato da Microsoft per le reti di dominio Windows. Active Directory è un sistema centralizzato e standardizzato che automatizza la gestione di rete di dati utente, sicurezza e risorse distribuite. Questo servizio di 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 equivale a un dominio Active Directory. I domini 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 tuoi client e 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 di base che viene eseguito su ogni controller di dominio 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-Granting Ticket (TGT).
  • Servizio di ticket-granting (TGS): rilascia ticket di servizio a utenti autenticati che presentano un TGT valido. Questi service ticket concedono l'accesso a servizi specifici, come un database PostgreSQL.

Un principal è un'identità univoca in un realm Kerberos a cui possono essere assegnati i ticket. Di seguito sono riportati i tipi principali di entità:

  • Entità utente: rappresentano utenti umani, ad esempio username@REALM.
  • Service Principal Name (SPN): rappresentano un servizio specifico su un host specifico, ad esempio postgres/db-server.ad.example.com@REALM. Affinché un cliente 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 normale sul server. Il file keytab è estremamente sensibile e deve essere archiviato e protetto in modo sicuro.

Integrazione di PostgreSQL con Active Directory

L'integrazione di PostgreSQL con Active Directory consente una gestione centralizzata degli utenti basata sulle identità aziendali, il 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 Program Interface) con Kerberos: questo è 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 consentire alle applicazioni di 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 solido per gli ambienti aziendali grazie alla sua autenticazione crittografica basata su ticket. Questa pagina descrive l'implementazione dell'integrazione di Active Directory per AlloyDB Omni utilizzando il metodo GSSAPI.

Autenticazione Active Directory con GSSAPI

AlloyDB Omni ti consente di autenticarti tramite Kerberos utilizzando Active Directory come backend di autenticazione. I passaggi per ottenere l'autenticazione sono mostrati nel seguente diagramma.

immagine

  1. Il client psql avvia una richiesta di autenticazione utilizzando il servizio di autenticazione (AS) nel Key Distribution Center (KDC).
  2. Il servizio di autenticazione autentica il client ed emette un ticket TGT (T1) per il client. Il TGT viene quindi utilizzato per richiedere i ticket di servizio.
  3. Il client utilizza il TGT per richiedere un ticket di servizio al servizio di approvazione di ticket (TGS) nel KDC per il servizio PostgreSQL. Il client ora richiede l'accesso al server PostgreSQL specifico.
  4. Il TGS 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.
  5. Il client invia il service ticket criptato (T2) al server PostgreSQL.
  6. Il server PostgreSQL utilizza la propria 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