Nota
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare ad accedere o modificare le directory.
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare a modificare le directory.
Questa esercitazione illustra come configurare l'autenticazione di Microsoft Entra per Database di Azure per MySQL Flexible Server.
In questa esercitazione apprenderai a:
- Configurare l'amministratore Microsoft Entra.
- Connettersi a Database di Azure per MySQL - Server flessibile tramite Microsoft Entra ID.
Prerequisiti
- Un account Azure con una sottoscrizione attiva.
- Se non hai un abbonamento di Azure, crea un account Azure gratuito prima di iniziare.
- Installare o aggiornare l'interfaccia della riga di comando di Azure alla versione più recente. Vedi Installare interfaccia della riga di comando di Azure.
Configurare l'amministratore Microsoft Entra
Per creare un utente amministratore di Microsoft Entra, seguire questa procedura:
Nel portale di Azure selezionare l'istanza del server flessibile di Database di Azure per MySQL che si vuole abilitare per Microsoft Entra ID.
Nel riquadro Sicurezza selezionare Autenticazione:
Scegliere tra tre tipi di autenticazione:
-
Solo autenticazione mySQL : per impostazione predefinita, MySQL usa il plug-in
mysql_native_passworddi autenticazione predefinito, che esegue l'autenticazione usando il metodo di hash delle password nativo. -
Solo autenticazione Microsoft Entra - Consente l'autenticazione solo tramite un account Microsoft Entra.
mysql_native_passwordDisabilita l'autenticazione e attiva il parametroaad_auth_onlydel server . -
Autenticazione di MySQL e Microsoft Entra: consente l'autenticazione usando una password MySQL nativa o un account Microsoft Entra.
Disattiva il parametro
aad_auth_onlydel server .
-
Solo autenticazione mySQL : per impostazione predefinita, MySQL usa il plug-in
Selezionare Identità : selezionare o aggiungere un'identità gestita assegnata dall'utente. Per consentire all'UAMI di leggere da Microsoft Graph come identità del server, sono necessarie le autorizzazioni seguenti. In alternativa, assegnare all'identità gestita assegnata dall'utente, il ruolo Directory Readers.
- User.Read.All: consente l'accesso alle informazioni utente Microsoft Entra.
- GroupMember.Read.All: consente l'accesso alle informazioni del gruppo Microsoft Entra.
- Application.Read.ALL: consente l'accesso alle informazioni dell'entità servizio (applicazione) di Microsoft Entra.
Importante
Solo un utente con almeno il ruolo di Amministratore di Ruolo con Privilegi può concedere queste autorizzazioni.
Selezionare un utente Microsoft Entra valido o un gruppo Microsoft Entra nel tenant per essere amministratore di Microsoft Entra per il server di database.
Note
È possibile creare un solo amministratore Microsoft Entra per ogni server MySQL. Selezionando un altro amministratore viene sovrascritto l'amministratore Microsoft Entra esistente configurato per il server.
Concedere le autorizzazioni all'identità gestita assegnata dall'utente
Lo script di PowerShell di esempio seguente concede le autorizzazioni necessarie per un'identità gestita assegnata dall'utente. In questo esempio vengono assegnate autorizzazioni a UMI umiservertest.
Per eseguire lo script, accedi come utente con il ruolo di Amministratore ruolo con privilegi.
Lo script concede le autorizzazioni User.Read.All, GroupMember.Read.All e Application.Read.ALL a un UMI per accedere a Microsoft Graph.
# Script to assign permissions to the UMI "umiservertest"
import-module Az.Resources
import-module Microsoft.Entra
$tenantId = '<tenantId>' # Your Azure AD tenant ID
Connect-Entra -TenantID $tenantId
# Log in as a user with a "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-AzADServicePrincipal -DisplayNameStartsWith "Microsoft Graph"
$AAD_SP
# Use Microsoft Graph; in this example, this is the first element $AAD_SP[0]
#Output
#ObjectId AppId DisplayName
#-------- ----- -----------
#44444444-4444-4444-4444-444444444444 00000003-0000-0000-c000-000000000000 Microsoft Graph
#44444444-4444-4444-4444-444444444444 0bf30f3b-4a52-48df-9a82-234910c4a086 Microsoft Graph #Change
$MSIName = "<managedIdentity>"; # Name of your user-assigned
$MSI = Get-AzADServicePrincipal -DisplayNameStartsWith $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.AppRole | Where-Object {$_.Value -eq "User.Read.All"}
New-AzADServicePrincipalAppRoleAssignment -ServicePrincipalId $MSI.Id -ResourceId $AAD_SP.Id -AppRoleId $AAD_AppRole.Id
$AAD_AppRole = $AAD_SP.AppRole | Where-Object {$_.Value -eq "GroupMember.Read.All"}
New-AzADServicePrincipalAppRoleAssignment -ServicePrincipalId $MSI.Id -ResourceId $AAD_SP.Id -AppRoleId $AAD_AppRole.Id
$AAD_AppRole = $AAD_SP.AppRole | Where-Object {$_.Value -eq "Application.Read.All"}
New-AzADServicePrincipalAppRoleAssignment -ServicePrincipalId $MSI.Id -ResourceId $AAD_SP.Id -AppRoleId $AAD_AppRole.Id
Nei passaggi finali dello script, se sono presenti più UMI con nomi simili, è necessario usare il numero corretto $MSI[ ]array . Un esempio è $AAD_SP.ObjectId[0].
Controllare le autorizzazioni per l'identità gestita assegnata dall'utente
Per controllare le autorizzazioni per un UMI, vai al portale Azure. Nella risorsa Microsoft Entra ID, selezionare Applicazioni aziendali. Selezionare Tutte le applicazioni per Tipo di Applicazione e cercare l'UMI che avete creato.
Selezionare l'identità gestita assegnata dall'utente e andare alle impostazioni Autorizzazioni in Sicurezza.
Quando concedi le autorizzazioni all'UMI, queste si applicano a tutti i server che crei con l'UMI assegnata come identità del server.
Connettersi al server flessibile di Database di Azure per MySQL usando Microsoft Entra ID
1 - Eseguire l'autenticazione con Microsoft Entra ID
Per iniziare, eseguire l'autenticazione con Microsoft Entra ID usando lo strumento interfaccia della riga di comando di Azure. Questo passaggio non è obbligatorio in Azure Cloud Shell.
Accedere all'account Azure usando il comando az login . Si noti la proprietà ID, che fa riferimento all'ID della sottoscrizione per l'account Azure.
az login
Il comando avvia una finestra del browser nella pagina di autenticazione di Microsoft Entra. Richiede di specificare l'ID utente e la password di Microsoft Entra.
Se si hanno più sottoscrizioni, scegliere la sottoscrizione appropriata usando il
az account setcomando :az account set --subscription \<subscription id\>
2 - Recuperare il token di accesso di Microsoft Entra
Richiama lo strumento interfaccia della riga di comando di Azure per ottenere un token di accesso per l'utente autenticato con Microsoft Entra del passaggio 1. Usa questo token per accedere ad Database di Azure per MySQL Flexible Server.
interfaccia della riga di comando di Azure esempio per ottenere il token di accesso:
az account get-access-token --resource-type oss-rdbmsAzure PowerShell esempio per ottenere il token di accesso:
$accessToken = Get-AzAccessToken -ResourceUrl https://ossrdbms-aad.database.windows.net $accessToken.Token | out-file C:\temp\MySQLAccessToken.txt
Usare quanto segue ResourceUrl in PowerShell nel caso in cui il cloud di destinazione sia diverso.
- Governo USA:
https://ossrdbms-aad.database.usgovcloudapi.net - Cina:
https://ossrdbms-aad.database.chinacloudapi.cn
Microsoft Entra restituisce un token di accesso:
{
"accessToken": "TOKEN",
"expiresOn": "...",
"subscription": "...",
"tenant": "...",
"tokenType": "Bearer"
}
Il token è una stringa base 64 che codifica tutte le informazioni sull'utente autenticato ed è destinata al servizio Database di Azure per MySQL.
Il token di accesso è valido da 5 a 60 minuti. Ottieni il token di accesso prima di accedere ad Database di Azure per MySQL Server flessibile.
- Usare il comando di PowerShell seguente per visualizzare la validità del token.
$accessToken.ExpiresOn.DateTime
3 - Usare un token come password per accedere con MySQL
Usare il token di accesso come password utente MySQL durante la connessione.
Connettersi al server flessibile Database di Azure per MySQL tramite l'interfaccia della riga di comando di MySQL
Quando usi la CLI, usa questa forma abbreviata per connetterti:
Esempio (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`
Esempio (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)
Connettersi ad Database di Azure per MySQL Flexible Server usando MySQL Workbench
- Avviare MySQL Workbench e selezionare l'opzione Database e quindi selezionare Connetti al database.
- Nel campo nome host immettere il nome di dominio completo MySQL, ad esempio
mysql.database.azure.com. - Nel campo nome utente immettere il nome amministratore di Microsoft Entra di MySQL. Ad esempio:
user@tenant.onmicrosoft.com. - Nel campo della password, seleziona Salva nel vault e incolla il token di accesso dal file, ad esempio
C:\temp\MySQLAccessToken.txt. - Selezionare la scheda Avanzate e assicurarsi di spuntare Abilita il plug-in Autenticazione Cleartext.
- Selezionare OK per connettersi al database.
Considerazioni importanti per la connessione
-
user@tenant.onmicrosoft.comè il nome dell'utente o del gruppo Microsoft Entra con cui ci si connette. - Usare l'ortografia esatta per il nome dell'utente o del gruppo Microsoft Entra.
- I nomi di utenti e gruppi in Microsoft Entra fanno distinzione tra maiuscole e minuscole.
- Quando ci si connette come gruppo, usare solo il nome del gruppo , ad esempio
GroupName. - Se il nome contiene spazi, usare
\prima di ogni spazio per eseguire l'escape.
Note
Per l'impostazione enable-cleartext-plugin , usare una configurazione simile con altri client per assicurarsi che il token venga inviato al server senza che venga eseguito l'hashing.
A questo momento si è autenticati nel server flessibile MySQL usando l'autenticazione Microsoft Entra.
Altri comandi di amministrazione di Microsoft Entra
Gestire l'amministratore di Active Directory del server
az mysql flexible-server ad-adminCreare un amministratore di Active Directory
az mysql flexible-server ad-admin createEsempio: Creare un amministratore di Active Directory con l'utente
john@contoso.com, l'ID dell'amministratore00000000-0000-0000-0000-000000000000e l'identitàtest-identityaz mysql flexible-server ad-admin create -g testgroup -s testsvr -u john@contoso.com -i 00000000-0000-0000-0000-000000000000 --identity test-identityEliminare un amministratore di Active Directory
az mysql flexible-server ad-admin deleteEsempio: Eliminare l'amministratore di Active Directory
az mysql flexible-server ad-admin delete -g testgroup -s testsvrElencare tutti gli amministratori di Active Directory
az mysql flexible-server ad-admin listEsempio: Elencare gli amministratori di Active Directory
az mysql flexible-server ad-admin list -g testgroup -s testsvrOttenere un amministratore di Active Directory
az mysql flexible-server ad-admin showEsempio: Ottenere l'amministratore di Active Directory
az mysql flexible-server ad-admin show -g testgroup -s testsvrAttendere che l'amministratore di Active Directory soddisfi determinate condizioni
az mysql flexible-server ad-admin waitEsempi:
Attendere che l'amministratore di Active Directory esista
az mysql flexible-server ad-admin wait -g testgroup -s testsvr --existsAttendere l'eliminazione dell'amministratore di Active Directory
az mysql flexible-server ad-admin wait -g testgroup -s testsvr -deleted
Creare utenti di Microsoft Entra in Database di Azure per MySQL
Per aggiungere un utente Microsoft Entra al database Database di Azure per MySQL, completare i passaggi seguenti dopo la connessione:
- Assicurarsi che l'utente Microsoft Entra sia un utente
<user>@yourtenant.onmicrosoft.comvalido nel tenant Microsoft Entra. - Accedi all'istanza di Database di Azure per MySQL come utente amministratore di Microsoft Entra.
- Creare un utente
<user>@yourtenant.onmicrosoft.comin Database di Azure per MySQL.
Esempio:
CREATE AADUSER 'user1@yourtenant.onmicrosoft.com';
Per i nomi utente che superano i 32 caratteri, usare un alias anziché il nome utente completo.
Esempio:
CREATE AADUSER 'userWithLongName@yourtenant.onmicrosoft.com' as 'userDefinedShortName';
Note
- MySQL ignora gli spazi iniziali e finali, quindi il nome utente non deve contenere spazi iniziali o finali.
- L'autenticazione di un utente tramite Microsoft Entra ID non concede all'utente alcuna autorizzazione per accedere agli oggetti all'interno del database di Database di Azure per MySQL. È necessario concedere all'utente le autorizzazioni necessarie manualmente.
Creare gruppi di Microsoft Entra nel database Azure per MySQL
Per consentire a un gruppo di Microsoft Entra di accedere al database, usare lo stesso meccanismo degli utenti, ma specificare il nome del gruppo:
Esempio:
CREATE AADUSER 'Prod_DB_Readonly';
Quando i membri del gruppo accedono, usano i token di accesso personali, ma accedono usando il nome del gruppo come nome utente.
Compatibilità con i driver dell'applicazione
La maggior parte dei driver è supportata. Tuttavia, assicurarsi di usare le impostazioni per l'invio della password in testo non crittografato, in modo che il token non venga modificato.
C/C++
- libmysqlclient: supportato
- mysql-connector-c++: Supportato
Java
- Connector/J (mysql-connector-java): supportato, deve usare l'impostazione
useSSL
- Connector/J (mysql-connector-java): supportato, deve usare l'impostazione
Python
- Connettore/Python: Supportato
Ruby
- mysql2: supportato
.NET
- mysql-connector-net: supportato, è necessario aggiungere plug-in per mysql_clear_password
- mysql-net/MySqlConnector: supportato
Node.js
- mysqljs: non supportato (non invia il token in testo non crittografato senza patch)
- node-mysql2: supportato
Perl
- DBD::mysql: Supportato
- Net::MySQL: non supportato
Go
- go-sql-driver: supportato, aggiungere
?tls=true&allowCleartextPasswords=truealla stringa di connessione
- go-sql-driver: supportato, aggiungere
PHP
mysqliestensione: supportataDriver PDO_MYSQL: supportato
Usare il gruppo di destinatari del token di Microsoft Entra consigliato
Il server flessibile di Database di Azure per MySQL sta effettuando la transizione dall'implementazione legacy dell'autenticazione Microsoft Entra basata su JWT a Microsoft Identity Security Essentials (MISE). Il server flessibile MySQL convalida Microsoft Entra token di accesso durante l'autenticazione. Per migliorare la sicurezza e garantire un comportamento di autenticazione coerente nel servizio, gli aggiornamenti futuri della piattaforma applicano una convalida più rigorosa dei gruppi di destinatari dei token.
A partire da ottobre 2026, gli aggiornamenti futuri del servizio non supporterà le applicazioni che acquisiscono token per gruppi di destinatari diversi da ossrdbms. Dopo l'abilitazione della convalida del gruppo di destinatari più restrittiva, le connessioni che presentano token con gruppi di destinatari non supportati avranno esito negativo. È possibile connettersi al server flessibile Database di Azure per MySQL solo dopo aver aggiornato il token di accesso per usare il gruppo di destinatari supportato.
Richiedere un token di accesso aggiornato per le applicazioni usando il comando seguente:
az account get-access-token --resource-type oss-rdbms
Se si rilasciano i token a livello di codice, usare l'ambito corretto nel frammento di codice seguente:
String scope = https://ossrdbms-aad.database.<cloud-domain>/.default AccessToken token = await credential.GetTokenAsync(new TokenRequestContext([scope]));
Usare i valori di ambito seguenti a seconda del cloud di destinazione:
- Pubblico:
https://ossrdbms-aad.database.windows.net/.default - Governo USA:
https://ossrdbms-aad.database.usgovcloudapi.net/.default - Cina:
https://ossrdbms-aad.database.chinacloudapi.cn/.default
Se l'applicazione usa l'autenticazione Microsoft Entra per connettersi a Database di Azure per MySQL server flessibile, esaminare la configurazione dell'acquisizione del token e assicurarsi di richiedere i token di accesso per il gruppo di destinatari corretto. Questa raccomandazione si applica a tutti i flussi di autenticazione, incluse applicazioni, automazione, identità gestite, entità servizio e scenari di autenticazione basati sull'utente. L'uso del gruppo di destinatari consigliato consente di garantire la compatibilità con i miglioramenti futuri del servizio e i miglioramenti della sicurezza. Consente di evitare future interruzioni della connettività e assicura che le applicazioni rimangano compatibili con miglioramenti continui di sicurezza e autenticazione.
Perché è importante:
Gli aggiornamenti futuri del servizio non supportano le applicazioni che acquisiscono token per gruppi di destinatari diversi da ossrdbms. Dopo l'abilitazione della convalida più restrittiva dei destinatari, le connessioni che presentano token con gruppi di destinatari non supportati non riescono a eseguire l'autenticazione. Non possono connettersi a Database di Azure per MySQL server flessibile fino a quando non vengono aggiornati per usare il gruppo di destinatari supportato.