Megosztás a következőn keresztül:


A Microsoft Entra ID használata az Azure Database for PostgreSQL-lel való hitelesítéshez

Ebben a cikkben a Microsoft Entra ID-hozzáférést konfigurálja az Azure Database for PostgreSQL-hez való hitelesítéshez. Azt is megtudhatja, hogyan használhat Microsoft Entra token-t egy rugalmas Azure Database for PostgreSQL szerverpéldányhoz.

A Microsoft Entra-hitelesítést egy Azure Database for PostgreSQL rugalmas kiszolgálópéldányhoz a kiszolgáló kiépítése során vagy később is konfigurálhatja. Csak a Microsoft Entra rendszergazdai felhasználói hozhatnak létre vagy engedélyezhetnek felhasználókat a Microsoft Entra ID-alapú hitelesítéshez. Ne használja a Microsoft Entra rendszergazdáját a rendszeres adatbázis-műveletekhez, mert ez a szerepkör emelt szintű felhasználói engedélyekkel (például CREATEDB) rendelkezik.

Az Azure Database for PostgreSQL-ben több Microsoft Entra-rendszergazdai felhasználó is lehet. A Microsoft Entra rendszergazdai felhasználói lehetnek felhasználók, csoportok vagy szolgáltatásnevek.

Előfeltételek

Hálózati követelmények konfigurálása

A Microsoft Entra ID egy több-bérlős alkalmazás. Kimenő kapcsolatra van szüksége olyan műveletekhez, mint a Microsoft Entra felügyeleti csoportok hozzáadása.

A hálózatkezelési követelmények topológiánként eltérőek:

  • Nyilvános hozzáférés (engedélyezett IP-címek):: Nincs szükség további kimenő szabályokra.
  • Privát hozzáférés (virtuális hálózati integráció)::
    • Adjon hozzá egy kimenő NSG-szabályt, amely csak a AzureActiveDirectory szolgáltatáscímkére irányuló forgalmat engedélyezi.
    • Ha útvonaltáblát használ, adjon hozzá egy útvonalat a célhoz AzureActiveDirectory és a következő ugráshoz Internet.
    • Ha proxyt használ, csak HTTPS-forgalmat engedélyezzen a AzureActiveDirectory szolgáltatáscímkére.
  • Egyéni DNS:
    • Győződjön meg arról, hogy ezek a gazdagépnevek nyilvánosan feloldhatók: login.microsoftonline.com (hitelesítés) és graph.microsoft.com (Microsoft Graph API).
    • Ha a megoldás sikertelen, a rendszergazdai hozzárendelés és a jogkivonat-beszerzési műveletek meghiúsulnak.

A Microsoft Entra rendszergazdájának a kiszolgáló kiépítése során történő beállításához kövesse az alábbi lépéseket:

  1. Az Azure Portalon a kiszolgáló kiépítése során csak a PostgreSQL- és a Microsoft Entra-hitelesítést , illetve a Microsoft Entra-hitelesítést válassza ki hitelesítési módszerként.
  2. A Rendszergazda beállítása lapon válasszon ki egy érvényes Microsoft Entra-felhasználót, csoportot, szolgáltatásnevet vagy felügyelt identitást az ügyfélbérlében, hogy a Microsoft Entra-rendszergazda legyen.

Ha inkább a PostgreSQL és a Microsoft Entra hitelesítési módszert szeretné használni, hozzáadhat helyi PostgreSQL-rendszergazdai fiókot.

Megjegyzés:

A kiszolgáló kiépítése során csak egy Microsoft Entra-rendszergazda vehető fel. A kiszolgáló létrehozása után több Microsoft Entra-rendszergazdai felhasználót is hozzáadhat.

A Microsoft Entra rendszergazdájának kiszolgálólétrehozás utáni beállításához kövesse az alábbi lépéseket:

  1. Az Azure Portalon válassza ki a Rugalmas Azure Database for PostgreSQL-kiszolgáló azon példányát, amelyet engedélyezni szeretne a Microsoft Entra-azonosítóhoz.
  2. A Biztonság területen válassza a Hitelesítés lehetőséget. Ezután a követelményeknek megfelelően válassza a PostgreSQL- és a Microsoft Entra-hitelesítést vagy a Microsoft Entra-hitelesítést .
  3. Válassza a Microsoft Entra-rendszergazdák hozzáadása lehetőséget. Ezután válasszon ki egy érvényes Microsoft Entra-felhasználót, csoportot, szolgáltatásnevet vagy felügyelt identitást az ügyfélbérlében, hogy Microsoft Entra-rendszergazda legyen.
  4. Válassza az Mentésgombot.

Fontos

A rendszergazda beállításakor a rendszer új felhasználót ad hozzá a rugalmas Azure Database for PostgreSQL-kiszolgálópéldányhoz teljes rendszergazdai engedélyekkel.

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

A Microsoft Entra integrációja olyan szabványos PostgreSQL-eszközökkel működik, mint a psql, amelyek nem ismerik a Microsoft Entra-t, és csak akkor támogatják a felhasználónevet és a jelszót, amikor a PostgreSQL-hez csatlakozik.

A következő ügyfeleket teszteltük:

  • psql parancssor: A változóval PGPASSWORD adja át a jogkivonatot.
  • Azure Data Studio: Használja a PostgreSQL-bővítményt.
  • Egyéb libpq-alapú ügyfelek: Ilyenek például a gyakori alkalmazás-keretrendszerek és az objektum-relációs leképezők (ORM-ek).
  • PgAdmin: A csatlakozás törlése a kiszolgáló létrehozásakor.

Hitelesítés Microsoft Entra-azonosítóval

A következő eljárásokkal hitelesítheti magát a Microsoft Entra ID használatával az Azure Database for PostgreSQL rugalmas kiszolgálópéldány felhasználójaként.

Kövesse a következőt:

  • Azure Cloud Shell
  • Azure-beli virtuális gép
  • A helyi gép

Bejelentkezés az Azure-ba

Kezdje a Microsoft Entra ID hitelesítésével az Azure CLI használatával. Ez a lépés nem szükséges az Azure Cloud Shellben.

az login

A parancs megnyit 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.

Microsoft Entra hozzáférési jogkivonat lekérése

Az Azure CLI használatával lekérheti a Microsoft Entra által hitelesített felhasználó hozzáférési jogkivonatát az Azure Database for PostgreSQL eléréséhez. Íme egy példa a nyilvános felhőre:

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

Az előző erőforrásértéket az ábrán látható módon kell megadni. Más felhők esetében az alábbi paranccsal keresheti meg az erőforrás értékét:

az cloud show

Az Azure CLI 2.0.71-es és újabb verziójához a következő kényelmes verzióban adhatja meg a parancsot az összes felhőhöz:

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

A hitelesítés sikeres elvégzé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 Base64-sztring. Kódolja a hitelesített felhasználóra vonatkozó összes információt, és az Azure Database for PostgreSQL szolgáltatásra irányul.

Jogkivonat használata jelszóként az ügyfél psql-jével való bejelentkezéshez

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

A psql parancssori ügyfél használatakor át kell adnia a hozzáférési jogkivonatot a PGPASSWORD környezeti változón keresztül. A hozzáférési jogkivonat hosszabb, mint a psql által közvetlenül elfogadható jelszóhossz.

Íme egy Windows-példa:

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

Íme egy linuxos vagy macOS-példa:

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

A 2. és a 3. lépést parancshelyettesítéssel is kombinálhatja. A jogkivonat-lekérést elhelyezheti egy változóban, és közvetlenül átadhatja a PGPASSWORD környezeti változó értékeként:

export PGPASSWORD=$(az account get-access-token --resource-type oss-rdbms --query "[accessToken]" -o tsv)

Most csatlakozzon az Azure Database for PostgreSQL-hez:

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

Jogkivonat használata jelszóként a PgAdminnel való bejelentkezéshez

Ha Microsoft Entra-token és PgAdmin használatával szeretne csatlakozni, kövesse az alábbi lépéseket:

  1. Nyissa meg a PgAdmint, és válassza a Kiszolgáló regisztrálása>lehetőséget.
  2. Az Általános lapon adja meg a kapcsolat nevét, és törölje a 'Csatlakozás most' jelölést.
  3. A Kapcsolat lapon írja be a gazda adatait. Adja meg a felhasználónevet a Microsoft Entra UPN-nek (például user@tenant.onmicrosoft.com). Mentés
  4. A fában válassza ki a kiszolgálót, és válassza a Kiszolgáló csatlakoztatása lehetőséget.
  5. Amikor a rendszer kéri, illessze be a hozzáférési jogkivonatot jelszóként.

Íme néhány alapvető szempont a csatlakozáskor:

  • user@tenant.onmicrosoft.com a Microsoft Entra-felhasználó userPrincipalName neve.

  • Ügyeljen arra, hogy az Azure-felhasználó pontos helyesírását használja. A Microsoft Entra felhasználói és csoportnevei megkülönböztetik a kis- és nagybetűket.

  • Ha a név szóközöket tartalmaz, minden szóköz előtt használjon fordított perjelet (\) a feloldásukhoz. Az Azure CLI használatával lekérheti a bejelentkezett felhasználót, és beállíthatja a környezeti változó értékét PGUSER :

    export PGUSER=$(az ad signed-in-user show --query "[userPrincipalName]" -o tsv | sed 's/ /\\ /g')
    
  • A hozzáférési jogkivonat érvényessége 5 perc és 60 perc között lehet. Az Azure Database for PostgreSQL-be való bejelentkezés megkezdése előtt le kell szereznie a hozzáférési jogkivonatot.

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

Ez a szakasz bemutatja, hogyan csatlakozhat Microsoft Entra-csoportokkal. A csoport tagjának kell lennie, és a csoportot létre kell hozni (leképezni) az adatbázisban.

Csoport főazonosító létrehozása

Hozza létre a csoportnevet (szerepkört) az adatbázisban (szükség szerint cserélje le a megjelenítendő nevet):

select * from  pgaadauth_create_principal('Prod DB Readonly', false, false).

Ha a csoportszinkronizálás le van tiltva, a tagok a hozzáférési jogkivonataik használatával jelentkezhetnek be, és felhasználónévként megadják a csoport nevét.

Ha a csoportszinkronizálás engedélyezve van (pgaadauth.enable_group_sync kiszolgálói paraméter "ON" értékre van állítva), a tagoknak egyéni Entra-azonosítójuk hitelesítő adataival kell bejelentkezniük, de felhasználónévként továbbra is bejelentkezhetnek a csoport nevével.

  • A csoportos bejelentkezések kompatibilitási okokból továbbra is elérhetők maradnak, de letilthatók a következőkkel: ALTER ROLE "ROLE_NAME" NOLOGIN;

  • A csoportszerepkört nem szabad törölni a szinkronizálás fenntartása érdekében.

  • Csoportok automatikus szinkronizálása 30 percenként.

  • A manuális szinkronizálás a következővel aktiválható: SELECT * FROM pgaadauth_sync_roles_for_group_members(); (pgaadauth.enable_group_sync a paramnak "ON" kell lennie).

  • A csoport metaadatainak (például a csoportnévnek) a módosításai nem szinkronizálódnak

  • A csoporttagság módosításai szinkronizálva vannak

    Megjegyzés:

    A felügyelt identitások és szolgáltatási főnevek a csoport tagjaként támogatottak.

Bejelentkezés az Azure-ba

Hitelesítés Microsoft Entra-azonosítóval az Azure CLI használatával. 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

Microsoft Entra hozzáférési jogkivonat lekérése

Az Azure CLI használatával lekérheti a Microsoft Entra által hitelesített felhasználó hozzáférési jogkivonatát az Azure Database for PostgreSQL eléréséhez. Íme egy példa a nyilvános felhőre:

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

A kezdeti erőforrás értékét pontosan az ábrán látható módon kell megadnia. Más felhők esetében az alábbi paranccsal keresheti meg az erőforrás értékét:

az cloud show

Az Azure CLI 2.0.71-es és újabb verziójához a következő kényelmes verzióban adhatja meg a parancsot az összes felhőhöz:

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

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

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

Jogkivonat használata jelszóként a psql-lel vagy a PgAdminnel való bejelentkezéshez

Ezek a szempontok elengedhetetlenek a csoporttagként való csatlakozáskor:

  • A csoport nevének pontosan meg kell egyeznie a Microsoft Entra csoport megjelenítendő nevével (kis- és nagybetűk megkülönböztetése).
  • Csak a csoportnevet használja, tagi aliast nem.
  • Szükség esetén menekülési szóközök (például Prod\ DB\ Readonly).
  • A hozzáférési jog érvényessége 5–60 perc. Szerezze be közvetlenül csatlakozás előtt; ne tárolja a tokeneket szkriptekben.

Jótanács

Ha a hitelesítés sikertelen, ellenőrizze az adatbázis-szerepkör meglétét (például a következővel \du), és erősítse meg a pgaadauth.enable_group_sync beállítást.

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