Aracılığıyla paylaş


MySQL ile kimlik doğrulaması için Microsoft Entra Id kullanma

ŞUNLAR IÇIN GEÇERLIDIR: MySQL için Azure Veritabanı - Tek Sunucu

Önemli

MySQL için Azure Veritabanı tek sunucu kullanımdan kaldırma yolundadır. Esnek MySQL için Azure Veritabanı sunucuya yükseltmenizi kesinlikle öneririz. MySQL için Azure Veritabanı esnek sunucuya geçiş hakkında daha fazla bilgi için bkz. MySQL için Azure Veritabanı Tek Sunucu'ya neler oluyor?

Bu makalede, MySQL için Azure Veritabanı ile Microsoft Entra ID erişimini yapılandırma ve Microsoft Entra belirteci kullanarak bağlanma adımları anlatılacaktır.

Önemli

Microsoft Entra kimlik doğrulaması yalnızca MySQL 5.7 ve daha yeni sürümlerde kullanılabilir.

Microsoft Entra Yönetici kullanıcısını ayarlama

Yalnızca bir Microsoft Entra Yönetici kullanıcısı Microsoft Entra Id tabanlı kimlik doğrulaması için kullanıcı oluşturabilir/etkinleştirebilir. Microsoft Entra Yönetici kullanıcısı oluşturmak için lütfen aşağıdaki adımları izleyin

  1. Azure portalında, Microsoft Entra Id için etkinleştirmek istediğiniz MySQL için Azure Veritabanı örneğini seçin.
  2. Ayarlar altında Active Directory Yönetici'ı seçin:

set Microsoft Entra administrator

  1. Microsoft Entra yöneticisi olmak için müşteri kiracısında geçerli bir Microsoft Entra kullanıcısı seçin.

Önemli

Yöneticiyi ayarlarken, tam yönetici izinleriyle MySQL için Azure Veritabanı sunucusuna yeni bir kullanıcı eklenir.

MySQL sunucusu başına yalnızca bir Microsoft Entra yöneticisi oluşturulabilir ve başka bir yöneticinin seçilmesi, sunucu için yapılandırılan mevcut Microsoft Entra yöneticisinin üzerine yazılır.

Yöneticiyi yapılandırdıktan sonra artık oturum açabilirsiniz:

Microsoft Entra Id kullanarak MySQL için Azure Veritabanı Bağlan

Aşağıdaki üst düzey diyagram, MySQL için Azure Veritabanı ile Microsoft Entra kimlik doğrulamasını kullanma iş akışını özetler:

authentication flow

Microsoft Entra tümleştirmesini, Microsoft Entra kullanmayan ve yalnızca MySQL'e bağlanırken kullanıcı adı ve parola belirtmeyi destekleyen mysql CLI gibi yaygın MySQL araçlarıyla çalışacak şekilde tasarladık. Microsoft Entra belirtecini yukarıdaki resimde gösterildiği gibi parola olarak geçiririz.

Şu anda aşağıdaki istemcileri test ettik:

  • MySQLWorkbench
  • MySQL CLI

En yaygın uygulama sürücülerini de test ettik, bu sayfanın sonunda ayrıntıları görebilirsiniz.

Aşağıda açıklanan Microsoft Entra Id ile bir kullanıcının/uygulamanın kimlik doğrulaması yapması gereken adımlar şunlardır:

Önkoşullar

Azure Cloud Shell'de, bir Azure VM'sinde veya yerel makinenizde takip edebilirsiniz. Azure CLI'nın yüklü olduğundan emin olun.

1. Adım: Microsoft Entra Id ile kimlik doğrulaması

Azure CLI aracını kullanarak Microsoft Entra Id ile kimlik doğrulaması yaparak başlayın. Bu adım Azure Cloud Shell'de gerekli değildir.

az login

Komut, Microsoft Entra kimlik doğrulama sayfasına bir tarayıcı penceresi açar. Microsoft Entra kullanıcı kimliğinizi ve parolanızı vermeniz gerekir.

2. Adım: Microsoft Entra erişim belirtecini alma

MySQL için Azure Veritabanı erişmek üzere 1. adımdaki Microsoft Entra kimliği doğrulanmış kullanıcı için bir erişim belirteci almak için Azure CLI aracını çağırın.

Örnek (Genel Bulut için):

az account get-access-token --resource https://ossrdbms-aad.database.windows.net

Yukarıdaki kaynak değeri tam olarak gösterildiği gibi belirtilmelidir. Diğer bulutlar için kaynak değeri şu şekilde aranabilir:

az cloud show

Azure CLI sürüm 2.0.71 ve üzeri için komut, tüm bulutlar için aşağıdaki daha uygun sürümde belirtilebilir:

az account get-access-token --resource-type oss-rdbms

PowerShell'i kullanarak erişim belirteci almak için aşağıdaki komutu kullanabilirsiniz:

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

Kimlik doğrulaması başarılı olduktan sonra Microsoft Entra Id bir erişim belirteci döndürür:

{
  "accessToken": "TOKEN",
  "expiresOn": "...",
  "subscription": "...",
  "tenant": "...",
  "tokenType": "Bearer"
}

Belirteç, kimliği doğrulanmış kullanıcı hakkındaki tüm bilgileri kodlayan ve MySQL için Azure Veritabanı hizmetini hedefleyen bir Temel 64 dizesidir.

Erişim belirteci geçerliliği 5 dakika ile 60 dakika arasında bir yerdedir. MySQL için Azure Veritabanı oturum açma işlemini başlatmadan hemen önce erişim belirtecini almanızı öneririz. Belirteç geçerliliğini görmek için aşağıdaki PowerShell komutunu kullanabilirsiniz.

$accessToken.ExpiresOn.DateTime

3. Adım: MySQL ile oturum açmak için parola olarak belirteci kullanma

Bağlanırken erişim belirtecini MySQL kullanıcı parolası olarak kullanmanız gerekir. MySQLWorkbench gibi GUI istemcilerini kullanırken, belirteci almak için yukarıda açıklanan yöntemi kullanabilirsiniz.

MySQL CLI kullanma

CLI'yı kullanırken, bağlanmak için bu kısa elinizi kullanabilirsiniz:

Örnek (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`

MySQL Workbench kullanma

  • MySQL Workbench'i başlatın ve Veritabanı seçeneğine tıklayın, ardından "veritabanına Bağlan" seçeneğine tıklayın
  • Konak adı alanına MySQL FQDN örneğini girin. mydb.mysql.database.azure.com
  • Kullanıcı adı alanına MySQL Microsoft Entra yönetici adını girin ve bunu FQDN yerine MySQL sunucu adıyla ekleyin; örneğin user@tenant.onmicrosoft.com@mydb
  • Parola alanında "Kasada Depola" seçeneğine tıklayın ve erişim belirtecini dosyadan yapıştırın; örneğin C:\temp\MySQLAccessToken.txt
  • Gelişmiş sekmesine tıklayın ve "Cleartext Authentication Eklentisini Etkinleştir" seçeneğini işaretlediğinizden emin olun
  • Veritabanına bağlanmak için Tamam'a tıklayın

Bağlanırken dikkat edilmesi gereken önemli noktalar:

  • user@tenant.onmicrosoft.com , bağlanmaya çalıştığınız Microsoft Entra kullanıcısının veya grubunun adıdır
  • Sunucu adını her zaman Microsoft Entra kullanıcı/grup adının sonuna ekleyin (örn. @mydb)
  • Microsoft Entra kullanıcı veya grup adının tam olarak yazıldığını kullandığınızdan emin olun
  • Microsoft Entra kullanıcı ve grup adları büyük/küçük harfe duyarlıdır
  • Grup olarak bağlanırken yalnızca grup adını kullanın (örn. GroupName@mydb)
  • Ad boşluk içeriyorsa, her boşluktan önce kullanarak \ boşluktan kaçın

"enable-cleartext-plugin" ayarına dikkat edin. Belirtecin karma olmadan sunucuya gönderilmesini sağlamak için diğer istemcilerle benzer bir yapılandırma kullanmanız gerekir.

Artık Microsoft Entra kimlik doğrulaması kullanılarak MySQL sunucunuzda kimlik doğrulaması yapılır.

MySQL için Azure Veritabanı'da Microsoft Entra kullanıcıları oluşturma

MySQL için Azure Veritabanı veritabanınıza bir Microsoft Entra kullanıcısı eklemek için, bağlandıktan sonra aşağıdaki adımları gerçekleştirin (bağlanmayla ilgili sonraki bölüme bakın):

  1. İlk olarak Microsoft Entra kullanıcısının <user>@yourtenant.onmicrosoft.com Microsoft Entra kiracısında geçerli bir kullanıcı olduğundan emin olun.
  2. MySQL için Azure Veritabanı örneğinizde Microsoft Entra Yönetici kullanıcısı olarak oturum açın.
  3. MySQL için Azure Veritabanı'de kullanıcı <user>@yourtenant.onmicrosoft.com oluşturun.

Örnek:

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

32 karakteri aşan kullanıcı adları için, bağlanırken kullanmak için bunun yerine bir diğer ad kullanmanız önerilir:

Örneğin:

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

Dekont

  1. MySQL baştaki ve sondaki boşlukları yoksayar, bu nedenle kullanıcı adının başında veya sonunda boşluk olmaması gerekir.
  2. Microsoft Entra Id aracılığıyla kullanıcının kimliğini doğrulamak, kullanıcıya MySQL için Azure Veritabanı veritabanındaki nesnelere erişim izni vermez. Kullanıcıya gerekli izinleri el ile vermelisiniz.

MySQL için Azure Veritabanı'de Microsoft Entra grupları oluşturma

Bir Microsoft Entra grubunu veritabanınıza erişim için etkinleştirmek için kullanıcılarla aynı mekanizmayı kullanın, bunun yerine grup adını belirtin:

Örnek:

CREATE AADUSER 'Prod_DB_Readonly';

Oturum açarken, grubun üyeleri kişisel erişim belirteçlerini kullanır, ancak kullanıcı adı olarak belirtilen grup adıyla oturum açar.

Belirteç Doğrulama

MySQL için Azure Veritabanı'de Microsoft Entra kimlik doğrulaması, kullanıcının MySQL sunucusunda var olmasını sağlar ve belirtecin içeriğini doğrulayarak belirtecin geçerliliğini denetler. Aşağıdaki belirteç doğrulama adımları gerçekleştirilir:

  • Belirteç Microsoft Entra Kimliği tarafından imzalanmış ve üzerinde oynanmamış
  • Belirteç, sunucuyla ilişkilendirilmiş kiracı için Microsoft Entra Id tarafından verildi
  • Belirtecin süresi dolmadı
  • Belirteç MySQL için Azure Veritabanı kaynağı içindir (başka bir Azure kaynağı için değil)

Uygulama sürücüleriyle uyumluluk

Sürücülerin çoğu desteklenir, ancak belirtecin değiştirilmeden gönderilmesi için parolayı düz metin olarak göndermek için ayarları kullandığınızdan emin olun.

  • C/C++
    • libmysqlclient: Desteklenir
    • mysql-connector-c++: Desteklenir
  • Java
    • Bağlan or/J (mysql-connector-java): Desteklenir, ayarı kullanmalıdır useSSL
  • Python
    • Bağlan or/Python: Desteklenir
  • Ruby
    • mysql2: Desteklenir
  • .NET
    • mysql-connector-net: Desteklenir, mysql_clear_password için eklenti eklenmesi gerekir
    • mysql-net/MySql Bağlan or: Desteklenir
  • Node.js
    • mysqljs: Desteklenmez (düzeltme eki olmadan düz metin olarak belirteç göndermez)
    • node-mysql2: Desteklenir
  • Perl
    • DBD::mysql: Desteklenir
    • Net::MySQL: Desteklenmiyor
  • Git
    • go-sql-driver: Desteklenir, bağlantı dizesi ekleme ?tls=true&allowCleartextPasswords=true

Sonraki adımlar