Condividi tramite


Autenticazione di Microsoft Entra ID e PostgreSQL con Azure Cosmos DB for PostgreSQL

SI APPLICA A: Azure Cosmos DB for PostgreSQL (con tecnologia basata sull'estensione di database Citus per PostgreSQL)

Azure Cosmos DB for PostgreSQL supporta l'autenticazione e l'integrazione di PostgreSQL con Microsoft Entra ID. Ogni cluster Azure Cosmos DB for PostgreSQL viene creato con l'autenticazione PostgreSQL nativa abilitata e un ruolo PostgreSQL predefinito denominato citus. È possibile aggiungere altri ruoli PostgreSQL nativi dopo il completamento del provisioning del cluster.

È anche possibile abilitare l'autenticazione di Microsoft Entra ID (in precedenza Azure Active Directory) in un cluster, oltre al metodo di autenticazione PostgreSQL o al suo posto. È possibile configurare i metodi di autenticazione in ogni cluster Azure Cosmos DB for PostgreSQL in modo indipendente. Se è necessario modificare il metodo di autenticazione, è possibile farlo in qualsiasi momento dopo il completamento del provisioning del cluster. La modifica dei metodi di autenticazione non richiede il riavvio del cluster.

Autenticazione PostgreSQL

Il motore PostgreSQL usa ruoli per controllare l'accesso agli oggetti di database. Un cluster Azure Cosmos DB for PostgreSQL appena creato include diversi ruoli predefiniti:

Poiché Azure Cosmos DB for PostgreSQL è un servizio PaaS gestito, solo Microsoft può eseguire l'accesso con il ruolo di utente con privilegi avanzati postgres. Per l'accesso amministrativo limitato, Azure Cosmos DB for PostgreSQL offre il ruolo citus.

Il servizio gestito deve replicare tutti i ruoli PostgreSQL in tutti i nodi di un cluster. Per semplificare questo requisito, è necessario creare tutti gli altri ruoli PostgreSQL usando le funzionalità di gestione di Azure Cosmos DB for PostgreSQL.

Il ruolo di Citus

Autorizzazioni per il ruolo citus:

  • Leggere tutte le variabili di configurazione, anche le variabili normalmente visibili solo agli utenti con privilegi avanzati.
  • Leggere tutte le visualizzazioni pg_stat_* e usare varie estensioni correlate alle statistiche, ovvero visualizzazioni o estensioni normalmente visibili solo agli utenti con privilegi avanzati.
  • Eseguire funzioni di monitoraggio che possono richiedere blocchi di ACCESS SHARE sulle tabelle, anche per molto tempo.
  • Creare estensioni PostgreSQL.

In particolare, il ruolo citus presenta alcune restrizioni:

  • Non è possibile creare ruoli
  • Non è possibile creare database

Il ruolo citus non può essere eliminato, ma viene disabilitato se nel cluster è selezionato il metodo di autenticazione 'Solo autenticazione Microsoft Entra ID'.

Autenticazione Microsoft Entra ID

L’autenticazione di Microsoft Entra ID (in precedenza Azure Active Directory) è un meccanismo di connessione ad Azure Cosmos DB for PostgreSQL usando identità definite in Microsoft Entra ID. Con l'autenticazione di Microsoft Entra ID è possibile gestire centralmente le identità degli utenti del database e di altri servizi Microsoft semplificando la gestione delle autorizzazioni.

I vantaggi dell'uso di Microsoft Entra ID includono:

  • Autenticazione degli utenti nei servizi di Azure in modo uniforme
  • Gestione dei criteri delle password e della rotazione delle password in un'unica posizione
  • Più forme di autenticazione supportate da Microsoft Entra ID eliminando la necessità di archiviare le password
  • L'autenticazione di Microsoft Entra ID usa i ruoli del database PostgreSQL per autenticare le identità a livello di database
  • Supporto dell'autenticazione basata su token per le applicazioni che si connettono al database di Azure Cosmos DB for PostgreSQL

Gestire l'accesso a PostgreSQL per le entità di Microsoft Entra ID

Quando viene abilitata l'autenticazione di Microsoft Entra ID e l'entità di Microsoft Entra ID viene aggiunta come amministratore di Microsoft Entra ID, l'account ottiene gli stessi privilegi del ruolo citus. L'accesso dell'amministratore di Microsoft Entra ID può essere un utente, un'entità servizio o un'identità gestita di Microsoft Entra ID. È possibile configurare più amministratori di Microsoft Entra ID in qualsiasi momento ed è possibile disabilitare facoltativamente l'autenticazione di PostgreSQL (password) nel cluster Azure Cosmos DB for PostgreSQL per migliorare le esigenze di controllo e conformità.

Inoltre, è possibile aggiungere un numero qualsiasi di ruoli Microsoft Entra ID non amministratori a un cluster in qualsiasi momento dopo l'abilitazione dell'autenticazione di Microsoft Entra ID. Le autorizzazioni del database per i ruoli Microsoft Entra ID nonadmin vengono gestite in modo analogo ai ruoli normali.

Connettersi con le identità di Microsoft Entra ID

L'autenticazione di Microsoft Entra ID supporta i metodi seguenti per la connessione a un database con le identità di Microsoft Entra ID:

  • Password di Microsoft Entra ID
  • Microsoft Entra ID Integrated
  • Autenticazione universale di Microsoft Entra ID con MFA
  • Uso di certificati dell'applicazione o segreti client di Microsoft Entra ID
  • Identità gestita

Dopo avere eseguito l'autenticazione con Microsoft Entra ID, è possibile recuperare un token. Questo token è la password per l'accesso.

Altre considerazioni

  • È possibile configurare più entità di Microsoft Entra ID (un utente, un'entità servizio o un'identità gestita) come amministratore di Microsoft Entra ID per un cluster di Cosmos DB di Azure for PostgreSQL in qualsiasi momento.
  • Se un'entità di Microsoft Entra ID viene eliminata dal servizio Microsoft Entra ID, rimane comunque come ruolo PostgreSQL nel cluster, ma non è più in grado di acquisire un nuovo token di accesso. In questo caso, anche se il ruolo corrispondente esiste ancora nel database Postgres, non è in grado di eseguire l'autenticazione nei nodi del cluster. Gli amministratori del database devono trasferire la proprietà e eliminare manualmente tali ruoli.

Nota

L'account di accesso con l'utente di Microsoft Entra ID eliminato può ancora essere eseguito fino alla scadenza del token (fino a 90 minuti dall'emissione del token). Se si rimuove l'utente anche dal cluster di Azure Cosmos DB for PostgreSQL, questo accesso verrà revocato immediatamente.

  • Il database di Azure Cosmos DB for PostgreSQL associa i token di accesso al ruolo del database usando l'ID utente univoco di Microsoft Entra ID dell'utente invece del nome utente. Se un utente di Microsoft Entra ID viene eliminato e viene creato un nuovo utente con lo stesso nome, Azure Cosmos DB for PostgreSQL lo considera un utente diverso. Se pertanto un utente viene eliminato da Microsoft Entra ID e viene aggiunto un nuovo utente con lo stesso nome, il nuovo utente non potrà connettersi con il ruolo esistente.

Passaggi successivi