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)
- Aprire la pagina Autenticazione per l'istanza del server flessibile di Database di Azure per PostgreSQL nel portale di Azure.
- 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.
- Per rimuovere un amministratore, selezionare l'icona Elimina corrispondente all'amministratore da rimuovere.
- Selezionare Salva e attendere il completamento dell'operazione di provisioning.
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:
- Utente. Sono inclusi gli utenti locali e guest del tenant.
- Entità servizio. Sono incluse applicazioni e identità gestite
- 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ò essereuser
,group
oservice
.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 di1
se per l'utente o il ruolo è imposta l'autenticazione a più fattori.isAdmin
restituisce un valore di1
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
- Esaminare i concetti generali per l'autenticazione di Microsoft Entra con Database di Azure per PostgreSQL - Server flessibile