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
- 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.
- A Gépház területen válassza az Active Directory Rendszergazda:
- 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:
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:
- Törölje a jelet a csatlakozás most lehetőségből a kiszolgáló létrehozásakor.
- Adja meg a kiszolgáló adatait a kapcsolat lapon, és mentse a fájlt.
- A böngésző menüjében válassza az Azure Database for PostgreSQL-kiszolgálóhoz való csatlakozást
- 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):
- 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. - Jelentkezzen be az Azure Database for PostgreSQL-példányba Microsoft Entra Rendszergazda felhasználóként.
- Szerepkör
<user>@yourtenant.onmicrosoft.com
létrehozása az Azure Database for PostgreSQL-ben. - 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
- Tekintse át a Microsoft Entra-hitelesítés általános fogalmait az Önálló Azure Database for PostgreSQL-kiszolgálóval