Share via


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

A következőkre vonatkozik: Azure Database for MySQL – Önálló kiszolgáló

Fontos

Az önálló Azure Database for MySQL-kiszolgáló a kivonási útvonalon van. Határozottan javasoljuk, hogy frissítsen rugalmas Azure Database for MySQL-kiszolgálóra. További információ a rugalmas Azure Database for MySQL-kiszolgálóra való migrálásról: Mi történik az önálló Azure Database for MySQL-kiszolgálóval?

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

Fontos

A Microsoft Entra-hitelesítés csak a MySQL 5.7-hez és újabb verzióhoz érhető el.

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

Csak egy Microsoft Entra Rendszergazda felhasználó hozhat létre/engedélyezhet felhasználókat a Microsoft Entra ID-alapú hitelesítéshez. Microsoft Entra Rendszergazda-felhasználó létrehozásához kövesse az alábbi lépéseket

  1. Az Azure Portalon válassza ki a Microsoft Entra-azonosítóhoz engedélyezni kívánt Azure Database for MySQL-példányt.
  2. A Gépház területen válassza az Active Directory Rendszergazda:

set Microsoft Entra administrator

  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 MySQL-kiszolgálóhoz teljes rendszergazdai engedélyekkel.

MySQL-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.

A rendszergazda konfigurálása után most már bejelentkezhet:

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

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

authentication flow

A Microsoft Entra-integrációt úgy terveztük meg, hogy olyan gyakori MySQL-eszközökkel működjön, mint a mysql CLI, amelyek nem ismerik a Microsoft Entra-t, és csak a felhasználónév és a jelszó megadását támogatják a MySQL-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:

  • MySQLWorkbench
  • MySQL CLI

Teszteltük a leggyakoribb alkalmazásillesztőket is, a részleteket az oldal végén tekintheti meg.

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.

1. lépés: Hitelesítés a Microsoft Entra-azonosítóval

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 MySQL 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 PowerShell használatával a következő paranccsal szerezheti be a hozzáférési jogkivonatot:

$accessToken = Get-AzAccessToken -ResourceUrl https://ossrdbms-aad.database.windows.net
$accessToken.Token | out-file C:\temp\MySQLAccessToken.txt

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 MySQL szolgáltatásra irányul.

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 MySQL-be. A jogkivonat érvényességét a következő PowerShell-paranccsal tekintheti meg.

$accessToken.ExpiresOn.DateTime

3. lépés: Jogkivonat használata jelszóként a MySQL-ben való bejelentkezéshez

Csatlakozáskor a hozzáférési jogkivonatot kell használnia MySQL-felhasználói jelszóként. A grafikus felhasználói felület (például MySQLWorkbench) használatakor a fenti módszerrel lekérheti a jogkivonatot.

A MySQL parancssori felület használata

A parancssori felület használatakor ezt a rövid útmutatót használhatja a csatlakozáshoz:

Példa (Linux/macOS):

mysql -h mydb.mysql.database.azure.com \ 
  --user user@tenant.onmicrosoft.com@mydb \ 
  --enable-cleartext-plugin \ 
  --password=`az account get-access-token --resource-type oss-rdbms --output tsv --query accessToken`

A MySQL Workbench használata

  • Indítsa el a MySQL Workbench-et, és kattintson az Adatbázis lehetőségre, majd a "Csatlakozás adatbázisba" elemre
  • A gazdagépnév mezőbe írja be a MySQL FQDN-t, például: mydb.mysql.database.azure.com
  • A felhasználónév mezőbe írja be a MySQL Microsoft Entra rendszergazdai nevét, és fűzze hozzá a MySQL-kiszolgáló nevével, nem pedig a teljes tartománynévvel, user@tenant.onmicrosoft.compéldául @mydb
  • A jelszó mezőben kattintson a "Tárolóban tárolva" elemre, és illessze be a hozzáférési jogkivonatot a következő fájlból: C:\temp\MySQLAccessToken.txt
  • Kattintson a speciális fülre, és győződjön meg arról, hogy a "Cleartext Authentication Beépülő modul engedélyezése" jelölőnégyzetet bejelöli
  • Kattintson az OK gombra az adatbázishoz való csatlakozáshoz

Fontos szempontok a csatlakozáskor:

  • user@tenant.onmicrosoft.com annak a Microsoft Entra-felhasználónak vagy csoportnak a neve, amelyhez csatlakozni kíván
  • Mindig fűzze hozzá a kiszolgáló nevét a Microsoft Entra felhasználó/csoport neve után (pl. @mydb)
  • Ügyeljen arra, hogy a Microsoft Entra-felhasználó vagy -csoport neve pontosan úgy legyen beírva, ahogyan a microsoft entrai felhasználó vagy csoport neve be van írva
  • 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 használja (pl. GroupName@mydb)
  • Ha a név szóközöket tartalmaz, használja \ az egyes szóközök előtt a feloldásukhoz

Jegyezze fel az "enable-cleartext-plugin" beállítást – hasonló konfigurációt kell használnia más ügyfelekkel, hogy a jogkivonat kivonat nélkül legyen elküldve a kiszolgálónak.

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

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

Ha Microsoft Entra-felhasználót szeretne hozzáadni az Azure Database for MySQL-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 MySQL-példányba Microsoft Entra Rendszergazda felhasználóként.
  3. Hozzon létre egy felhasználót <user>@yourtenant.onmicrosoft.com az Azure Database for MySQL-ben.

Példa

CREATE AADUSER 'user1@yourtenant.onmicrosoft.com';

A 32 karakternél hosszabb felhasználónevek esetén ajánlott inkább aliast használni a csatlakozáskor:

Példa:

CREATE AADUSER 'userWithLongName@yourtenant.onmicrosoft.com' as 'userDefinedShortName'; 

Megjegyzés:

  1. A MySQL figyelmen kívül hagyja a kezdő és záró szóközöket, így a felhasználónév nem rendelkezhet bevezető vagy záró szóközökkal.
  2. 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 MySQL-adatbázis objektumainak eléréséhez. A felhasználónak manuálisan kell megadnia a szükséges engedélyeket.

Microsoft Entra-csoportok létrehozása az Azure Database for MySQL-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 AADUSER 'Prod_DB_Readonly';

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.

Jogkivonat érvényesítése

A Microsoft Entra-hitelesítés az Azure Database for MySQL-ben biztosítja, hogy a felhasználó létezik a MySQL-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 MySQL-erőforráshoz tartozik (és nem egy másik Azure-erőforráshoz)

Kompatibilitás az alkalmazásillesztőkkel

A legtöbb illesztőprogram támogatott, azonban ügyeljen arra, hogy a jelszót tiszta szöveggel küldje el, így a jogkivonat módosítás nélkül lesz elküldve.

  • C/C++
    • libmysqlclient: Támogatott
    • mysql-connector-c++: Támogatott
  • Java
    • Csatlakozás or/J (mysql-connector-java): Támogatott, a beállítást kell használnia useSSL
  • Python
    • Csatlakozás or/Python: Támogatott
  • Ruby
    • mysql2: Támogatott
  • .NETTÓ
    • mysql-connector-net: Támogatott, beépülő modult kell hozzáadni a mysql_clear_password
    • mysql-net/MySql Csatlakozás or: Támogatott
  • Node.js
    • mysqljs: Nem támogatott (nem küld jogkivonatot tiszta szövegben javítás nélkül)
    • node-mysql2: Támogatott
  • Perl
    • DBD::mysql: Támogatott
    • Net::MySQL: Nem támogatott
  • Megy
    • go-sql-driver: Támogatott, hozzáadás ?tls=true&allowCleartextPasswords=true kapcsolati sztring

További lépések