Freigeben über


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)

  1. Öffnen Sie die Seite Authentifizierung für Ihre Instanz von „Azure Database for PostgreSQL – Flexibler Server“ im Azure-Portal.
  2. 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.
  3. Um einen Administrator zu entfernen, wählen Sie das Symbol Löschen für den zu entfernenden Administrator aus.
  4. Wählen Sie Speichern aus, und warten Sie, bis der Bereitstellungsvorgang abgeschlossen ist.

Screenshot der Verwaltung von Microsoft Entra-Administratoren über das Portal

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:

  1. Benutzer: Einschließlich lokaler Mandantenbenutzer und Gastbenutzer
  2. Dienstprinzipal: Einschließlich Anwendungen und verwalteter Identitäten
  3. 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 PostgreSQL
  • principalType: Der Typ des Prinzipals in Microsoft Entra ID. Es kann sich um user, group oder service handeln.
  • objectId: Der Bezeichner des Objekts in Microsoft Entra ID für diesen Prinzipal
  • tenantId: Der Bezeichner des Mandanten, der diesen Prinzipal in der Microsoft Entra ID hostet
  • isMfa gibt den Wert 1 zurück, wenn für den Benutzer/die Rolle MFA erzwungen wird.
  • isAdmin gibt den Wert 1 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