Condividi tramite


Gestire i ruoli di Microsoft Entra nel server flessibile di Database di Azure per PostgreSQL

SI APPLICA A: Database di Azure per PostgreSQL - Server flessibile

Questo articolo descrive come creare ruoli di database abilitati per Microsoft Entra ID all'interno di un'istanza del server flessibile di Database di Azure per PostgreSQL.

Nota

Questa guida presuppone che sia già stata abilitata l'autenticazione di Microsoft Entra nell'istanza del server flessibile di Database di Azure per PostgreSQL. Vedere Come configurare l'autenticazione di Microsoft Entra

Per informazioni su come creare e gestire gli utenti di sottoscrizioni di Azure e i relativi privilegi, vedere l'articolo Controllo degli accessi in base al ruolo di Azure o esaminare Come personalizzare i ruoli.

Creare o eliminare amministratori di Microsoft Entra usando il portale di Azure o l'API di Azure Resource Manager (ARM)

  1. Aprire la pagina Autenticazione per l'istanza del server flessibile di Database di Azure per PostgreSQL nel portale di Azure.
  2. Per aggiungere un amministratore, selezionare Aggiungi amministratore di Microsoft Entra e selezionare un utente, un gruppo, un'applicazione o un'identità gestita dal tenant di Microsoft Entra corrente.
  3. Per rimuovere un amministratore, selezionare l'icona Elimina corrispondente all'amministratore da rimuovere.
  4. Selezionare Salva e attendere il completamento dell'operazione di provisioning.

Screenshot della gestione degli amministratori di Microsoft Entra tramite il portale.

Nota

Il supporto per la gestione degli amministratori di Microsoft Entra tramite Azure SDK, l'interfaccia della riga di comando Az e Azure PowerShell sarà presto disponibile.

Gestire i ruoli di Microsoft Entra con SQL

Dopo aver creato il primo amministratore di Microsoft Entra dal portale di Azure o dall'API, è possibile usare il ruolo di amministratore per gestire i ruoli di Microsoft Entra nell'istanza del server flessibile di Database di Azure per PostgreSQL.

È consigliabile acquisire familiarità con Microsoft Identity Platform per un uso ottimale dell'integrazione di Microsoft Entra con il server flessibile di Database di Azure per PostgreSQL.

Tipi di entità

Il server flessibile di Database di Azure per PostgreSQL archivia internamente il mapping tra i ruoli del database PostgreSQL e gli identificatori univoci degli oggetti di Azure AD. È possibile eseguire il mapping di ogni ruolo del database PostgreSQL a uno dei tipi di oggetto di Microsoft Entra seguenti:

  1. Utente. Sono inclusi gli utenti locali e guest del tenant.
  2. Entità servizio. Sono incluse applicazioni e identità gestite
  3. Gruppo. Quando un ruolo di PostgreSQL è collegato a un gruppo di Microsoft Entra, qualsiasi utente o entità servizio membro di questo gruppo può connettersi all'istanza del server flessibile di Database di Azure per PostgreSQL con il ruolo del gruppo.

Elencare i ruoli di Microsoft Entra con SQL

pg_catalog.pgaadauth_list_principals(isAdminValue boolean)

Argomenti

isAdminValue

boolean quando true restituisce gli utenti amministratori. Quando false restituisce tutti gli utenti di Microsoft Entra, inclusi gli utenti amministratori di Microsoft Entra e gli utenti non amministratori.

Tipo restituito

TABLE(rolname name, principalType text, objectId text, tenantId text, isMfa integer, isAdmin integer) una tabella con lo schema seguente:

  • rolname il nome del ruolo in PostgreSQL.
  • principalType il tipo di entità in Microsoft Entra ID. Può essere user, group o service.
  • objectId l'identificatore dell'oggetto in Microsoft Entra ID per questa entità.
  • tenantId l'identificatore del tenant che ospita questa entità in Microsoft Entra ID.
  • isMfa restituisce un valore di 1 se per l'utente o il ruolo è imposta l'autenticazione a più fattori.
  • isAdmin restituisce un valore di 1 se l'utente/ruolo è un amministratore in PostgreSQL.

Creare un utente/ruolo usando il nome dell'entità di Microsoft Entra

pg_catalog.pgaadauth_create_principal(roleName text, isAdmin boolean, isMfa boolean)

Argomenti

roleName

text nome del ruolo da creare. Questo deve corrispondere al nome dell'entità di Microsoft Entra.

  • Per gli utenti usare il nome dell'entità utente del profilo. Per gli utenti guest, includere il nome completo del dominio home con il tag #EXT#.
  • Per gruppi ed entità servizio usare il nome visualizzato. Il nome deve essere univoco nel tenant.
isAdmin

boolean che quando è true crea un utente amministratore di PostgreSQL (membro del ruolo azure_pg_admin e con autorizzazioni CREATEROLE e CREATEDB). Quando è false crea un normale utente di PostgreSQL.

isMfa

boolean che quando è true applica l'autenticazione a più fattori per questo utente di PostgreSQL.

Importante

Il flag isMfa testa l'attestazione mfa nel token di Microsoft Entra ID, ma non influisce sul flusso di acquisizione del token. Ad esempio, se il tenant dell'entità non è configurato per l'autenticazione a più fattori, impedisce l'uso della funzionalità. Inoltre, se il tenant richiede l'autenticazione a più fattori per tutti i token, questo flag sarà inutile.

Tipo restituito

text valore singolo costituito da una stringa "Ruolo creato per roleName", dove roleName è l'argomento passato per il parametro roleName.

Eliminare un ruolo usando il nome dell'entità di Microsoft Entra

Tenere presente che qualsiasi ruolo di Microsoft Entra creato in PostgreSQL deve essere eliminato usando un amministratore di Microsoft Entra. Se si usa un normale amministratore di PostgreSQL per eliminare un ruolo di Microsoft Entra, verrà generato un errore.

DROP ROLE rolename;

Creare un ruolo usando l'identificatore di oggetto di Microsoft Entra

pg_catalog.pgaadauth_create_principal_with_oid(roleName text, objectId text, objectType text, isAdmin boolean, isMfa boolean)

Argomenti

roleName

text nome del ruolo da creare.

objectId

text identificatore di oggetto univoco dell'oggetto di Microsoft Entra.

  • Per gli utenti, i gruppi e le identità gestite, è possibile trovare il valore objectId cercando il nome dell'oggetto nella pagina Microsoft Entra ID nel portale di Azure. Vedere questa guida come esempio
  • Per gruppi ed entità servizio usare il nome visualizzato. Il nome deve essere univoco nel tenant.
  • Per le applicazioni, è necessario usare l'objectId dell'entità servizio corrispondente. Nel portale di Azure l'objectId richiesto è disponibile nella pagina Applicazioni aziendali.
objectType

text il tipo di oggetto di Microsoft Entra da collegare a questo ruolo. Può essere user, group o service.

isAdmin

boolean che quando è true crea un utente amministratore di PostgreSQL (membro del ruolo azure_pg_admin e con autorizzazioni CREATEROLE e CREATEDB). Quando è false crea un normale utente di PostgreSQL.

isMfa

boolean che quando è true applica l'autenticazione a più fattori per questo utente di PostgreSQL.

Importante

Il flag isMfa testa l'attestazione mfa nel token di Microsoft Entra ID, ma non influisce sul flusso di acquisizione del token. Ad esempio, se il tenant dell'entità non è configurato per l'autenticazione a più fattori, impedisce l'uso della funzionalità. Inoltre, se il tenant richiede l'autenticazione a più fattori per tutti i token, questo flag sarà inutile.

Tipo restituito

text valore singolo costituito da una stringa "Ruolo creato per roleName", dove roleName è l'argomento passato per il parametro roleName.

Abilitare l'autenticazione di Microsoft Entra per un ruolo di PostgreSQL esistente tramite SQL

Il server flessibile di Database di Azure per PostgreSQL usa etichette di sicurezza associate ai ruoli del database per archiviare il mapping di Microsoft Entra ID corrispondente.

È possibile usare il codice SQL seguente per assegnare l'etichetta di sicurezza necessaria per eseguire il mapping a un oggetto di Microsoft Entra:

SECURITY LABEL for "pgaadauth" on role "<roleName>" is 'aadauth,oid=<objectId>,type=<objectType>,admin';

Argomenti

roleName

text nome di un ruolo di PostgreSQL esistente per cui deve essere abilitata l'autenticazione di Microsoft Entra.

objectId

text identificatore di oggetto univoco dell'oggetto di Microsoft Entra.

objectType

text può essere impostato su user, group o service (per le applicazioni o le identità gestite che si connettono con le proprie credenziali del servizio).

admin

text può essere presente o assente. Gli utenti/ruoli per cui questa parte è presente nell'etichetta di sicurezza possono gestire altri ruoli di Microsoft Entra ID.

Passaggi successivi