Microsoft Entra-ID och PostgreSQL-autentisering med Azure Cosmos DB för PostgreSQL
GÄLLER FÖR: Azure Cosmos DB for PostgreSQL (drivs av Citus-databastillägget till PostgreSQL)
Azure Cosmos DB for PostgreSQL stöder PostgreSQL-autentisering och integrering med Microsoft Entra-ID. Varje Azure Cosmos DB for PostgreSQL-kluster skapas med inbyggd PostgreSQL-autentisering aktiverad och en inbyggd PostgreSQL-roll med namnet citus
. Du kan lägga till fler interna PostgreSQL-roller när klusteretablering har slutförts.
Du kan också aktivera Microsoft Entra-ID (tidigare Azure Active Directory) autentisering i ett kluster utöver PostgreSQL-autentiseringsmetoden eller i stället för det. Du kan konfigurera autentiseringsmetoder för varje Azure Cosmos DB för PostgreSQL-kluster oberoende av varandra. Om du behöver ändra autentiseringsmetod kan du göra det när som helst när klusteretablering har slutförts. Att ändra autentiseringsmetoder kräver inte omstart av klustret.
PostgreSQL-autentisering
PostgreSQL-motorn använder roller för att styra åtkomsten till databasobjekt. Ett nyligen skapat Azure Cosmos DB for PostgreSQL-kluster har flera fördefinierade roller:
Eftersom Azure Cosmos DB for PostgreSQL är en hanterad PaaS-tjänst kan endast Microsoft logga in med superanvändarrollen postgres
. För begränsad administrativ åtkomst tillhandahåller citus
Azure Cosmos DB for PostgreSQL rollen.
Den hanterade tjänsten måste replikera alla PostgreSQL-roller till alla noder i ett kluster. För att underlätta detta krav måste alla andra PostgreSQL-roller skapas med hjälp av Azure Cosmos DB för PostgreSQL-hanteringsfunktioner.
Citus-rollen
Behörigheter för citus
rollen:
- Läs alla konfigurationsvariabler, även variabler som normalt bara är synliga för superanvändare.
- Läs alla pg_stat_* vyer och använd olika statistikrelaterade tillägg – även vyer eller tillägg som normalt bara visas för superanvändare.
- Kör övervakningsfunktioner som kan ta ACCESS SHARE-lås på tabeller, eventuellt under lång tid.
- Skapa PostgreSQL-tillägg.
citus
I synnerhet har rollen vissa begränsningar:
- Det går inte att skapa roller
- Det går inte att skapa databaser
citus
roll kan inte tas bort men skulle inaktiveras om autentiseringsmetoden "Endast Microsoft Entra-ID-autentisering" har valts i klustret.
Microsoft Entra ID-autentisering
Microsoft Entra ID-autentisering (tidigare Azure Active Directory) är en mekanism för att ansluta till Azure Cosmos DB for PostgreSQL med hjälp av identiteter som definierats i Microsoft Entra-ID. Med Microsoft Entra-ID-autentisering kan du hantera databasanvändares identiteter och andra Microsoft usluge på en central plats, vilket förenklar behörighetshanteringen.
Fördelarna med att använda Microsoft Entra-ID är:
- Autentisering av användare i Azure Services på ett enhetligt sätt
- Hantering av lösenordsprinciper och lösenordsrotation på en enda plats
- Flera former av autentisering som stöds av Microsoft Entra-ID, vilket kan eliminera behovet av att lagra lösenord
- Microsoft Entra ID-autentisering använder PostgreSQL-databasroller för att autentisera identiteter på databasnivå
- Stöd för tokenbaserad autentisering för program som ansluter till Azure Cosmos DB för PostgreSQL
Hantera PostgreSQL-åtkomst för Microsoft Entra ID-huvudnamn
När Microsoft Entra ID-autentisering är aktiverat och Microsoft Entra ID-huvudnamn läggs till som Microsoft Entra-ID-administratör får kontot samma behörigheter som citus
rollen. Inloggningen för Microsoft Entra-ID-administratören kan vara en Microsoft Entra-ID-användare, tjänsthuvudnamn eller hanterad identitet. Flera Microsoft Entra-ID-administratörer kan konfigureras när som helst och du kan också inaktivera PostgreSQL-autentisering (lösenord) till Azure Cosmos DB for PostgreSQL-klustret för bättre gransknings- och efterlevnadsbehov.
Dessutom kan valfritt antal icke-inaktiva Microsoft Entra-ID-roller läggas till i ett kluster när som helst när Microsoft Entra-ID-autentisering har aktiverats. Databasbehörigheter för Microsoft Entra-ID-roller som inte är microsoft entra-roller hanteras på liknande sätt som vanliga roller.
Ansluta med Microsoft Entra-ID-identiteter
Microsoft Entra ID-autentisering stöder följande metoder för att ansluta till en databas med hjälp av Microsoft Entra-ID-identiteter:
- Microsoft Entra-ID-lösenord
- Microsoft Entra ID integrerat
- Microsoft Entra ID Universal med MFA
- Använda Microsoft Entra ID-programcertifikat eller klienthemligheter
- Hanterad identitet
När du har autentiserat mot Microsoft Entra-ID:t hämtar du sedan en token. Den här token är ditt lösenord för att logga in.
Övriga beaktanden
- Flera Microsoft Entra-ID-huvudnamn (en användare, tjänstens huvudnamn eller hanterade identitet) kan konfigureras som Microsoft Entra-ID-administratör för ett Azure Cosmos DB for PostgreSQL-kluster när som helst.
- Om ett Microsoft Entra-ID-huvudnamn tas bort från Microsoft Entra ID-tjänsten förblir det fortfarande som en PostgreSQL-roll i klustret, men det kan inte längre hämta en ny åtkomsttoken. I det här fallet kan den matchande rollen fortfarande finns i Postgres-databasen inte autentisera mot klusternoderna. Databasadministratörer måste överföra ägarskapet och släppa sådana roller manuellt.
Kommentar
Inloggning med den borttagna Microsoft Entra-ID-användaren kan fortfarande göras tills token upphör att gälla (upp till 90 minuter från utfärdande av token). Om du också tar bort användaren från Azure Cosmos DB for PostgreSQL-klustret återkallas den här åtkomsten omedelbart.
- Azure Cosmos DB for PostgreSQL matchar åtkomsttoken till databasrollen med hjälp av användarens unika Användar-ID för Microsoft Entra, i stället för att använda användarnamnet. Om en Microsoft Entra-ID-användare tas bort och en ny användare skapas med samma namn, anser Azure Cosmos DB för PostgreSQL att en annan användare. Om en användare tas bort från Microsoft Entra-ID och en ny användare läggs till med samma namn kan den nya användaren därför inte ansluta till den befintliga rollen.
Nästa steg
- Kolla in Begränsningar och begränsningar för Microsoft Entra-ID i Azure Cosmos DB för PostgreSQL
- Lär dig hur du konfigurerar autentisering för Azure Cosmos DB för PostgreSQL-kluster
- Konfigurera åtkomst till privata nätverk till klusternoderna, se Hantera privat åtkomst
- Konfigurera offentlig nätverksåtkomst till klusternoderna, se Hantera offentlig åtkomst