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


A Microsoft Entra ID és a natív PostgreSQL-szerepkörök használata az Azure Cosmos DB for PostgreSQL-hez való hitelesítéshez

A KÖVETKEZŐKRE VONATKOZIK: Azure Cosmos DB for PostgreSQL (a Citus adatbázisbővítménye a PostgreSQL-re)

Ebben a cikkben hitelesítési módszereket konfigurál az Azure Cosmos DB for PostgreSQL-hez. A Microsoft Entra ID rendszergazdai felhasználóit és a natív PostgreSQL-szerepköröket az Azure Cosmos DB for PostgreSQL-hez való hitelesítéshez kezelheti. Azt is megtudhatja, hogyan használhat Microsoft Entra ID-jogkivonatot az Azure Cosmos DB for PostgreSQL-hez.

Egy Azure Cosmos DB for PostgreSQL-fürt jön létre egy beépített natív PostgreSQL-szerepkörrel, "citus" néven. A fürtkiépítés befejezése után további natív PostgreSQL-szerepköröket adhat hozzá.

Konfigurálhatja a Microsoft Entra ID (korábbi nevén Azure Active Directory) hitelesítést az Azure Cosmos DB for PostgreSQL-hez. A Microsoft Entra ID-hitelesítést a fürt natív PostgreSQL-hitelesítése helyett is engedélyezheti. A fürtön engedélyezett hitelesítési módszereket a fürt kiépítése után bármikor módosíthatja. Ha engedélyezve van a Microsoft Entra ID-hitelesítés, több Microsoft Entra ID-felhasználót is hozzáadhat egy Azure Cosmos DB for PostgreSQL-fürthöz, és bármelyiket rendszergazdává teheti. A Microsoft Entra ID-felhasználó lehet felhasználó vagy szolgáltatásnév.

Hitelesítési módszer kiválasztása

Az Azure Portal használatával kell hitelesítési módszereket konfigurálni egy Azure Cosmos DB for PostgreSQL-fürtön.

Végezze el az alábbi elemeket az Azure Cosmos DB for PostgreSQL-fürtön a Microsoft Entra ID-hitelesítés és a natív PostgreSQL-hitelesítés engedélyezéséhez vagy letiltásához.

  1. A fürtlap Fürtkezelési fejléce alatt válassza a Hitelesítés lehetőséget a hitelesítéskezelési beállítások megnyitásához.
  2. A Hitelesítési módszerek szakaszban válassza a Csak a PostgreSQL-hitelesítést, a Microsoft Entra ID-hitelesítést, a PostgreSQL-t és a Microsoft Entra ID-hitelesítést a követelményeknek megfelelő hitelesítési módszerként.

Ha végzett, konfigurálja a Microsoft Entra ID-hitelesítést , vagy adjon hozzá natív PostgreSQL-szerepköröket ugyanazon a hitelesítési oldalon.

A Microsoft Entra-azonosító hitelesítésének konfigurálása

Előfeltételek

A felhasználóknak engedélyezni kell, hogy bejelentkezhessenek az Azure Cosmos DB for PostgreSQL-be a Microsoft Entra ID-bérlőben. Ezeket a lépéseket egyszer kell végrehajtani a Microsoft Entra ID-bérlő esetében, amelyet az Azure Cosmos DB for PostgreSQL-fürtök hitelesítéséhez fognak használni.

Fontos

A módosítás elvégzéséhez a Microsoft Entra ID bérlői rendszergazdai engedélyére van szükség. Útmutatás az engedélyek hibaelhárításához.

  1. Keressen rá a "Microsoft Entra ID" kifejezésre az Azure Portalon.
  2. Nyissa meg a "Microsoft Entra ID" szolgáltatást.
  3. A Microsoft Entra ID szolgáltatás Áttekintés lapján keresse meg a "b4fa09d8-5da5-4352-83d9-05c2a44cf431" alkalmazásazonosítót.
  4. A keresési eredmények között válassza az "Azure Cosmos DB for PostgreSQL AAD Authentication" vállalati alkalmazást.
  5. Az Azure Cosmos DB for PostgreSQL AAD Authentication vállalati alkalmazásban válassza a Tulajdonságok lapot.
  6. Állítsa be az Engedélyezve a felhasználók számára a bejelentkezést? lehetőséget Igen értékre, és mentse a módosítást.

Feljegyzés

A vállalati alkalmazás tulajdonságainak (például a "Felhasználók számára engedélyezve a bejelentkezéshez" ) szerkesztéséhez a globális rendszergazdai, a felhőalkalmazás-rendszergazdai vagy az alkalmazásadminisztrátori szerepkörökhöz megadott engedélyek szükségesek. Tekintse meg a beépített Microsoft Entra-szerepkörök listáját.

Microsoft Entra ID-rendszergazdák hozzáadása az Azure Cosmos DB for PostgreSQL-fürthöz

A Microsoft Entra ID-szerepkörök fürthöz való hozzáadásához vagy eltávolításához kövesse az alábbi lépéseket a Hitelesítés lapon:

  1. A Microsoft Entra ID hitelesítési szakaszában válassza a Microsoft Entra ID-rendszergazdák hozzáadása lehetőséget.
  2. A Microsoft Entra ID Rendszergazdák kiválasztása panelen válasszon ki egy vagy több érvényes Microsoft Entra ID-felhasználót vagy vállalati alkalmazást az aktuális AD-bérlőben, hogy Microsoft Entra ID-rendszergazda legyen az Azure Cosmos DB for PostgreSQL-fürtön.
  3. Válassza a Kiválasztás lehetőséget a választás megerősítéséhez.
  4. A Hitelesítés lapon válassza a Mentés lehetőséget az eszköztáron a módosítások mentéséhez vagy natív PostgreSQL-szerepkörök hozzáadásához.

Natív PostgreSQL-hitelesítés konfigurálása

Ha Postgres-szerepköröket szeretne hozzáadni a fürthöz, kövesse az alábbi lépéseket a Hitelesítés lapon:

  1. A PostgreSQL-hitelesítés szakaszban válassza a PostgreSQL-szerepkör hozzáadása lehetőséget.
  2. Adja meg a szerepkör nevét és jelszavát. Válassza a Mentés lehetőséget.
  3. A Hitelesítés lapon válassza a Mentés az eszköztáron lehetőséget a módosítások mentéséhez vagy a Microsoft Entra ID rendszergazdai felhasználók hozzáadásához.

A natív PostgreSQL-felhasználó a fürt koordinátor csomópontján jön létre, és az összes feldolgozó csomópontra propagálja. Az Azure Portalon létrehozott szerepkörök rendelkeznek a LOGIN attribútummal, ami azt jelenti, hogy valódi felhasználók, akik bejelentkezhetnek az adatbázisba.

Csatlakozás az Azure Cosmos for PostgreSQL-hez Microsoft Entra ID-hitelesítéssel

A Microsoft Entra ID integrációja olyan szabványos PostgreSQL-ügyféleszközökkel működik, mint a psql, amelyek nem ismerik a Microsoft Entra ID-t, és csak akkor támogatják a felhasználónevet és a jelszót, amikor a PostgreSQL-hez csatlakozik. Ilyen esetekben a Rendszer a Microsoft Entra ID-jogkivonatot adja át jelszóként.

A következő ügyfeleket teszteltük:

  • psql parancssor: A változóval PGPASSWORD adja át a jogkivonatot.
  • 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.

Az alábbi eljárásokkal hitelesítheti a Microsoft Entra ID-t Azure Cosmos DB for PostgreSQL-felhasználóként. Követheti a lépéseket az Azure Cloud Shellben, egy Azure-beli virtuális gépen vagy a helyi gépen.

Bejelentkezés a felhasználó Azure-előfizetésére

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 ID hitelesítési oldalára. Ehhez meg kell adnia a Microsoft Entra-azonosító felhasználónevét és jelszavát.

A hitelesítéshez használt felhasználói fióknév (például user@tenant.onmicrosoft.com) az, amelyhez a hozzáférési jogkivonat létrejön a következő lépésben.

A Microsoft Entra ID hozzáférési jogkivonatának lekérése

Az Azure CLI használatával szerezzen be egy hozzáférési jogkivonatot a Microsoft Entra-azonosítóval hitelesített felhasználó számára az Azure Cosmos for PostgreSQL eléréséhez. Példa:

az account get-access-token --resource https://token.postgres.cosmos.azure.com

A sikeres hitelesítés után a Microsoft Entra ID egy hozzáférési jogkivonatot ad vissza az aktuális Azure-előfizetéshez:

{
  "accessToken": "[TOKEN]",
  "expiresOn": "[expiration_date_and_time]",
  "subscription": "[subscription_id]",
  "tenant": "[tenant_id]",
  "tokenType": "Bearer"
}

A TOKEN egy Base64-sztring. Kódolja a hitelesített felhasználóra vonatkozó összes információt, és az Azure Cosmos DB for PostgreSQL szolgáltatáshoz van társítva. A jogkivonat legalább 5 percig érvényes, legfeljebb 90 percig. A expiresOn a jogkivonat tényleges lejárati idejét határozza meg.

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

Csatlakozáskor a legjobb, ha a hozzáférési jogkivonatot PostgreSQL-felhasználói jelszóként használja.

A psql parancssori ügyfél használata során a hozzáférési jogkivonatot át kell adni a PGPASSWORD környezeti változón. Ennek az az oka, hogy a hozzáférési jogkivonat túllépi a psql által közvetlenül elfogadható jelszóhosszt.

Íme egy Windows-példa:

set PGPASSWORD=<TOKEN value from the previous step>
$env:PGPASSWORD='<TOKEN value from the previous step>'

Íme egy Linux/macOS-példa:

export PGPASSWORD=<TOKEN value from the previous step>

Az előző két lépést parancshelyettesítéssel is kombinálhatja. A jogkivonat lekérése beágyazható egy változóba, és közvetlenül a környezeti változó értékeként PGPASSWORD adható át:

export PGPASSWORD=$(az account get-access-token --resource https://token.postgres.cosmos.azure.com --query "[accessToken]" -o tsv)

Feljegyzés

Győződjön meg arról, hogy a PGPASSWORD változó a Microsoft Entra ID hozzáférési jogkivonatra van állítva az előfizetéséhez a Microsoft Entra ID-hitelesítéshez. Ha postgres szerepkör-hitelesítést kell végeznie ugyanabból a munkamenetből, beállíthatja a PGPASSWORD-t a Postgres szerepkör jelszavára, vagy törölheti a PGPASSWORD változó értékét a jelszó interaktív beírásához. A hitelesítés a PGPASSWORD helytelen értékével meghiúsulna.

Most már kezdeményezhet kapcsolatot az Azure Cosmos DB for PostgreSQL-hez azzal a Microsoft Entra ID felhasználói fiókkal, amelyhez a hozzáférési jogkivonatot létrehozták. Ezt úgy tenné, mint általában a felhasználói fiókkal, mint felhasználóval, és a parancssorban a "jelszó" paraméter nélkül:

psql "host=mycluster.[uniqueID].postgres.cosmos.azure.com user=user@tenant.onmicrosoft.com dbname=[db_name] sslmode=require"

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

Ha Microsoft Entra ID-jogkivonattal szeretne csatlakozni a PgAdminhez, kövesse az alábbi lépéseket:

  1. Törölje a Csatlakozás most lehetőséget a kiszolgáló létrehozásakor.
  2. Adja meg a kiszolgáló adatait a Kapcsolat lapon, és mentse.
    1. Győződjön meg arról, hogy egy érvényes Microsoft Entra-azonosító felhasználó van megadva a felhasználónévben.
  3. A pgAdmin Objektum menüben válassza a Kiszolgáló csatlakoztatása lehetőséget.
  4. Amikor a rendszer kéri, adja meg a Microsoft Entra id token jelszavát.

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

  • user@tenant.onmicrosoft.com A Microsoft Entra ID-felhasználó neve.
  • Ügyeljen arra, hogy az Azure-felhasználó pontos helyesírását használja. A Microsoft Entra ID felhasználó- és csoportneve megkülönbözteti 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.
  • A hozzáférési jogkivonat érvényessége 5 perc és 90 perc között lehet. Az Azure Cosmos for PostgreSQL-be való bejelentkezés megkezdése előtt le kell szereznie a hozzáférési jogkivonatot.

Mostantól Microsoft Entra ID-hitelesítéssel hitelesíti az Azure Cosmos for PostgreSQL-kiszolgálón.

Natív PostgreSQL-szerepkörök kezelése

Ha a natív PostgreSQL-hitelesítés engedélyezve van a fürtön, a beépített "citus" szerepkörön kívül Postgres-szerepköröket is hozzáadhat és törölhet. Alaphelyzetbe állíthatja a jelszót, és módosíthatja a Postgres-jogosultságokat a natív szerepkörökhöz.

Natív PostgreSQL-felhasználói szerepkör törlése vagy jelszava módosítása

A felhasználó frissítéséhez látogasson el a fürt Hitelesítési lapjára, és válassza ki a felhasználó melletti három pontot. A három pont megnyit egy menüt a felhasználó törléséhez vagy a jelszó visszaállításához.

A citus szerepkör jogosultsággal rendelkezik, és nem törölhető. A citus szerepkör azonban le lenne tiltva, ha a fürthöz a "Csak Microsoft Entra ID-hitelesítés" hitelesítési módszer van kiválasztva.

Felhasználói szerepkörök jogosultságainak módosítása

Az új felhasználói szerepkörök általában korlátozott jogosultságokkal biztosítják az adatbázis-hozzáférést. A felhasználói jogosultságok módosításához használjon szabványos PostgreSQL-parancsokat egy olyan eszközzel, mint a PgAdmin vagy a psql. További információ: Csatlakozás fürthöz.

Ha például engedélyezni szeretné a PostgreSQL db_user olvasását mytable, adja meg az engedélyt:

GRANT SELECT ON mytable TO db_user;

Ha ugyanazokat az engedélyeket szeretné megadni a Microsoft Entra ID-szerepkörhöz user@tenant.onmicrosoft.com , használja a következő parancsot:

GRANT SELECT ON mytable TO "user@tenant.onmicrosoft.com";

Az Azure Cosmos DB for PostgreSQL propagálja az egytáblás GRANT-utasításokat a teljes fürtben, és alkalmazza őket az összes feldolgozó csomóponton. A rendszerszintű GRANT-eket is propagálja (például egy séma összes táblája esetében):

-- applies to the coordinator node and propagates to worker nodes for Postgres role db_user
GRANT SELECT ON ALL TABLES IN SCHEMA public TO db_user;

Vagy Microsoft Entra ID szerepkör esetén

-- applies to the coordinator node and propagates to worker nodes for Azure AD role user@tenant.onmicrosoft.com
GRANT SELECT ON ALL TABLES IN SCHEMA public TO "user@tenant.onmicrosoft.com";

Következő lépések