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


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

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: A Microsoft Entra-hitelesítés konfigurálásának ábrája.

  • 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.
  • 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.AllGroupMember.Read.AllApplication.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:

  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 rendszergazdai 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ében ajánlott aliast használni a csatlakozáskor:

Példa:

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

Feljegyzés

  1. 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.
  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 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
  • 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
  • PHP

    • mysqli-bővítmény: Támogatott

    • PDO_MYSQL illesztőprogram: Támogatott

Következő lépés