Erstellen von Microsoft Entra-Rollen auf einem flexiblen Azure Database for PostgreSQL-Server
GILT FÜR: Azure Database for PostgreSQL – Flexibler Server
In diesem Artikel erfahren Sie, wie Sie Datenbankrollen mit Microsoft Entra ID-Unterstützung in einer Instanz von „Azure Database for PostgreSQL – Flexibler Server“ erstellen.
Hinweis
In diesem Leitfaden wird davon ausgegangen, dass Sie die Microsoft Entra-Authentifizierung in Ihrer Instanz von „Azure Database for PostgreSQL – Flexibler Server“ bereits aktiviert haben. Weitere Informationen finden Sie unter Konfigurieren der Microsoft Entra-Authentifizierung.
Wenn Sie mehr darüber erfahren möchten, wie Sie Benutzer von Azure-Abonnements und deren Berechtigungen erstellen und verwalten, lesen Sie den Artikel zur rollenbasierten Zugriffssteuerung von Azure (Azure Role-Based Access Control, Azure-RBAC), oder informieren Sie sich über die Anpassung von Rollen.
Erstellen oder Löschen von Microsoft Entra-Administratoren mithilfe des Azure-Portals oder der ARM-API (Azure Resource Manager)
- Öffnen Sie die Seite Authentifizierung für Ihre Instanz von „Azure Database for PostgreSQL – Flexibler Server“ im Azure-Portal.
- Wählen Sie zum Hinzufügen von Administratoren die Option Microsoft Entra-Administrator hinzufügen und dann einen Benutzer, eine Gruppe, eine Anwendung oder eine verwaltete Identität aus dem aktuellen Microsoft Entra-Mandanten aus.
- Um einen Administrator zu entfernen, wählen Sie das Symbol Löschen für den zu entfernenden Administrator aus.
- Wählen Sie Speichern aus, und warten Sie, bis der Bereitstellungsvorgang abgeschlossen ist.
Hinweis
Unterstützung für die Verwaltung von Microsoft Entra-Administrator*innen über das Azure-SDK, die Azure CLI und Azure PowerShell ist bald verfügbar.
Verwalten von Microsoft Entra-Rollen mithilfe von SQL
Nachdem der erste Microsoft Entra-Administrator über das Azure-Portal oder über die API erstellt wurde, können Sie die Administratorrolle verwenden, um Microsoft Entra-Rollen in Ihrer Instanz von „Azure Database for PostgreSQL – Flexibler Server“ zu verwalten.
Wir empfehlen, sich mit Microsoft Identity Platform vertraut zu machen, um die Microsoft Entra-Integration in „Azure Database for PostgreSQL – Flexibler Server“ optimal nutzen zu können.
Prinzipaltypen
Instanzen von „Azure Database for PostgreSQL – Flexibler Server“ speichern intern die Zuordnung zwischen PostgreSQL-Datenbankrollen und eindeutigen Bezeichnern von AzureAD-Objekten. Jede PostgreSQL-Datenbankrolle kann einem der folgenden Microsoft Entra-Objekttypen zugeordnet werden:
- Benutzer: Einschließlich lokaler Mandantenbenutzer und Gastbenutzer
- Dienstprinzipal: Einschließlich Anwendungen und verwalteter Identitäten
- Gruppe: Wenn eine PostgreSQL-Rolle mit einer Microsoft Entra-Gruppe verknüpft wird, kann jedes Benutzer- oder Dienstprinzipalmitglied dieser Gruppe eine Verbindung mit der Instanz von „Azure Database for PostgreSQL – Flexibler Server“ mit der Gruppenrolle herstellen.
Auflisten von Microsoft Entra-Rollen mithilfe von SQL
pg_catalog.pgaadauth_list_principals(isAdminValue boolean)
Argumente
isAdminValue
boolean
: Bei true
werden Administratorbenutzer zurückgegeben. Bei false
werden alle Microsoft Entra-Benutzer zurückgegeben, einschließlich Microsoft Entra-Administratoren und -Nicht-Administratoren.
Rückgabetyp
TABLE(rolname name, principalType text, objectId text, tenantId text, isMfa integer, isAdmin integer)
: Eine Tabelle mit dem folgenden Schema:
rolname
: Der Name der Rolle in PostgreSQLprincipalType
: Der Typ des Prinzipals in Microsoft Entra ID. Es kann sich umuser
,group
oderservice
handeln.objectId
: Der Bezeichner des Objekts in Microsoft Entra ID für diesen PrinzipaltenantId
: Der Bezeichner des Mandanten, der diesen Prinzipal in der Microsoft Entra ID hostetisMfa
gibt den Wert1
zurück, wenn für den Benutzer/die Rolle MFA erzwungen wird.isAdmin
gibt den Wert1
zurück, wenn der Benutzer/die Rolle ein Administrator in PostgreSQL ist.
Erstellen eines Benutzers/einer Rolle mithilfe eines Microsoft Entra-Prinzipalnamens
pg_catalog.pgaadauth_create_principal(roleName text, isAdmin boolean, isMfa boolean)
Argumente
roleName
text
: Der Name der zu erstellenden Rolle. Dieser muss mit einem Namen des Microsoft Entra-Prinzipals übereinstimmen.
- Verwenden Sie für Benutzer den Benutzerprinzipalnamen aus dem Profil. Geben Sie für Gastbenutzer den vollständigen Namen in ihrer Ursprungsdomäne mit dem Tag „#EXT#“ ein.
- Für Gruppen und Dienstprinzipale wird der Anzeigename verwendet. Der Name muss im Mandanten eindeutig sein.
isAdmin
boolean
: Bei true
wird ein PostgreSQL-Administratorbenutzer erstellt (Mitglied der Rolle azure_pg_admin
mit Berechtigungen vom Typ CREATEROLE und CREATEDB). Bei false
wird ein regulärer PostgreSQL-Benutzer erstellt.
isMfa
boolean
: Bei true
wird die Multi-Faktor-Authentifizierung für diesen PostgreSQL-Benutzer erzwungen.
Wichtig
Das Flag isMfa
testet den mfa
-Anspruch im Microsoft Entra ID-Token, wirkt sich jedoch nicht auf den Flow für den Tokenabruf aus. Wenn der Mandant des Prinzipals beispielsweise nicht für Multi-Faktor-Authentifizierung konfiguriert ist, wird die Verwendung des Features verhindert. Und wenn der Mandant Multi-Faktor-Authentifizierung für alle Token erfordert, ist dieses Flag unnötig.
Rückgabetyp
text
: Einzelner Wert, der aus der Zeichenfolge „Created role for roleName“ besteht. Dabei ist roleName das Argument, das für den Parameter roleName übergeben wird.
Löschen einer Rolle unter Verwendung eines Microsoft Entra-Prinzipalnamens
Denken Sie daran, dass jede Microsoft Entra-Rolle, die in PostgreSQL erstellt wird, unter Verwendung eines Microsoft Entra-Administrators gelöscht werden muss. Wenn Sie einen regulären PostgreSQL-Administrator verwenden, um eine Entra-Rolle zu löschen, führt dies zu einem Fehler.
DROP ROLE rolename;
Erstellen einer Rolle mithilfe eines Microsoft Entra-Objektbezeichners
pg_catalog.pgaadauth_create_principal_with_oid(roleName text, objectId text, objectType text, isAdmin boolean, isMfa boolean)
Argumente
roleName
text
: Der Name der zu erstellenden Rolle.
objectId
text
: Eindeutiger Objektbezeichner des Microsoft Entra-Objekts
- Für Benutzer, Gruppen und verwaltete Identitäten können Sie die Objekt-ID (ObjectId) ermitteln, indem Sie im Azure-Portal auf der Seite Microsoft Entra ID nach dem Objektnamen suchen. In diesem Leitfaden finden Sie ein Beispiel.
- Für Gruppen und Dienstprinzipale wird der Anzeigename verwendet. Der Name muss im Mandanten eindeutig sein.
- Für Anwendungen muss die Objekt-ID des entsprechenden Dienstprinzipals verwendet werden. Im Azure-Portal finden Sie die erforderliche Objekt-ID auf der Seite Unternehmensanwendungen.
objectType
text
: Der Typ des Microsoft Entra-Objekts, das mit dieser Rolle verknüpft werden soll. Es kann sich um user
, group
oder service
handeln.
isAdmin
boolean
: Bei true
wird ein PostgreSQL-Administratorbenutzer erstellt (Mitglied der Rolle azure_pg_admin
mit Berechtigungen vom Typ CREATEROLE und CREATEDB). Bei false
wird ein regulärer PostgreSQL-Benutzer erstellt.
isMfa
boolean
: Bei true
wird die Multi-Faktor-Authentifizierung für diesen PostgreSQL-Benutzer erzwungen.
Wichtig
Das Flag isMfa
testet den mfa
-Anspruch im Microsoft Entra ID-Token, wirkt sich jedoch nicht auf den Flow für den Tokenabruf aus. Wenn der Mandant des Prinzipals beispielsweise nicht für Multi-Faktor-Authentifizierung konfiguriert ist, wird die Verwendung des Features verhindert. Und wenn der Mandant Multi-Faktor-Authentifizierung für alle Token erfordert, ist dieses Flag unnötig.
Rückgabetyp
text
: Einzelner Wert, der aus der Zeichenfolge „Created role for roleName“ besteht. Dabei ist roleName das Argument, das für den Parameter roleName übergeben wird.
Aktivieren der Microsoft Entra-Authentifizierung für eine vorhandene PostgreSQL-Rolle mithilfe von SQL
Instanzen von „Azure Database for PostgreSQL – Flexibler Server“ verwenden Sicherheitsbezeichnungen, die Datenbankrollen zugeordnet sind, um die entsprechende Microsoft Entra ID-Zuordnung zu speichern.
Sie können den folgenden SQL-Befehl verwenden, um die erforderliche Sicherheitsbezeichnung zuzuweisen und sie einem Microsoft Entra-Objekt zuzuordnen:
SECURITY LABEL for "pgaadauth" on role "<roleName>" is 'aadauth,oid=<objectId>,type=<objectType>,admin';
Argumente
roleName
text
: Der Name einer vorhandenen PostgreSQL-Rolle, für die Microsoft Entra-Authentifizierung aktiviert werden muss
objectId
text
: Eindeutiger Objektbezeichner des Microsoft Entra-Objekts
objectType
text
: Kann auf user
, group
oder service
festgelegt werden (für Anwendungen oder verwaltete Identitäten, die eine Verbindung mit eigenen Dienstanmeldeinformationen herstellen).
admin
text
: Kann vorhanden oder nicht vorhanden sein. Benutzer/Rollen, für die dieser Teil in ihrer Sicherheitsbezeichnung vorhanden ist, können andere Microsoft Entra ID-Rollen verwalten.
Nächste Schritte
- Informationen zu den allgemeinen Konzepten finden Sie unter Microsoft Entra-Authentifizierung mit einem flexiblen Azure Database for PostgreSQL-Server.