Nastavení ověřování Microsoft Entra pro flexibilní server Azure Database for MySQL
V tomto kurzu se dozvíte, jak nastavit ověřování Microsoft Entra pro flexibilní server Azure Database for MySQL.
V tomto kurzu se naučíte:
- Nakonfigurujte správce Microsoft Entra.
- Připojte se k flexibilnímu serveru Azure Database for MySQL pomocí ID Microsoft Entra.
Požadavky
Účet Azure s aktivním předplatným.
Pokud ještě nemáte předplatné Azure, vytvořte si bezplatný účet Azure, než začnete.
Poznámka:
S bezplatným účtem Azure teď můžete vyzkoušet flexibilní server Azure Database for MySQL zdarma po dobu 12 měsíců. Další informace najdete v tématu Použití bezplatného účtu Azure k vyzkoušení flexibilního serveru Azure Database for MySQL zdarma.
Nainstalujte nebo upgradujte Azure CLI na nejnovější verzi. Viz Instalace Azure CLI.
Konfigurace správce Microsoft Entra
Pokud chcete vytvořit uživatele Microsoft Entra Admin, postupujte následovně.
Na webu Azure Portal vyberte instanci flexibilního serveru Azure Database for MySQL, který chcete povolit pro ID Microsoft Entra.
V podokně Zabezpečení vyberte Ověřování:
K dispozici jsou tři typy ověřování:
Pouze ověřování MySQL – MySQL ve výchozím nastavení používá integrovaný modul plug-in pro ověřování mysql_native_password, který provádí ověřování pomocí nativní metody hash hesel.
Pouze ověřování Microsoft Entra – Povoluje pouze ověřování pomocí účtu Microsoft Entra. Zakáže ověřování mysql_native_password a zapne parametr serveru aad_auth_only
Ověřování MySQL a Microsoft Entra – Umožňuje ověřování pomocí nativního hesla MySQL nebo účtu Microsoft Entra. Vypne parametr serveru aad_auth_only
Vyberte Identitu – Vyberte/Přidat spravovanou identitu přiřazenou uživatelem. Aby rozhraní UMI mohlo číst z Microsoft Graphu jako identitu serveru, jsou vyžadována následující oprávnění. Případně udělte spravované identitě přiřazené uživatelem roli Čtenáři adresáře.
- User.Read.All: Umožňuje přístup k informacím o uživateli Microsoft Entra.
- GroupMember.Read.All: Umožňuje přístup k informacím o skupině Microsoft Entra.
- Application.Read.ALL: Umožňuje přístup k informacím instančního objektu Microsoft Entra (aplikace).
Důležité
Tato oprávnění může udělit pouze uživatel s rolí Správce privilegovaných rolí.
Vyberte platného uživatele Microsoft Entra nebo skupinu Microsoft Entra v tenantovi zákazníka, aby byl správcem Microsoft Entra. Po povolení podpory ověřování Microsoft Entra je možné přidat správce Microsoft Entra jako objekty zabezpečení s oprávněním přidat uživatele Microsoft Entra na server MySQL.
Poznámka:
Na server MySQL je možné vytvořit pouze jednoho správce Microsoft Entra a výběrem jiného přepsat existujícího správce Microsoft Entra nakonfigurovaného pro server.
Udělení oprávnění spravované identitě přiřazené uživatelem
Následující ukázkový skript PowerShellu uděluje potřebná oprávnění pro rozhraní UMI. Tato ukázka přiřadí UMI umiservertest
oprávnění .
Pokud chcete skript spustit, musíte se přihlásit jako uživatel s rolí globálního správce nebo správce privilegovaných rolí.
Skript uděluje User.Read.All
rozhraní UMI GroupMember.Read.All
a Application.Read.ALL
oprávnění pro přístup k Microsoft Graphu.
# 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
V posledních krocích skriptu, pokud máte více umi s podobnými názvy, musíte použít správné $MSI[ ]array
číslo. Příklad: $AAD_SP.ObjectId[0]
.
Kontrola oprávnění pro spravovanou identitu přiřazenou uživatelem
Pokud chcete zkontrolovat oprávnění pro UMI, přejděte na web Azure Portal. V prostředku Microsoft Entra ID přejděte do podnikových aplikací. Vyberte Všechny aplikace pro typ aplikace a vyhledejte vytvořený UMI.
Vyberte UMI a přejděte do nastavení Oprávnění v části Zabezpečení.
Jakmile udělíte oprávnění rozhraní UMI, povolí se pro všechny servery vytvořené pomocí UMI přiřazené jako identita serveru.
Připojení k flexibilnímu serveru Azure Database for MySQL pomocí ID Microsoft Entra
1. Ověření pomocí Microsoft Entra ID
Začněte ověřováním pomocí Microsoft Entra ID pomocí nástroje Azure CLI.
(Tento krok není v Azure Cloud Shellu povinný.)
Přihlaste se k účtu Azure pomocí příkazu az login . Poznamenejte si vlastnost ID, která odkazuje na ID předplatného pro váš účet Azure:
az login
Příkaz spustí okno prohlížeče na ověřovací stránku Microsoft Entra. Vyžaduje, abyste zadali své UŽIVATELSKÉ ID a heslo Microsoft Entra.
Pokud máte více předplatných, zvolte příslušné předplatné pomocí příkazu az account set:
az account set --subscription \<subscription id\>
2 . Načtení přístupového tokenu Microsoft Entra
Vyvolejte nástroj Azure CLI pro získání přístupového tokenu pro ověřeného uživatele Microsoft Entra z kroku 1 pro přístup k flexibilnímu serveru Azure Database for MySQL.
Příklad (pro veřejný cloud):
az account get-access-token --resource https://ossrdbms-aad.database.windows.net
Výše uvedená hodnota prostředku musí být zadána přesně tak, jak je znázorněna. V případě jiných cloudů je možné hodnotu prostředku vyhledat pomocí následujících možností:
az cloud show
Pro Azure CLI verze 2.0.71 a novější je možné příkaz zadat v následující pohodlnější verzi pro všechny cloudy:
az account get-access-token --resource-type oss-rdbms
Pomocí PowerShellu můžete získat přístupový token pomocí následujícího příkazu:
$accessToken = Get-AzAccessToken -ResourceUrl https://ossrdbms-aad.database.windows.net $accessToken.Token | out-file C:\temp\MySQLAccessToken.txt
Po úspěšném ověření vrátí ID Microsoft Entra přístupový token:
{
"accessToken": "TOKEN",
"expiresOn": "...",
"subscription": "...",
"tenant": "...",
"tokenType": "Bearer"
}
Token je řetězec Base 64, který zakóduje všechny informace o ověřeném uživateli a cílí na službu Azure Database for MySQL.
Platnost přístupového tokenu je 5 minut až 60 minut. Než zahájíte přihlášení k flexibilnímu serveru Azure Database for MySQL, doporučujeme získat přístupový token.
- Platnost tokenu můžete zobrazit pomocí následujícího příkazu PowerShellu.
$accessToken.ExpiresOn.DateTime
3. Použití tokenu jako hesla pro přihlášení pomocí MySQL
Při připojování musíte použít přístupový token jako heslo uživatele MySQL. Metodu popsanou výše můžete použít k načtení tokenu pomocí klientů grafického uživatelského rozhraní, jako je mySQL workbench.
Připojení k flexibilnímu serveru Azure Database for MySQL pomocí rozhraní příkazového řádku MySQL
Při použití rozhraní příkazového řádku můžete použít tuto zkratku pro připojení:
Příklad (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říklad (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)
Připojení k flexibilnímu serveru Azure Database for MySQL pomocí aplikace MySQL Workbench
- Spusťte aplikaci MySQL Workbench a vyberte možnost Databáze a pak vyberte Připojit k databázi.
- Do pole název hostitele zadejte například plně kvalifikovaný název domény MySQL, mysql.database.azure.com.
- Do pole uživatelského jména zadejte jméno správce MySQL Microsoft Entra. Například user@tenant.onmicrosoft.com.
- V poli heslo vyberte Uložit v trezoru a vložte přístupový token ze souboru, například C:\temp\MySQLAccessToken.txt.
- Vyberte kartu Upřesnit a ujistěte se, že je zaškrtnutá možnost Povolit modul plug-in pro ověřování Cleartext.
- Vyberte OK a připojte se k databázi.
Důležité aspekty při připojování
user@tenant.onmicrosoft.com
je název uživatele nebo skupiny Microsoft Entra, ke které se pokoušíte připojit jako- Ujistěte se, že používáte přesný způsob, jakým je název uživatele nebo skupiny Microsoft Entra napsaný.
- V názvech uživatelů a skupin Microsoft Entra se rozlišují malá a velká písmena.
- Při připojování jako skupiny použijte pouze název skupiny (například
GroupName
) - Pokud název obsahuje mezery, použijte
\
před každým mezerou řídicí znak.
Poznámka:
Nastavení "enable-cleartext-plugin" – musíte použít podobnou konfiguraci s jinými klienty, abyste se ujistili, že se token odešle na server, aniž by se zatřiďoval.
Teď jste ověřeni na flexibilním serveru MySQL pomocí ověřování Microsoft Entra.
Další příkazy správce Microsoft Entra
Správa správce služby Active Directory serveru
az mysql flexible-server ad-admin
Vytvoření správce služby Active Directory
az mysql flexible-server ad-admin create
Příklad: Vytvoření správce služby Active Directory s uživatelemjohn@contoso.com, ID správce 00000000-0000-0000-0000-000000000000 a identitou test-identity
az mysql flexible-server ad-admin create -g testgroup -s testsvr -u john@contoso.com -i 00000000-0000-0000-0000-000000000000 --identity test-identity
Odstranění správce služby Active Directory
az mysql flexible-server ad-admin delete
Příklad: Odstranění správce služby Active Directory
az mysql flexible-server ad-admin delete -g testgroup -s testsvr
Zobrazit seznam všech správců služby Active Directory
az mysql flexible-server ad-admin list
Příklad: Výpis správců služby Active Directory
az mysql flexible-server ad-admin list -g testgroup -s testsvr
Získání správce služby Active Directory
az mysql flexible-server ad-admin show
Příklad: Získání správce služby Active Directory
az mysql flexible-server ad-admin show -g testgroup -s testsvr
Počkejte, až správce služby Active Directory splní určité podmínky.
az mysql flexible-server ad-admin wait
Příklady:
- Počkejte, až správce služby Active Directory existuje.
az mysql flexible-server ad-admin wait -g testgroup -s testsvr --exists
- Počkejte na odstranění správce služby Active Directory.
az mysql flexible-server ad-admin wait -g testgroup -s testsvr –deleted
Vytváření uživatelů Microsoft Entra ve službě Azure Database for MySQL
Pokud chcete do databáze Azure Database for MySQL přidat uživatele Microsoft Entra, proveďte následující kroky po připojení:
- Nejprve se ujistěte, že uživatel
<user>@yourtenant.onmicrosoft.com
Microsoft Entra je platným uživatelem v tenantovi Microsoft Entra. - Přihlaste se ke své instanci Azure Database for MySQL jako uživatel microsoft Entra Admin.
- Vytvořte uživatele
<user>@yourtenant.onmicrosoft.com
ve službě Azure Database for MySQL.
Příklad:
CREATE AADUSER 'user1@yourtenant.onmicrosoft.com';
Pro uživatelská jména, která překračují 32 znaků, doporučujeme místo toho použít alias, který se má použít při připojování:
Příklad:
CREATE AADUSER 'userWithLongName@yourtenant.onmicrosoft.com' as 'userDefinedShortName';
Poznámka:
- MySQL ignoruje úvodní a koncové mezery, takže uživatelské jméno by nemělo obsahovat žádné úvodní ani koncové mezery.
- Ověřování uživatele prostřednictvím Microsoft Entra ID neposkytuje uživateli žádná oprávnění pro přístup k objektům v databázi Azure Database for MySQL. Musíte uživateli udělit ručně požadovaná oprávnění.
Vytvoření skupin Microsoft Entra ve službě Azure Database for MySQL
Pokud chcete povolit přístup k databázi ve skupině Microsoft Entra, použijte přesný mechanismus pro uživatele, ale místo toho zadejte název skupiny:
Příklad:
CREATE AADUSER 'Prod_DB_Readonly';
Při přihlašování používají členové skupiny své osobní přístupové tokeny, ale přihlašují se pomocí názvu skupiny zadaného jako uživatelské jméno.
Kompatibilita s ovladači aplikací
Většina ovladačů je podporována; Nezapomeňte ale použít nastavení pro odeslání hesla ve formátu prostého textu, aby se token odeslal beze změny.
C/C++
- libmysqlclient: Podporováno
- mysql-connector-c++: Podporováno
Java
- Konektor/J (mysql-connector-java): Podporuje se
useSSL
nastavení
- Konektor/J (mysql-connector-java): Podporuje se
Python
- Konektor /Python: Podporováno
Ruby
- mysql2: Podporováno
.NET
- mysql-connector-net: Podporováno, je potřeba přidat modul plug-in pro mysql_clear_password
- mysql-net/MySqlConnector: Podporováno
Node.js
- mysqljs: Nepodporuje se (neodesílá token bez opravy)
- node-mysql2: Podporováno
Perl
- DBD::mysql: Podporováno
- Net::MySQL: Nepodporuje se
Go
- go-sql-driver: Podporováno, přidání
?tls=true&allowCleartextPasswords=true
do připojovací řetězec
- go-sql-driver: Podporováno, přidání
PHP
mysqli extension: Podporováno
ovladač PDO_MYSQL: Podporováno