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.
- 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.
- 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.
- Keressen rá a "Microsoft Entra ID" kifejezésre az Azure Portalon.
- Nyissa meg a "Microsoft Entra ID" szolgáltatást.
- A Microsoft Entra ID szolgáltatás Áttekintés lapján keresse meg a "b4fa09d8-5da5-4352-83d9-05c2a44cf431" alkalmazásazonosítót.
- A keresési eredmények között válassza az "Azure Cosmos DB for PostgreSQL AAD Authentication" vállalati alkalmazást.
- Az Azure Cosmos DB for PostgreSQL AAD Authentication vállalati alkalmazásban válassza a Tulajdonságok lapot.
- Á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 "Engedélyezve a felhasználóknak a bejelentkezéshez") szerkesztéséhez a vállalati alkalmazástulajdonságok frissítéséhez jogosultságokkal rendelkező szerepkörökhöz szükséges engedélyek szükségesek. A szerepköröknek( például a vállalati alkalmazás tulajdonosának) rendelkezniük kell a "vállalati alkalmazástulajdonságok frissítésével" kapcsolatos engedelmességnek. További információ: A Microsoft Entra legkevésbé kiemelt szerepkörei feladatonként – Nagyvállalati alkalmazások.
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:
- A Microsoft Entra ID hitelesítési szakaszában válassza a Microsoft Entra ID-rendszergazdák hozzáadása lehetőséget.
- 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.
- Válassza a Kiválasztás lehetőséget a választás megerősítéséhez.
- 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:
- A PostgreSQL-hitelesítés szakaszban válassza a PostgreSQL-szerepkör hozzáadása lehetőséget.
- Adja meg a szerepkör nevét és jelszavát. Válassza a Mentés lehetőséget.
- 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:
- Törölje a Csatlakozás most lehetőséget a kiszolgáló létrehozásakor.
- Adja meg a kiszolgáló adatait a Kapcsolat lapon, és mentse.
- Győződjön meg arról, hogy egy érvényes Microsoft Entra-azonosító felhasználó van megadva a felhasználónévben.
- A pgAdmin Objektum menüben válassza a Kiszolgáló csatlakoztatása lehetőséget.
- 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
- A hitelesítés ismertetése az Azure Cosmos DB for PostgreSQL-ben
- Tekintse meg a Microsoft Entra id korlátait és korlátozásait az Azure Cosmos DB for PostgreSQL-ben
- A Microsoft Entra ID alapjainak áttekintése
- További információ az SQL GRANT-ről a PostgreSQL-ben