Azure SQL ile Microsoft Entra hizmet sorumluları

Şunlar için geçerlidir: Azure SQL Veritabanı Azure SQL Yönetilen Örneği

Azure SQL kaynakları, Microsoft Entra ID'de (eski adıYla Azure Active Directory) hizmet sorumlularını ve yönetilen kimlikleri kullanan uygulamalar için programlı erişimi destekler.

Hizmet sorumluları (Microsoft Entra uygulamaları) desteği

Bu makale, Microsoft Entra Id'de kayıtlı uygulamalar için geçerlidir. Azure SQL'e erişmek için uygulama kimlik bilgilerinin kullanılması, Kuruluşların veritabanlarına bağlanan her uygulama için kesin erişim yapılandırmasına olanak tanıyan Görev Ayrımı güvenlik ilkesini destekler. Özel bir hizmet sorumlusu türü olan yönetilen kimlikler, parolasız oldukları ve geliştirici tarafından yönetilen kimlik bilgilerine olan ihtiyacı ortadan kaldırdıkları için önerilir.

Microsoft Entra Id, OAuth 2.0 On-Be-Of Flow (OBO) gibi gelişmiş kimlik doğrulama senaryolarını da etkinleştirir. OBO, uygulamaların kendilerine temsilci izinleri olmadan veritabanı erişimi verilmemesi gereken senaryolar için uygulamaların oturum açmış kullanıcı kimlik bilgileri istemesine olanak tanır.

Microsoft Entra uygulamaları hakkında daha fazla bilgi için bkz . Microsoft Entra Id'de uygulama ve hizmet sorumlusu nesneleri ve Azure PowerShell ile Azure hizmet sorumlusu oluşturma.

Hizmet sorumlularını kullanarak Microsoft Entra kullanıcı oluşturma

Bu işlevselliği desteklemek, Microsoft Entra sorumlularının insan etkileşimi olmadan SQL Veritabanı veya SQL Yönetilen Örneği oluşturulduğu ve korunduğu Microsoft Entra uygulama otomasyonu işlemlerinde yararlıdır. Hizmet sorumluları, SQL mantıksal sunucusu veya yönetilen örneği için bir grubun parçası veya tek başına kimlik olarak Bir Microsoft Entra yöneticisi olabilir. Uygulama, SQL Veritabanı veya SQL Yönetilen Örneği'de Microsoft Entra nesne oluşturmayı otomatikleştirerek veritabanı kullanıcı oluşturma işleminin tam otomasyonunu sağlayabilir.

Microsoft Entra kullanıcıları oluşturmak için hizmet sorumlularını etkinleştirme

Azure SQL'e erişmek için uygulamaları kullanırken, Microsoft Entra kullanıcıları ve oturum açma bilgileri oluşturmak için varsayılan olarak hizmet sorumlularına veya yönetilen kimliklere atanmamış izinler gerekir: Microsoft Graph'ten kiracıdaki kullanıcıları, grupları ve uygulamaları okuma olanağı. Bu izinler, SQL altyapısının veya CREATE USERiçinde CREATE LOGIN belirtilen kimliği doğrulaması ve kimliğin oturum açma veya kullanıcı oluşturmak için kullanılan Nesne veya Uygulama Kimliği gibi önemli bilgileri çekmesi için gereklidir.

Bir Microsoft Entra kullanıcısı bu komutları yürüttüğünde, Azure SQL'in Microsoft uygulaması oturum açmış kullanıcının kimliğine bürünmek için temsilci izinlerini kullanır ve izinlerini kullanarak Microsoft Graph'i sorgular. Bir uygulama başka bir uygulamanın kimliğine bürünemediği için bu akış hizmet sorumlularıyla mümkün değildir. Bunun yerine, SQL altyapısı sql yönetilen örneğine, Azure SQL mantıksal sunucusuna veya Azure Synapse çalışma alanına atanan birincil yönetilen kimlik olan sunucu kimliğini kullanmayı dener. Sunucu kimliğinin mevcut olması ve Microsoft Graph sorgu izinlerine sahip olması veya işlemlerin başarısız olması gerekir.

Aşağıdaki adımlarda, sunucuya yönetilen kimlik atama ve hizmet sorumlularının veritabanında Microsoft Entra kullanıcıları ve oturum açma bilgileri oluşturmasına olanak tanımak için Microsoft Graph izinlerinin nasıl atanacağı açıklanmaktadır.

  1. Sunucu kimliğini atayın. Sunucu kimliği, sistem tarafından atanan veya kullanıcı tarafından atanan yönetilen kimlik olabilir. Daha fazla bilgi için bkz . Azure SQL için Microsoft Entra'da yönetilen kimlikler.

    • Aşağıdaki PowerShell komutu, sistem tarafından atanan yönetilen kimlikle sağlanan yeni bir mantıksal sunucu oluşturur:
    New-AzSqlServer -ResourceGroupName <resource group> -Location <Location name> -ServerName <Server name> -ServerVersion "12.0" -SqlAdministratorCredentials (Get-Credential) -AssignIdentity
    

    Daha fazla bilgi için bkz. New-AzSqlServer komutu veya SQL Yönetilen Örneği için New-AzSqlInstance komutu.

    • Mevcut bir mantıksal sunucu için, sistem tarafından atanan yönetilen kimliği eklemek için aşağıdaki komutu yürütür:
    Set-AzSqlServer -ResourceGroupName <resource group> -ServerName <Server name> -AssignIdentity
    

    Daha fazla bilgi için bkz. Set-AzSqlServer komutu veya SQL Yönetilen Örneği için Set-AzSqlInstance komutu.

    • Sunucu kimliğinin sunucuya atanp atanmadığını denetlemek için Get-AzSqlServer komutunu veya SQL Yönetilen Örneği için Get-AzSqlInstance komutunu yürütür.

    Not

    Sunucu kimliği REST API ve CLI komutları kullanılarak da atanabilir. Daha fazla bilgi için bkz . az sql server create, az sql server update ve Servers - REST API.

  2. Sunucu kimliğine Microsoft Graph'ı sorgulama izinleri verin. Bu, birden çok şekilde yapılabilir: Kimliği Microsoft Entra Dizin Okuyucuları rolüne ekleyerek, kimliğe tek tek Microsoft Graph izinlerini atayarak veya kimliği Dizin Okuyucuları rolüne sahip rol atanabilir bir gruba ekleyerek:

    • Rol atanabilir bir gruba sunucu kimliği ekleme

      Üretim ortamlarında, kiracı yöneticisinin rol atanabilir bir grup oluşturması ve Dizin Okuyucuları rolünü ataması önerilir. Grup sahipleri daha sonra gruba sunucu kimlikleri ekleyebilir ve bu izinleri devralabilir. Bu, bir Genel Yöneticinin veya Ayrıcalıklı Rol Yöneticisinin her bir sunucu kimliğine izin verme gereksinimini ortadan kaldırarak yöneticilerin bu senaryo için grubun sahiplerine izin ataması atamasına izin vermelerini sağlar. Daha fazla bilgi için bkz . Azure SQL için Microsoft Entra Id'de Dizin Okuyucuları rolü.

    • Sunucu kimliğine Microsoft Graph izinleri atama

      Tek tek Microsoft Graph izinlerini sunucu kimliğine atamak için Microsoft Entra Genel Yöneticisi veya Ayrıcalıklı Roller Yöneticisi rolüne sahip olmanız gerekir. Bu, sunucu kimliğinin gerek duymadığı rolde izinler bulunduğundan Dizin Okuyucuları rolü atanması için önerilir. Yalnızca bireysel Microsoft Graph okuma izinlerini atamak, sunucu kimliğinin kiracınızdaki izinlerini sınırlar ve en az ayrıcalık ilkesini korur. Yönergeler için bkz . Azure SQL için Microsoft Entra'da yönetilen kimlikler.

    • Dizin Okuyucuları rolüne sunucu kimliği ekleme

      Sunucu kimliğini Dizin Okuyucuları rolüne eklemek için Microsoft Entra Genel Yöneticisi veya Ayrıcalıklı Roller Yöneticisi rolünün üyesi olmanız gerekir. Üretim ortamlarında bu seçenek iki nedenle önerilmez: Dizin Okuyucusu rolü sunucu kimliğinin gerektirdiğinden daha fazla izin verir ve rol atama işlemi yine de her sunucu kimliği için yönetici onayları gerektirir (grupların kullanılmasından farklı olarak). Microsoft Entra yöneticisini ayarlama (SQL Yönetilen Örneği) makalesindeki SQL Yönetilen Örneği yönergeleri izleyin.

Sorun giderme

Sorun giderme sırasında aşağıdaki hatayla karşılaşabilirsiniz:

Msg 33134, Level 16, State 1, Line 1
Principal 'test-user' could not be resolved.
Error message: 'Server identity is not configured. Please follow the steps in "Assign an Azure AD identity to your server and add Directory Reader permission to your identity" (https://aka.ms/sqlaadsetup)'

Bu hata, sunucu kimliğinin oluşturulmadığını veya Microsoft Graph izinlerinin atanmadığını gösterir. Mantıksal sunucuya kimlik atama ve Mantıksal sunucu kimliğine Dizin Okuyucuları atama izni verme adımlarını izleyin.

Sınırlamalar