Share via


A Microsoft Entra ID használata a PostgreSQL-lel való hitelesítéshez

A KÖVETKEZŐKRE VONATKOZIK: Azure Database for PostgreSQL – Önálló kiszolgáló

Fontos

Azure Database for PostgreSQL – Az önálló kiszolgáló a kivezetési útvonalon van. Határozottan javasoljuk, hogy frissítsen az Azure Database for PostgreSQL rugalmas kiszolgálóra. A rugalmas Azure Database for PostgreSQL-kiszolgálóra való migrálással kapcsolatos további információkért lásd: Mi történik az önálló Azure Database for PostgreSQL-kiszolgálóval?

Ez a cikk bemutatja, hogyan konfigurálhatja a Microsoft Entra ID-hozzáférést az Azure Database for PostgreSQL-hez, és hogyan csatlakozhat Microsoft Entra-jogkivonat használatával.

A Microsoft Entra Rendszergazda felhasználó beállítása

Csak a Microsoft Entra rendszergazdai felhasználói hozhatnak létre/engedélyezhetnek felhasználókat a Microsoft Entra ID-alapú hitelesítéshez. Javasoljuk, hogy ne használja a Microsoft Entra rendszergazdáját a rendszeres adatbázis-műveletekhez, mivel emelt szintű felhasználói engedélyekkel (pl. CREATEDB) rendelkezik.

A Microsoft Entra rendszergazdájának beállításához (használhat felhasználót vagy csoportot) kövesse az alábbi lépéseket

  1. Az Azure Portalon válassza ki az Azure Database for PostgreSQL azon példányát, amelyet engedélyezni szeretne a Microsoft Entra-azonosítóhoz.
  2. A Gépház területen válassza az Active Directory Rendszergazda:

Microsoft Entra-rendszergazda beállítása

  1. Válasszon ki egy érvényes Microsoft Entra-felhasználót az ügyfélbérlében, hogy Microsoft Entra-rendszergazda legyen.

Fontos

A rendszergazda beállításakor a rendszer új felhasználót ad hozzá az Azure Database for PostgreSQL-kiszolgálóhoz teljes rendszergazdai engedélyekkel. Az Azure Database for PostgreSQL-ben a Microsoft Entra Rendszergazda felhasználónak lesz a szerepköreazure_ad_admin. PostgreSQL-kiszolgálónként csak egy Microsoft Entra-rendszergazda hozható létre, és egy másik kijelölése felülírja a kiszolgálóhoz konfigurált meglévő Microsoft Entra-rendszergazdát. Az egyéni felhasználók helyett megadhat egy Microsoft Entra-csoportot, hogy több rendszergazdával rendelkezzen.

PostgreSQL-kiszolgálónként csak egy Microsoft Entra-rendszergazda hozható létre, és egy másik kijelölése felülírja a kiszolgálóhoz konfigurált meglévő Microsoft Entra-rendszergazdát. Az egyéni felhasználók helyett megadhat egy Microsoft Entra-csoportot, hogy több rendszergazdával rendelkezzen. Vegye figyelembe, hogy ezt követően adminisztrációs célból a csoport nevével fog bejelentkezni.

Csatlakozás az Azure Database for PostgreSQL-be a Microsoft Entra ID használatával

Az alábbi magas szintű diagram összefoglalja a Microsoft Entra-hitelesítés Azure Database for PostgreSQL-lel való használatának munkafolyamatát:

hitelesítési folyamat

A Microsoft Entra-integrációt úgy terveztük meg, hogy olyan gyakori PostgreSQL-eszközökkel működjön együtt, mint a psql, amelyek nem ismerik a Microsoft Entra-t, és csak a felhasználónév és a jelszó megadását támogatják a PostgreSQL-hez való csatlakozáskor. A Microsoft Entra-jogkivonatot a fenti képen látható jelszóként adjuk át.

Jelenleg a következő ügyfeleket teszteltük:

  • psql parancssor (használja a PGPASSWORD változót a jogkivonat átadásához, további információt a 3. lépésben talál)
  • Azure Data Studio (a PostgreSQL-bővítmény használatával)
  • Egyéb libpq-alapú ügyfelek (pl. gyakori alkalmazás-keretrendszerek és ORM-ek)
  • Pg Rendszergazda (törölje a jelet a csatlakozás most a kiszolgáló létrehozásakor. További információ: 4. lépés)

A felhasználóknak/alkalmazásoknak az alábbi lépéseket kell elvégezniük a Microsoft Entra-azonosítóval való hitelesítéshez:

Előfeltételek

Követheti a műveletet az Azure Cloud Shellben, egy Azure-beli virtuális gépen vagy a helyi gépen. Győződjön meg arról, hogy telepítve van az Azure CLI.

Hitelesítés a Microsoft Entra-azonosítóval egyetlen felhasználóként

1. lépés: Bejelentkezés a felhasználó Azure-előfizetésére

Először hitelesítsd a Microsoft Entra ID-t az Azure CLI eszközzel. Ez a lépés nem szükséges az Azure Cloud Shellben.

az login

A parancs elindít egy böngészőablakot a Microsoft Entra hitelesítési oldalára. Ehhez meg kell adnia a Microsoft Entra felhasználói azonosítóját és jelszavát.

2. lépés: A Microsoft Entra hozzáférési jogkivonatának lekérése

Az Azure CLI-eszköz meghívásával szerezze be a Microsoft Entra által hitelesített felhasználó hozzáférési jogkivonatát az 1. lépéstől az Azure Database for PostgreSQL eléréséhez.

Példa (nyilvános felhő esetén):

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

A fenti erőforrásértéket pontosan az ábrán látható módon kell megadni. Más felhők esetében az erőforrás-érték a következőkkel kereshető:

az cloud show

Az Azure CLI 2.0.71-es és újabb verziói esetében a parancs az alábbi kényelmesebb verzióban adható meg minden felhőhöz:

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

A hitelesítés sikeres befejezése után a Microsoft Entra ID egy hozzáférési jogkivonatot ad vissza:

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

A jogkivonat egy Base 64 sztring, amely a hitelesített felhasználóra vonatkozó összes információt kódolja, és amely az Azure Database for PostgreSQL szolgáltatásra irányul.

3. lépés: Token használata jelszóként az ügyfél psql-jével való bejelentkezéshez

Csatlakozáskor a hozzáférési jogkivonatot kell használnia a PostgreSQL felhasználói jelszavaként.

A parancssori ügyfél használatakor a psql hozzáférési jogkivonatot át kell adni a PGPASSWORD környezeti változón, mivel a hozzáférési jogkivonat túllépi a közvetlenül elfogadható jelszóhosszt psql :

Windows-példa:

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

Példa Linux/macOS rendszerre:

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

Most már a szokásos módon kezdeményezhet kapcsolatot az Azure Database for PostgreSQL-lel:

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

4. lépés: Jogkivonat használata jelszóként a Pg-vel való bejelentkezéshez Rendszergazda

A Microsoft Entra-token és a p Rendszergazda g használatával való csatlakozáshoz kövesse a következő lépéseket:

  1. Törölje a jelet a csatlakozás most lehetőségből a kiszolgáló létrehozásakor.
  2. Adja meg a kiszolgáló adatait a kapcsolat lapon, és mentse a fájlt.
  3. A böngésző menüjében válassza az Azure Database for PostgreSQL-kiszolgálóhoz való csatlakozást
  4. Amikor a rendszer kéri, adja meg az AD-jogkivonat jelszavát.

Fontos szempontok a csatlakozáskor:

  • user@tenant.onmicrosoft.com a Microsoft Entra-felhasználó neve
  • Ügyeljen arra, hogy pontosan az Azure-felhasználó helyesírását használja – mivel a Microsoft Entra felhasználó- és csoportnevei megkülönböztetik a kis- és nagybetűket.
  • Ha a név szóközöket tartalmaz, használja \ az egyes szóközök előtt a feloldásukhoz.
  • A hozzáférési jogkivonat érvényessége 5 perc és 60 perc között van. Javasoljuk, hogy szerezze be a hozzáférési jogkivonatot, mielőtt elindítja a bejelentkezést az Azure Database for PostgreSQL-be.

A rendszer mostantól Microsoft Entra-hitelesítéssel hitelesíti az Azure Database for PostgreSQL-kiszolgálón.

Hitelesítés csoporttagként a Microsoft Entra-azonosítóval

1. lépés: Microsoft Entra-csoportok létrehozása az Azure Database for PostgreSQL-ben

Ha engedélyezni szeretné egy Microsoft Entra-csoportot az adatbázishoz való hozzáféréshez, használja ugyanazt a mechanizmust, mint a felhasználók esetében, ehelyett adja meg a csoport nevét:

Példa:

CREATE USER <new_user> IN ROLE azure_ad_user;

Bejelentkezéskor a csoport tagjai a személyes hozzáférési jogkivonataikat használják, de a felhasználónévként megadott csoportnévvel jelentkeznek be.

2. lépés: Bejelentkezés a felhasználó Azure-előfizetésére

Hitelesítés Microsoft Entra-azonosítóval az Azure CLI-eszközzel. Ez a lépés nem szükséges az Azure Cloud Shellben. A felhasználónak a Microsoft Entra csoport tagjának kell lennie.

az login

3. lépés: A Microsoft Entra hozzáférési jogkivonatának lekérése

Az Azure CLI-eszköz meghívásával szerezze be a Microsoft Entra által hitelesített felhasználó hozzáférési jogkivonatát a 2. lépéstől az Azure Database for PostgreSQL eléréséhez.

Példa (nyilvános felhő esetén):

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

A fenti erőforrásértéket pontosan az ábrán látható módon kell megadni. Más felhők esetében az erőforrás-érték a következőkkel kereshető:

az cloud show

Az Azure CLI 2.0.71-es és újabb verziói esetében a parancs az alábbi kényelmesebb verzióban adható meg minden felhőhöz:

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

A hitelesítés sikeres befejezése után a Microsoft Entra ID egy hozzáférési jogkivonatot ad vissza:

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

4. lépés: A psql-lel vagy pg-vel való bejelentkezéshez használjon jogkivonatot jelszóként Rendszergazda (lásd a felhasználói kapcsolat fenti lépéseit)

Fontos szempontok csoporttagként való csatlakozáskor:

  • groupname@mydb annak a Microsoft Entra-csoportnak a neve, amelyhez csatlakozni próbál
  • Mindig fűzze hozzá a kiszolgáló nevét a Microsoft Entra felhasználó/csoport neve után (pl. @mydb)
  • Ügyeljen arra, hogy pontosan a Microsoft Entra-csoport nevének helyesírását használja.
  • A Microsoft Entra felhasználói és csoportnevei megkülönböztetik a kis- és nagybetűket
  • Csoportként való csatlakozáskor csak a csoport nevét (például GroupName@mydb) használja, a csoporttagok aliasát nem.
  • Ha a név szóközöket tartalmaz, minden szóköz előtt használjon \-t, hogy elkerülje a szóközöket.
  • A hozzáférési jogkivonat érvényessége 5 perc és 60 perc között van. Javasoljuk, hogy szerezze be a hozzáférési jogkivonatot, mielőtt elindítja a bejelentkezést az Azure Database for PostgreSQL-be.

A rendszer mostantól Microsoft Entra-hitelesítéssel hitelesíti a PostgreSQL-kiszolgálón.

Microsoft Entra-felhasználók létrehozása az Azure Database for PostgreSQL-ben

Ha Microsoft Entra-felhasználót szeretne hozzáadni az Azure Database for PostgreSQL-adatbázishoz, a csatlakozás után hajtsa végre a következő lépéseket (lásd a csatlakozásról szóló későbbi szakaszt):

  1. Először győződjön meg arról, hogy a Microsoft Entra-felhasználó <user>@yourtenant.onmicrosoft.com érvényes felhasználó a Microsoft Entra-bérlőben.
  2. Jelentkezzen be az Azure Database for PostgreSQL-példányba Microsoft Entra Rendszergazda felhasználóként.
  3. Szerepkör <user>@yourtenant.onmicrosoft.com létrehozása az Azure Database for PostgreSQL-ben.
  4. Szerepkör-azure_ad_user taggá alakítása <user>@yourtenant.onmicrosoft.com . Ezt csak a Microsoft Entra-felhasználók kapják meg.

Példa:

CREATE USER "user1@yourtenant.onmicrosoft.com" IN ROLE azure_ad_user;

Feljegyzés

A felhasználó Microsoft Entra-azonosítón keresztüli hitelesítése nem ad engedélyt a felhasználónak az Azure Database for PostgreSQL-adatbázisban lévő objektumok elérésére. A felhasználónak manuálisan kell megadnia a szükséges engedélyeket.

Jogkivonat érvényesítése

Az Azure Database for PostgreSQL Microsoft Entra-hitelesítése biztosítja, hogy a felhasználó létezik a PostgreSQL-kiszolgálón, és a jogkivonat tartalmának ellenőrzésével ellenőrzi a jogkivonat érvényességét. A rendszer a következő jogkivonat-érvényesítési lépéseket hajtja végre:

  • A jogkivonatot a Microsoft Entra ID írja alá, és nem módosították
  • A jogkivonatot a Microsoft Entra-azonosító adta ki a kiszolgálóhoz társított bérlőhöz
  • A jogkivonat nem járt le
  • A token az Azure Database for PostgreSQL-erőforráshoz tartozik (nem pedig egy másik Azure-erőforráshoz)

Meglévő PostgreSQL-felhasználók migrálása a Microsoft Entra ID-alapú hitelesítésre

Engedélyezheti a Microsoft Entra-hitelesítést a meglévő felhasználók számára. Két esetet kell figyelembe venni:

1. eset: A PostgreSQL felhasználóneve megegyezik a Microsoft Entra felhasználónévvel

Abban a valószínűtlen esetben, ha a meglévő felhasználók már megfelelnek a Microsoft Entra-felhasználóneveknek, a szerepkört megadhatja azure_ad_user nekik a Microsoft Entra-hitelesítés engedélyezéséhez:

GRANT azure_ad_user TO "existinguser@yourtenant.onmicrosoft.com";

Mostantól a korábban konfigurált PostgreSQL-felhasználói jelszó használata helyett a Microsoft Entra hitelesítő adataival is bejelentkezhetnek.

2. eset: A PostgreSQL-felhasználónév eltér a Microsoft Entra felhasználónévétől

Ha egy PostgreSQL-felhasználó nem létezik a Microsoft Entra-azonosítóban, vagy más felhasználónévvel rendelkezik, a Microsoft Entra-csoportokkal hitelesítheti magát a PostgreSQL-felhasználóként. Meglévő Azure Database for PostgreSQL-felhasználókat migrálhat a Microsoft Entra-azonosítóba egy Olyan Microsoft Entra-csoport létrehozásával, amely megfelel a PostgreSQL-felhasználónak, majd szerepkört azure_ad_user a meglévő PostgreSQL-felhasználónak:

GRANT azure_ad_user TO <new_user>;

Ez feltételezi, hogy létrehozott egy "DBReadUser" csoportot a Microsoft Entra-azonosítójában. A csoporthoz tartozó felhasználók mostantól bejelentkezhetnek az adatbázisba, mint ez a felhasználó.

Következő lépések