Microsoft Entra-hitelesítés beállítása az Azure Database for MySQL-hez – rugalmas kiszolgáló
Ez az oktatóanyag bemutatja, hogyan állíthatja be a Rugalmas Azure Database for MySQL-kiszolgálóHoz készült Microsoft Entra-hitelesítést.
Ebben az oktatóanyagban az alábbiakkal fog megismerkedni:
- Konfigurálja a Microsoft Entra rendszergazdát.
- Csatlakozzon rugalmas Azure Database for MySQL-kiszolgálóhoz a Microsoft Entra ID használatával.
Előfeltételek
Egy Azure-fiók, aktív előfizetéssel.
Ha nem rendelkezik Azure-előfizetéssel, a kezdés előtt hozzon létre egy ingyenes Azure-fiókot .
Feljegyzés
Ingyenes Azure-fiókkal mostantól 12 hónapig ingyenesen kipróbálhatja a rugalmas Azure Database for MySQL-kiszolgálót. További információ: Ingyenes Azure-fiók használata az Azure Database for MySQL rugalmas kiszolgáló ingyenes kipróbálásához.
Telepítse vagy frissítse az Azure CLI-t a legújabb verzióra. Lásd: Az Azure CLI telepítése.
A Microsoft Entra rendszergazdájának konfigurálása
Microsoft Entra Admin-felhasználó létrehozásához kövesse az alábbi lépéseket.
Az Azure Portalon válassza ki a Rugalmas Azure Database for MySQL-kiszolgáló azon példányát, amelyet engedélyezni szeretne a Microsoft Entra-azonosítóhoz.
A Biztonság panelen válassza a Hitelesítés lehetőséget:
Háromféle hitelesítés érhető el:
Csak MySQL-hitelesítés – Alapértelmezés szerint a MySQL a beépített mysql_native_password hitelesítési beépülő modult használja, amely a natív jelszókivonatolási módszerrel hajtja végre a hitelesítést
Csak Microsoft Entra-hitelesítés – Csak Microsoft Entra-fiókkal engedélyezi a hitelesítést. Letiltja mysql_native_password hitelesítést, és bekapcsolja a kiszolgálóparaméter aad_auth_only
MySQL- és Microsoft Entra-hitelesítés – Engedélyezi a hitelesítést natív MySQL-jelszóval vagy Microsoft Entra-fiókkal. A kiszolgálóparaméter kikapcsolása aad_auth_only
Identitás kiválasztása – Felhasználó által hozzárendelt felügyelt identitás kiválasztása/hozzáadása. Az alábbi engedélyek szükségesek ahhoz, hogy az UMI a Microsoft Graphból olvashasson kiszolgálói identitásként. Másik lehetőségként adja meg a felhasználó által hozzárendelt felügyelt identitásnak a Címtárolvasók szerepkört.
- User.Read.All: Lehetővé teszi a Microsoft Entra felhasználói adatainak elérését.
- GroupMember.Read.All: Lehetővé teszi a Microsoft Entra csoportinformációinak elérését.
- Application.Read.ALL: Lehetővé teszi a Microsoft Entra szolgáltatásnév (alkalmazás) információinak elérését.
Fontos
Ezeket az engedélyeket csak olyan felhasználó adhatja meg, aki legalább kiemelt szerepkör-rendszergazdai szerepkörrel rendelkezik.
Válasszon ki egy érvényes Microsoft Entra-felhasználót vagy egy Microsoft Entra-csoportot az ügyfélbérlében, hogy Microsoft Entra-rendszergazda legyen. A Microsoft Entra-hitelesítés támogatásának engedélyezése után a Microsoft Entra-rendszergazdák biztonsági tagokként hozzáadhatók a Microsoft Entra-felhasználók MySQL-kiszolgálóhoz való hozzáadásának engedélyével.
Feljegyzés
MySQL-kiszolgálónként csak egy Microsoft Entra-rendszergazda hozható létre, és egy másik kijelölés felülírja a kiszolgálóhoz konfigurált meglévő Microsoft Entra-rendszergazdat.
Engedélyek megadása a felhasználó által hozzárendelt felügyelt identitás számára
Az alábbi PowerShell-példaszkript megadja az UMI-hez szükséges engedélyeket. Ez a minta engedélyeket rendel az UMI-hez umiservertest
.
A szkript futtatásához globális rendszergazdai vagy kiemelt szerepkör-rendszergazdai szerepkörrel kell bejelentkeznie felhasználóként.
A szkript engedélyt ad az User.Read.All
GroupMember.Read.All
Application.Read.ALL
UMI-nek a Microsoft Graph eléréséhez.
# Script to assign permissions to the UMI "umiservertest"
import-module AzureAD
$tenantId = '<tenantId>' # Your Azure AD tenant ID
Connect-AzureAD -TenantID $tenantId
# Log in as a user with a "Global Administrator" or "Privileged Role Administrator" role
# Script to assign permissions to an existing UMI
# The following Microsoft Graph permissions are required:
# User.Read.All
# GroupMember.Read.All
# Application.Read.ALL
# Search for Microsoft Graph
$AAD_SP = Get-AzureADServicePrincipal -SearchString "Microsoft Graph";
$AAD_SP
# Use Microsoft Graph; in this example, this is the first element $AAD_SP[0]
#Output
#ObjectId AppId DisplayName
#-------- ----- -----------
#47d73278-e43c-4cc2-a606-c500b66883ef 00000003-0000-0000-c000-000000000000 Microsoft Graph
#44e2d3f6-97c3-4bc7-9ccd-e26746638b6d 0bf30f3b-4a52-48df-9a82-234910c4a086 Microsoft Graph #Change
$MSIName = "<managedIdentity>"; # Name of your user-assigned
$MSI = Get-AzureADServicePrincipal -SearchString $MSIName
if($MSI.Count -gt 1)
{
Write-Output "More than 1 principal found, please find your principal and copy the right object ID. Now use the syntax $MSI = Get-AzureADServicePrincipal -ObjectId <your_object_id>"
# Choose the right UMI
Exit
}
# If you have more UMIs with similar names, you have to use the proper $MSI[ ]array number
# Assign the app roles
$AAD_AppRole = $AAD_SP.AppRoles | Where-Object {$_.Value -eq "User.Read.All"}
New-AzureADServiceAppRoleAssignment -ObjectId $MSI.ObjectId -PrincipalId $MSI.ObjectId -ResourceId $AAD_SP.ObjectId -Id $AAD_AppRole.Id
$AAD_AppRole = $AAD_SP.AppRoles | Where-Object {$_.Value -eq "GroupMember.Read.All"}
New-AzureADServiceAppRoleAssignment -ObjectId $MSI.ObjectId -PrincipalId $MSI.ObjectId -ResourceId $AAD_SP.ObjectId -Id $AAD_AppRole.Id
$AAD_AppRole = $AAD_SP.AppRoles | Where-Object {$_.Value -eq "Application.Read.All"}
New-AzureADServiceAppRoleAssignment -ObjectId $MSI.ObjectId -PrincipalId $MSI.ObjectId -ResourceId $AAD_SP.ObjectId -Id $AAD_AppRole.Id
A szkript utolsó lépéseiben, ha több hasonló nevű UMI-vel rendelkezik, a megfelelő $MSI[ ]array
számot kell használnia. Például: $AAD_SP.ObjectId[0]
.
Felhasználó által hozzárendelt felügyelt identitás engedélyeinek ellenőrzése
Az UMI engedélyeinek ellenőrzéséhez nyissa meg az Azure Portalt. A Microsoft Entra ID erőforrásban nyissa meg a Nagyvállalati alkalmazásokat. Válassza az Összes alkalmazástípus lehetőséget, és keresse meg a létrehozott UMI-t.
Válassza ki az UMI-t, és lépjen az Engedélyek beállításokra a Biztonság területen.
Miután engedélyezte az engedélyeket az UMI-nek, az összes kiszolgáló számára engedélyezve lesznek, amelyek kiszolgálói identitásként hozzárendelt UMI-vel lettek létrehozva.
Csatlakozás rugalmas Azure Database for MySQL-kiszolgálóhoz a Microsoft Entra ID használatával
1 – 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.)
Jelentkezzen be az Azure-fiókba az az login paranccsal. Jegyezze fel az Azonosító tulajdonságot, amely az Azure-fiók előfizetés-azonosítójára hivatkozik:
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.
Ha több előfizetéssel rendelkezik, válassza ki a megfelelő előfizetést az az account set paranccsal:
az account set --subscription \<subscription id\>
2 – 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 a rugalmas Azure Database for MySQL-kiszolgáló 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 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 Base 64 sztring, amely a hitelesített felhasználó összes információját kódolja, és 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 a rugalmas Azure Database for MySQL-kiszolgálóra való bejelentkezés megkezdése előtt szerezze be a hozzáférési jogkivonatot.
- A jogkivonat érvényességét a következő PowerShell-paranccsal tekintheti meg.
$accessToken.ExpiresOn.DateTime
3 – 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 fenti módszerrel lekérheti a jogkivonatot olyan GUI-ügyfelekkel, mint a MySQL workbench.
Csatlakozás rugalmas Azure Database for MySQL-kiszolgálóhoz a MySQL CLI használatával
A parancssori felület használatakor a következő rövidítéssel csatlakozhat:
Példa (Linux/macOS):
mysql -h mydb.mysql.database.azure.com \
--user user@tenant.onmicrosoft.com \
--enable-cleartext-plugin \
--password=`az account get-access-token --resource-type oss-rdbms --output tsv --query accessToken`
Példa (PowerShell):
mysql -h mydb.mysql.database.azure.com \
--user user@tenant.onmicrosoft.com \
--enable-cleartext-plugin \
--password=$(az account get-access-token --resource-type oss-rdbms --output tsv --query accessToken)
mysql -h mydb.mysql.database.azure.com \
--user user@tenant.onmicrosoft.com \
--enable-cleartext-plugin \
--password=$((Get-AzAccessToken -ResourceUrl https://ossrdbms-aad.database.windows.net).Token)
Csatlakozás rugalmas Azure Database for MySQL-kiszolgálóhoz a MySQL Workbench használatával
- Indítsa el a MySQL Workbench-et, és válassza az Adatbázis lehetőséget, majd válassza a Csatlakozás az adatbázishoz lehetőséget.
- A gazdagépnév mezőbe írja be a MySQL teljes tartománynevét, például mysql.database.azure.com.
- A felhasználónév mezőbe írja be a MySQL Microsoft Entra rendszergazda nevét. Például: user@tenant.onmicrosoft.com.
- A jelszó mezőben válassza az Áruház a tárolóban lehetőséget, és illessze be a hozzáférési jogkivonatot a fájlból, például C:\temp\MySQLAccessToken.txt.
- Válassza ki a speciális lapot, és ellenőrizze, hogy engedélyezi-e a Cleartext Authentication beépülő modult.
- Az adatbázishoz való csatlakozáshoz kattintson az OK gombra.
Fontos szempontok a csatlakozáskor
user@tenant.onmicrosoft.com
annak a Microsoft Entra-felhasználónak vagy csoportnak a neve, amelyhez csatlakozni szeretne- Ü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
- Ha csoportként csatlakozik, csak a csoport nevét használja (például
GroupName
) - Ha a név szóközöket tartalmaz, használja
\
az egyes szóközök előtt a feloldásukhoz
Feljegyzés
Az "enable-cleartext-plugin" beállítás – hasonló konfigurációt kell használnia más ügyfelekkel, hogy a jogkivonat kivonat nélkül legyen elküldve a kiszolgálónak.
Mostantól microsoft Entra-hitelesítéssel hitelesíti a rugalmas MySQL-kiszolgálón.
Egyéb Microsoft Entra-rendszergazdai parancsok
Kiszolgáló Active Directory-rendszergazdájának kezelése
az mysql flexible-server ad-admin
Active Directory-rendszergazda létrehozása
az mysql flexible-server ad-admin create
Példa: Active Directory-rendszergazda létrehozása ""john@contoso.com felhasználóval, rendszergazdaazonosító: "000000000-0000-0000-0000-00000000000" és "test-identity" identitás
az mysql flexible-server ad-admin create -g testgroup -s testsvr -u john@contoso.com -i 00000000-0000-0000-0000-000000000000 --identity test-identity
Active Directory-rendszergazda törlése
az mysql flexible-server ad-admin delete
Példa: Active Directory-rendszergazda törlése
az mysql flexible-server ad-admin delete -g testgroup -s testsvr
Az összes Active Directory-rendszergazda listázása
az mysql flexible-server ad-admin list
Példa: Active Directory-rendszergazdák listázása
az mysql flexible-server ad-admin list -g testgroup -s testsvr
Active Directory-rendszergazda lekérése
az mysql flexible-server ad-admin show
Példa: Active Directory-rendszergazda lekérése
az mysql flexible-server ad-admin show -g testgroup -s testsvr
Várjon, amíg az Active Directory rendszergazdája megfelel bizonyos feltételeknek
az mysql flexible-server ad-admin wait
Példák:
- Várjon, amíg az Active Directory-rendszergazda létezik
az mysql flexible-server ad-admin wait -g testgroup -s testsvr --exists
- Várja meg, amíg az Active Directory-rendszergazda törlődik
az mysql flexible-server ad-admin wait -g testgroup -s testsvr –deleted
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:
- 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 MySQL-példányba Microsoft Entra rendszergazdai felhasználóként.
- 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ében ajánlott aliast használni a csatlakozáskor:
Példa:
CREATE AADUSER 'userWithLongName@yourtenant.onmicrosoft.com' as 'userDefinedShortName';
Feljegyzés
- A MySQL figyelmen kívül hagyja a bevezető és záró szóközöket, így a felhasználónév nem rendelkezhet bevezető vagy záró szóközökkal.
- 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 a pontos 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 csoporttagok a személyes hozzáférési jogkivonataikat használják, de felhasználónévként megadott csoportnévvel jelentkeznek be.
Kompatibilitás az alkalmazásillesztőkkel
A legtöbb illesztőprogram támogatott; Ügyeljen azonban arra, hogy a jelszót tiszta szövegben 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
- Connector/J (mysql-connector-java): Támogatott, a beállítást kell használnia
useSSL
- Connector/J (mysql-connector-java): Támogatott, a beállítást kell használnia
Python
- Összekötő/Python: Támogatott
Ruby
- mysql2: Támogatott
.NET
- mysql-connector-net: Támogatott, beépülő modult kell hozzáadni a mysql_clear_password
- mysql-net/MySqlConnector: Támogatott
Node.js
- mysqljs: Nem támogatott (nem küldi el a jogkivonatot világos szövegben javítás nélkül)
- node-mysql2: Támogatott
Perl
- DBD::mysql: Támogatott
- Net::MySQL: Nem támogatott
Go
- go-sql-driver: Támogatott, hozzáadás
?tls=true&allowCleartextPasswords=true
kapcsolati sztring
- go-sql-driver: Támogatott, hozzáadás
PHP
mysqli-bővítmény: Támogatott
PDO_MYSQL illesztőprogram: Támogatott