Notitie
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen u aan te melden of de directory te wijzigen.
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen de mappen te wijzigen.
In dit artikel configureert u microsoft Entra ID-toegang voor verificatie met Azure Database for PostgreSQL. U leert ook hoe u een Microsoft Entra token gebruikt met een Azure Database for PostgreSQL flexibele server.
U kunt Microsoft Entra-verificatie configureren voor een Azure Database for PostgreSQL flexibele server tijdens het inrichten van de server of later. Alleen Microsoft Entra-beheerders kunnen gebruikers maken of inschakelen voor Microsoft Entra ID-verificatie. Gebruik de Microsoft Entra-beheerder niet voor normale databasebewerkingen omdat deze rol verhoogde gebruikersmachtigingen heeft, zoals CREATEDB.
U kunt meerdere Microsoft Entra-beheerdersgebruikers hebben met Azure Database for PostgreSQL. Microsoft Entra-beheerders kunnen een gebruiker, een groep of service-principal zijn.
Vereiste voorwaarden
- U hebt een Azure-account met een actief abonnement nodig. Gratis een account maken
Netwerkvereisten configureren
Microsoft Entra ID is een multitenant-toepassing. Er is uitgaande connectiviteit nodig voor bewerkingen zoals het toevoegen van Microsoft Entra-beheergroepen.
Netwerkvereisten variëren per topologie:
- Openbare toegang (toegestane IP-adressen): er zijn geen extra uitgaande regels vereist.
-
Privétoegang (integratie van virtueel netwerk):
- Voeg een uitgaande NSG-regel toe die alleen verkeer naar de
AzureActiveDirectoryservicetag toestaat. - Als u een routetabel gebruikt, voegt u een route toe met bestemming
AzureActiveDirectoryen volgende hopInternet. - Als u een proxy gebruikt, staat u alleen HTTPS-verkeer naar de
AzureActiveDirectoryservicetag toe.
- Voeg een uitgaande NSG-regel toe die alleen verkeer naar de
-
Aangepaste DNS:
- Zorg ervoor dat deze hostnamen publiek toegankelijk zijn:
login.microsoftonline.com(verificatie) engraph.microsoft.com(Microsoft Graph API). - Als de oplossing mislukt, mislukken beheertoewijzings- en tokenverwervingsbewerkingen.
- Zorg ervoor dat deze hostnamen publiek toegankelijk zijn:
Volg deze stappen om de Microsoft Entra-beheerder in te stellen tijdens het inrichten van de server:
- Selecteer in de Azure Portal tijdens het inrichten van de server PostgreSQL- en Microsoft Entra-verificatie of Alleen Microsoft Entra-verificatie als verificatiemethode.
- 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.
Opmerking
U kunt slechts één Microsoft Entra-beheerder toevoegen tijdens het inrichten van de server. U kunt meerdere Microsoft Entra-beheerdersgebruikers toevoegen nadat de server is gemaakt.
Voer de volgende stappen uit om de Microsoft Entra-beheerder in te stellen nadat de server is gemaakt:
- Selecteer in de Azure portal de Azure Database for PostgreSQL flexibele server die u wilt inschakelen voor Microsoft Entra ID.
- Selecteer Verificatie onder Beveiliging. Kies vervolgens PostgreSQL- en Microsoft Entra-verificatie of Microsoft Entra-verificatie alleen als verificatiemethode op basis van uw vereisten.
- Selecteer Microsoft Entra-beheerders toevoegen. Selecteer vervolgens een geldige Microsoft Entra-gebruiker, groep, service-principal of beheerde identiteit in de tenant van de klant als Microsoft Entra-beheerder.
- Selecteer Opslaan.
Belangrijk
Wanneer u de beheerder instelt, voegt u een nieuwe gebruiker toe aan uw Azure Database for PostgreSQL flexibele server met volledige beheerdersmachtigingen.
Verbinding maken met Azure Database for PostgreSQL met behulp van Microsoft Entra-id
Microsoft Entra-integratie werkt met standaard PostgreSQL-hulpprogramma's zoals psql, die niet Microsoft Entra-compatibel zijn en waarbij u bij het maken van verbinding met PostgreSQL alleen de gebruikersnaam en het wachtwoord kunt opgeven.
Geteste clients zijn:
- PostgreSQL voor Visual Studio Code-extensie: gebruik het VERIFICATIETYPE om de verificatiemethode in te stellen op Entra-verificatie.
-
psql-opdrachtregel: gebruik de
PGPASSWORDvariabele om het token door te geven. - Andere clients op basis van libpq: voorbeelden zijn algemene toepassingsframeworks en object-relationele mappers (ORM's).
- PgAdmin: Deselecteer Verbinding maken 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 dit volgen met behulp van:
- Azure Cloud Shell
- Virtuele Azure-machine
- Uw lokale computer
Aanmelden bij Azure
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.
Een Microsoft Entra-toegangstoken ophalen
Gebruik de Azure CLI om een toegangstoken op te halen 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
Geef de resourcewaarde op, zoals wordt weergegeven in het voorgaande voorbeeld. 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, gebruikt u het toegangstoken als het PostgreSQL-gebruikerswachtwoord.
Wanneer u de psql-opdrachtregelclient gebruikt, moet u het toegangstoken doorgeven via de PGPASSWORD omgevingsvariabele. Het toegangstoken is langer dan de wachtwoordlengte 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 of macOS:
export PGPASSWORD=<copy/pasted TOKEN value from step 2>
U kunt stap 2 en 3 ook combineren met behulp van opdrachtvervanging. U kunt het token ophalen in een variabele plaatsen en deze rechtstreeks doorgeven als de waarde voor de PGPASSWORD omgevingsvariabele:
export PGPASSWORD=$(az account get-access-token --resource-type oss-rdbms --query "[accessToken]" -o tsv)
Maak nu verbinding met Azure Database for PostgreSQL:
psql "host=mydb.postgres... user=user@tenant.onmicrosoft.com dbname=postgres sslmode=require"
Een token gebruiken als een wachtwoord voor aanmelding met behulp van PgAdmin
Volg deze stappen om verbinding te maken met behulp van een Microsoft Entra-token met PgAdmin:
- Open PgAdmin en selecteer Registreren>Server.
- Voer op het tabblad Algemeen een verbindingsnaam in en haal het vinkje weg bij nu Verbinding maken.
- Voer op het tabblad Verbinding hostgegevens in. Stel de gebruikersnaam in op uw Microsoft Entra UPN (bijvoorbeeld
user@tenant.onmicrosoft.com). Opslaan. - Selecteer in de structuur de server en kies Verbinding maken met server.
- Wanneer u hierom wordt gevraagd, plakt u het toegangstoken als het wachtwoord.
Hier volgen enkele belangrijke overwegingen wanneer u verbinding maakt:
user@tenant.onmicrosoft.comis de userPrincipalName van de Microsoft Entra-gebruiker.Gebruik de exacte spelling voor de Azure gebruiker. 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
PGUSERomgevingsvariabele in te stellen.
export PGUSER=$(az ad signed-in-user show --query "[userPrincipalName]" -o tsv | sed 's/ /\\ /g')- U kunt de Azure CLI gebruiken om de aangemelde gebruiker op te halen en de waarde voor
Het toegangstoken is 5 tot 60 minuten geldig. Haal het toegangstoken op 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
In deze sectie wordt beschreven hoe u verbinding maakt met behulp van een Microsoft Entra-groep. U moet lid zijn van de groep en de groep moet worden aangemaakt (gekoppeld) in de database.
Een groepsprincipaal maken
Maak de groepsprincipal (rol) in de database. Vervang indien nodig de weergavenaam:
select * from pgaadauth_create_principal('Prod DB Readonly', false, false).
Als u groepssynchronisatie uitschakelt, kunnen leden zich aanmelden met behulp van hun toegangstokens en de groepsnaam opgeven als gebruikersnaam.
Als u groepssynchronisatie inschakelt (via
pgaadauth.enable_group_syncparameters ingesteld opON), moeten leden zich aanmelden met hun afzonderlijke Microsoft Entra ID referenties, maar ze kunnen zich nog steeds aanmelden met behulp van de groepsnaam als gebruikersnaam.Groepsaanmeldingen blijven beschikbaar om compatibiliteitsredenen, maar u kunt ze uitschakelen met behulp van:
ALTER ROLE "ROLE_NAME" NOLOGIN;Verwijder de groepsrol niet om de synchronisatie te behouden.
Groepen worden elke 30 minuten automatisch gesynchroniseerd.
U kunt handmatige synchronisatie activeren met behulp van:
SELECT * FROM pgaadauth_sync_roles_for_group_members();(pgaadauth.enable_group_syncparam moet zijnON).Wijzigingen in groepsmetagegevens, zoals groepsnaam, worden niet gesynchroniseerd.
Wijzigingen in groepslidmaatschap worden gesynchroniseerd.
Opmerking
Beheerde identiteiten en service-principals worden ondersteund als groepsleden.
Aanmelden bij Azure
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
Een Microsoft Entra-toegangstoken ophalen
Gebruik de Azure CLI om een toegangstoken op te halen 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"
}
Een token als een wachtwoord gebruiken om u aan te melden met psql of PgAdmin
Deze overwegingen zijn essentieel wanneer u verbinding maakt als groepslid:
- De groepsnaam moet exact overeenkomen met de weergavenaam van de Microsoft Entra-groep (hoofdlettergevoelig).
- Gebruik alleen de groepsnaam, niet een alias van een lid.
- Waar nodig escape-spaties (bijvoorbeeld
Prod\ DB\ Readonly). - De geldigheid van het token is 5 tot 60 minuten. Verkrijg het net voordat je verbinding maakt; sla geen tokens op in scripts.
Aanbeveling
Als de verificatie mislukt, controleert u of de databaserol bestaat (bijvoorbeeld met \du) en bevestigt u de pgaadauth.enable_group_sync instelling.
U bent nu geverifieerd bij uw PostgreSQL-server via Microsoft Entra-verificatie.