Share via


Microsoft Entra-id gebruiken voor verificatie met Azure Database for PostgreSQL - Flexible Server

VAN TOEPASSING OP: Azure Database for PostgreSQL - Flexibele server

In dit artikel configureert u microsoft Entra ID-toegang voor verificatie met azure Database for PostgreSQL flexibele server. U leert ook hoe u een Microsoft Entra-token gebruikt met een flexibele Azure Database for PostgreSQL-server.

U kunt Microsoft Entra-verificatie configureren voor flexibele Azure Database for PostgreSQL-server tijdens het inrichten van de server of hoger. Alleen Microsoft Entra-beheerders kunnen gebruikers maken of inschakelen voor Microsoft Entra ID-verificatie. U wordt aangeraden de Microsoft Entra-beheerder niet te gebruiken voor normale databasebewerkingen omdat deze rol verhoogde gebruikersmachtigingen heeft (bijvoorbeeld CREATEDB).

U kunt meerdere Microsoft Entra-beheerdersgebruikers hebben met een flexibele Azure Database for PostgreSQL-server. Microsoft Entra-beheerders kunnen een gebruiker, een groep of service-principal zijn.

Vereisten

Netwerkvereisten configureren

Microsoft Entra ID is een multitenant-toepassing. Hiervoor is uitgaande connectiviteit vereist om bepaalde bewerkingen uit te voeren, zoals het toevoegen van Microsoft Entra-beheerdersgroepen. Daarnaast hebt u netwerkregels nodig om Microsoft Entra-connectiviteit te laten werken, afhankelijk van uw netwerktopologie:

  • Openbare toegang (toegestane IP-adressen): er zijn geen extra netwerkregels vereist.

  • Privétoegang (integratie van virtueel netwerk):

    • U hebt een regel voor uitgaande netwerkbeveiligingsgroep (NSG) nodig om toe te staan dat verkeer van virtuele netwerken alleen de AzureActiveDirectory servicetag bereikt.
    • Als u een routetabel gebruikt, moet u een regel maken met de doelservicetag AzureActiveDirectory en volgende hop Internet.
    • Als u een proxy gebruikt, kunt u desgewenst een nieuwe firewallregel toevoegen zodat HTTP/S-verkeer alleen de AzureActiveDirectory servicetag kan bereiken.
  • Aangepaste DNS: er zijn aanvullende overwegingen als u aangepaste DNS in uw virtuele netwerk (VNET) gebruikt. In dergelijke gevallen is het van cruciaal belang ervoor te zorgen dat de volgende eindpunten worden omgezet in de bijbehorende IP-adressen: login.microsoftonline.com: dit eindpunt wordt gebruikt voor verificatiedoeleinden. Controleer of uw aangepaste DNS-installatie het omzetten van login.microsoftonline.com naar de juiste IP-adressen graph.microsoft.com mogelijk maakt: dit eindpunt wordt gebruikt voor toegang tot de Microsoft Graph API. Zorg ervoor dat uw aangepaste DNS-installatie de omzetting van graph.microsoft.com naar de juiste IP-adressen toestaat.

Volg deze stappen om de Microsoft Entra-beheerder in te stellen tijdens het inrichten van de server:

  1. Selecteer in de Azure Portal tijdens het inrichten van de server PostgreSQL- en Microsoft Entra-verificatie of Alleen Microsoft Entra-verificatie als verificatiemethode.
  2. Selecteer op het tabblad Beheerder instellen een geldige Microsoft Entra-gebruiker, groep, service-principal of beheerde identiteit in de tenant van de klant als Microsoft Entra-beheerder.

U kunt desgewenst een lokaal PostgreSQL-beheerdersaccount toevoegen als u liever de PostgreSQL- en Microsoft Entra-verificatiemethode gebruikt.

Notitie

U kunt slechts één Azure-beheerder toevoegen tijdens het inrichten van de server. U kunt meerdere Microsoft Entra-beheerdersgebruikers toevoegen nadat de server is gemaakt.

Screenshot that shows selections for setting a Microsoft Entra admin during server provisioning.]

Voer de volgende stappen uit om de Microsoft Entra-beheerder in te stellen nadat de server is gemaakt:

  1. Selecteer in Azure Portal het exemplaar van de flexibele Azure Database for PostgreSQL-server die u wilt inschakelen voor Microsoft Entra-id.
  2. Selecteer Verificatie onder Beveiliging. Kies vervolgens PostgreSQL- en Microsoft Entra-verificatie of Microsoft Entra-verificatie alleen als verificatiemethode op basis van uw vereisten.
  3. Selecteer Microsoft Entra-Beheer s toevoegen. Selecteer vervolgens een geldige Microsoft Entra-gebruiker, groep, service-principal of beheerde identiteit in de tenant van de klant als Microsoft Entra-beheerder.
  4. Selecteer Opslaan.

Screenshot that shows selections for setting a Microsoft Entra admin after server creation.

Belangrijk

Wanneer u de beheerder instelt, wordt er een nieuwe gebruiker toegevoegd aan de flexibele Server van Azure Database for PostgreSQL met volledige beheerdersmachtigingen.

Verbinding maken naar Azure Database for PostgreSQL met behulp van Microsoft Entra-id

In het volgende diagram op hoog niveau ziet u een overzicht van de werkstroom voor het gebruik van Microsoft Entra-verificatie met Azure Database for PostgreSQL:

Diagram of authentication flow between Microsoft Entra ID, the user's computer, and the server.

Microsoft Entra-integratie werkt met standaard PostgreSQL-hulpprogramma's zoals psql, die niet op de hoogte zijn van Microsoft Entra en ondersteuning bieden om alleen de gebruikersnaam en het wachtwoord op te geven wanneer u verbinding maakt met PostgreSQL. Zoals wordt weergegeven in het voorgaande diagram, wordt het Microsoft Entra-token doorgegeven als het wachtwoord.

We hebben de volgende clients getest:

  • psql-opdrachtregel: gebruik de PGPASSWORD variabele om het token door te geven.
  • Azure Data Studio: gebruik de PostgreSQL-extensie.
  • Andere clients op basis van libpq: voorbeelden zijn algemene toepassingsframeworks en object-relationele mappers (ORM's).
  • Pg Beheer: Wis Verbinding maken nu bij het maken van de server.

Verifiëren met Microsoft Entra ID

Gebruik de volgende procedures om te verifiëren met Microsoft Entra ID als een flexibele servergebruiker van Azure Database for PostgreSQL. U kunt meegaan in Azure Cloud Shell, op een virtuele Azure-machine of op uw lokale computer.

Aanmelden bij het Azure-abonnement van de gebruiker

Begin met verificatie met Microsoft Entra ID met behulp van de Azure CLI. Deze stap is niet vereist in Azure Cloud Shell.

az login

Met de opdracht wordt een browservenster geopend op de microsoft Entra-verificatiepagina. Hiervoor moet u uw Microsoft Entra-gebruikers-id en -wachtwoord opgeven.

Het Microsoft Entra-toegangstoken ophalen

Gebruik de Azure CLI om een toegangstoken te verkrijgen voor de geverifieerde Microsoft Entra-gebruiker voor toegang tot Azure Database for PostgreSQL. Hier volgt een voorbeeld van de openbare cloud:

az account get-access-token --resource https://ossrdbms-aad.database.windows.net

De voorgaande resourcewaarde moet worden opgegeven zoals wordt weergegeven. Voor andere clouds kunt u de resourcewaarde opzoeken met behulp van de volgende opdracht:

az cloud show

Voor Azure CLI versie 2.0.71 en hoger kunt u de opdracht opgeven in de volgende handige versie voor alle clouds:

az account get-access-token --resource-type oss-rdbms

Nadat de verificatie is geslaagd, retourneert De Microsoft Entra-id een toegangstoken:

{
  "accessToken": "TOKEN",
  "expiresOn": "...",
  "subscription": "...",
  "tenant": "...",
  "tokenType": "Bearer"
}

Het token is een Base64-tekenreeks. Het codeert alle informatie over de geverifieerde gebruiker en is gericht op de Azure Database for PostgreSQL-service.

Een token gebruiken als wachtwoord voor aanmelding met client psql

Wanneer u verbinding maakt, kunt u het toegangstoken het beste gebruiken als het PostgreSQL-gebruikerswachtwoord.

Tijdens het gebruik van de psql-opdrachtregelclient moet het toegangstoken worden doorgegeven via de PGPASSWORD omgevingsvariabele. De reden hiervoor is dat het toegangstoken de wachtwoordlengte overschrijdt die psql rechtstreeks kan accepteren.

Hier volgt een Windows-voorbeeld:

set PGPASSWORD=<copy/pasted TOKEN value from step 2>
$env:PGPASSWORD='<copy/pasted TOKEN value from step 2>'

Hier volgt een Voorbeeld van Linux/macOS:

export PGPASSWORD=<copy/pasted TOKEN value from step 2>

U kunt stap 2 en stap 3 ook combineren met behulp van opdrachtvervanging. Het ophalen van tokens kan worden ingekapseld in een variabele en rechtstreeks worden doorgegeven als een waarde voor PGPASSWORD de omgevingsvariabele:

export PGPASSWORD=$(az account get-access-token --resource-type oss-rdbms --query "[accessToken]" -o tsv)

U kunt nu een verbinding met Azure Database for PostgreSQL initiëren, zoals u meestal zou doen:

psql "host=mydb.postgres... user=user@tenant.onmicrosoft.com dbname=postgres sslmode=require"

Gebruik een token als een wachtwoord om u aan te melden met Pg Beheer

Voer de volgende stappen uit om verbinding te maken met behulp van een Microsoft Entra-token met Pg Beheer:

  1. Open Pgadmin en klik in het linkermenu op Register en selecteer Server
  2. Geef op het tabblad Algemeen een verbindingsnaam op en schakel de optie Verbinding maken nu uit.
  3. Klik op het tabblad Verbinding maken ion en geef de details van uw azure Database for PostgreSQL Flexible Server-exemplaar op voor hostnaam/adres en gebruikersnaam en sla deze op. gebruikersnaam is uw Microsoft Entra-id of e-mailadres
  4. Selecteer in het browsermenu uw flexibele Azure Database for PostgreSQL-serververbinding en klik op Verbinding maken Server
  5. Voer uw Active Directory-tokenwachtwoord in wanneer u hierom wordt gevraagd.

Screenshot that shows login process using PG admin.

Hier volgen enkele belangrijke overwegingen wanneer u verbinding maakt:

  • user@tenant.onmicrosoft.com is de userPrincipalName van de Microsoft Entra-gebruiker.
  • Zorg ervoor dat u de exacte manier gebruikt waarop de Azure-gebruiker is gespeld. Microsoft Entra-gebruikers- en groepsnamen zijn hoofdlettergevoelig.
  • Als de naam spaties bevat, gebruikt u een backslash (\) voor elke spatie om deze te escapen. U kunt de Azure CLI gebruiken om de aangemelde gebruiker op te halen en de waarde voor PGUGSER omgevingsvariabele in te stellen:
    export PGUSER=$(az ad signed-in-user show --query "[userPrincipalName]" -o tsv | sed 's/ /\\ /g')
    
  • De geldigheid van het toegangstoken is 5 minuten tot 60 minuten. U moet het toegangstoken ophalen voordat u de aanmelding bij Azure Database for PostgreSQL start.

U bent nu geverifieerd bij uw Azure Database for PostgreSQL-server via Microsoft Entra-verificatie.

Verifiëren met Microsoft Entra-id als groepslid

Microsoft Entra-groepen maken in Azure Database for PostgreSQL Flexibele server

Als u een Microsoft Entra-groep toegang wilt geven tot uw database, gebruikt u hetzelfde mechanisme dat u voor gebruikers hebt gebruikt, maar geeft u in plaats daarvan de groepsnaam op. Voorbeeld:

select * from  pgaadauth_create_principal('Prod DB Readonly', false, false).

Wanneer groepsleden zich aanmelden, gebruiken ze hun toegangstokens, maar geven ze de groepsnaam op als gebruikersnaam.

Notitie

Flexibele Azure Database for PostgreSQL-server ondersteunt beheerde identiteiten en service-principals als groepsleden.

Aanmelden bij het Azure-abonnement van de gebruiker

Verifieer met Microsoft Entra ID met behulp van de Azure CLI. Deze stap is niet vereist in Azure Cloud Shell. De gebruiker moet lid zijn van de Microsoft Entra-groep.

az login

Het Microsoft Entra-toegangstoken ophalen

Gebruik de Azure CLI om een toegangstoken te verkrijgen voor de geverifieerde Microsoft Entra-gebruiker voor toegang tot Azure Database for PostgreSQL. Hier volgt een voorbeeld van de openbare cloud:

az account get-access-token --resource https://ossrdbms-aad.database.windows.net

U moet de oorspronkelijke resourcewaarde exact opgeven zoals wordt weergegeven. Voor andere clouds kunt u de resourcewaarde opzoeken met behulp van de volgende opdracht:

az cloud show

Voor Azure CLI versie 2.0.71 en hoger kunt u de opdracht opgeven in de volgende handige versie voor alle clouds:

az account get-access-token --resource-type oss-rdbms

Nadat de verificatie is geslaagd, retourneert De Microsoft Entra-id een toegangstoken:

{
  "accessToken": "TOKEN",
  "expiresOn": "...",
  "subscription": "...",
  "tenant": "...",
  "tokenType": "Bearer"
}

Gebruik een token als een wachtwoord om u aan te melden met psql of Pg Beheer

Deze overwegingen zijn essentieel wanneer u verbinding maakt als groepslid:

  • De groepsnaam is de naam van de Microsoft Entra-groep die u probeert te verbinden.
  • Zorg ervoor dat u de exacte manier gebruikt waarop de naam van de Microsoft Entra-groep is gespeld. Microsoft Entra-gebruikers- en groepsnamen zijn hoofdlettergevoelig.
  • Wanneer u verbinding maakt als groep, gebruikt u alleen de groepsnaam en niet de alias van een groepslid.
  • Als de naam spaties bevat, gebruikt u een backslash (\) voor elke spatie om deze te escapen.
  • De geldigheid van het toegangstoken is 5 minuten tot 60 minuten. U wordt aangeraden het toegangstoken op te halen voordat u zich aanmeldt bij Azure Database for PostgreSQL.

U bent nu geverifieerd bij uw PostgreSQL-server via Microsoft Entra-verificatie.

Volgende stappen