Dela via


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:

  • PostgreSQL-standardrollerna
  • postgres
  • citus

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