Azure VM'lerinde SQL Server için Microsoft Entra kimlik doğrulamasını etkinleştirme
Şunlar için geçerlidir: Azure VM'de SQL Server
Bu makalede, Azure sanal makinelerinde (VM) SQL Server'ınız için Microsoft Entra Id (eski adıyla Azure Active Directory) ile kimlik doğrulamasını etkinleştirmeyi öğreneceksiniz.
Genel bakış
SQL Server 2022'den başlayarak, aşağıdaki Microsoft Entra kimlik doğrulama yöntemlerinden birini kullanarak Azure VM'lerinde SQL Server'a bağlanabilirsiniz:
- Parola , Microsoft Entra kimlik bilgileriyle kimlik doğrulaması sunar
- MFA ile Evrensel, çok faktörlü kimlik doğrulaması ekler
- Tümleşik, çoklu oturum açma (SSO) deneyimlerini etkinleştirmek için Active Directory Federasyon Hizmetleri (AD FS) (ADFS) gibi federasyon sağlayıcılarını kullanır
- Hizmet Sorumlusu , Azure uygulamalarından kimlik doğrulamasını etkinleştirir
- Yönetilen Kimlik , atanan uygulamalardan kimlik doğrulamasını etkinleştirir Microsoft Entra kimlikleri
SQL Server için bir Microsoft Entra oturum açma bilgisi oluşturduğunuzda ve kullanıcı bu oturum açma bilgilerini kullanarak bağlandığında SQL Server, Microsoft Graph'ı sorgulamak için yönetilen bir kimlik kullanır. Azure VM'de SQL Server'ınız için Microsoft Entra kimlik doğrulamasını etkinleştirdiğinizde, SQL Server'ın Microsoft Entra Id ile iletişim kurmak için kullanabileceği bir yönetilen kimlik sağlamanız gerekir. Bu yönetilen kimliğin Microsoft Graph'ı sorgulama izinlerine sahip olması gerekir.
Azure'da bir kaynak için yönetilen kimliği etkinleştirirken, kimliğin güvenlik sınırı bağlı olduğu kaynaktır. Örneğin, Azure kaynakları için yönetilen kimliklerin etkinleştirildiği bir sanal makinenin güvenlik sınırı sanal makinedir. Bu VM'de çalışan tüm kodlar yönetilen kimlikler uç noktasını çağırıp belirteçleri isteyebilir. Azure VM'lerinde SQL Server için yönetilen kimliği etkinleştirirken kimlik sanal makineye eklenir, bu nedenle güvenlik sınırı sanal makinedir. Bu deneyim, yönetilen kimlikleri destekleyen diğer kaynaklarla çalışırken benzerdir. Daha fazla bilgi için Yönetilen Kimlikler SSS bölümünü okuyun.
Azure VM'lerinde SQL Server ile Microsoft Entra kimlik doğrulaması için kullanılan sistem tarafından atanan ve kullanıcı tarafından atanan yönetilen kimlikler aşağıdaki avantajları sunar:
- Sistem tarafından atanan yönetilen kimlik , basitleştirilmiş bir yapılandırma işlemi sunar. Yönetilen kimliğin ömrü sanal makineyle aynı olduğundan, sanal makineyi sildiğinizde bunu ayrı olarak silmeniz gerekmez.
- Kullanıcı tarafından atanan yönetilen kimlik , Azure VM'lerinde birden çok SQL Server için Microsoft Entra kimlik doğrulamasına eklenebildiği ve bu kimlik için kullanılabildiğinden ölçeklenebilirlik sunar.
Yönetilen kimlikleri kullanmaya başlamak için Azure portalını kullanarak yönetilen kimlikleri yapılandırma'yı gözden geçirin.
Önkoşullar
SQL Server'ınızda Microsoft Entra kimlik doğrulamasını etkinleştirmek için aşağıdaki önkoşullara ihtiyacınız vardır:
- SQL Server 2022 kullanın.
- SQL Server VM'sini herhangi bir buluttaki SQL Server Iaas Aracısı uzantısına kaydedin.
- SQL Server VM'nizle aynı Microsoft Entra kiracısında mevcut bir sistem tarafından atanan veya kullanıcı tarafından atanan yönetilen kimliğe sahip olun. Daha fazla bilgi edinmek için Azure portalını kullanarak yönetilen kimlikleri yapılandırın.
- SQL Server VM'niz için Microsoft Entra kimlik doğrulamasını yapılandırmak üzere Azure CLI kullanmayı planlıyorsanız Azure CLI 2.48.0 veya üzeri .
İzinleri verme
SQL Server ile Microsoft Entra ID arasında kimlik doğrulamasını kolaylaştırmak için seçtiğiniz yönetilen kimliğin aşağıdaki üç Microsoft Graph uygulama iznine (uygulama rolleri) sahip olması gerekir: User.Read.All
, GroupMember.Read.All
ve Application.Read.All
.
Alternatif olarak, yönetilen kimliği Microsoft Entra Directory Okuyucuları rolüne eklemek yeterli izinleri verir. Yönetilen kimliğe Dizin Okuyucuları rolünü atamanın bir diğer yolu da, Dizin Okuyucuları rolünü Microsoft Entra Id'deki bir gruba atamaktır. Daha sonra grup sahipleri Sanal Makine yönetilen kimliğini bu grubun üyesi olarak ekleyebilir. Bu, Microsoft Entra Genel yöneticilerinin dahil olmasını en aza indirir ve sorumluluğu grup sahiplerine devreder.
Role yönetilen kimlik ekleme
Bu bölümde, yönetilen kimliğinizi Microsoft Entra Id'deki Dizin Okuyucuları rolüne nasıl ekleyeceğiniz açıklanmaktadır. Dizin Okuyucuları rol atamalarında değişiklik yapmak için Genel Yönetici ayrıcalıklarına sahip olmanız gerekir. Yeterli izniniz yoksa, bu adımları izlemek için Microsoft Entra yöneticinizle birlikte çalışın.
Yönetilen kimliğinize Dizin Okuyucuları rolünü vermek için şu adımları izleyin:
Azure portalında Microsoft Entra Id Rollerini ve yöneticilerini açın:
Arama kutusuna Dizin okuyucuları yazın ve dizin okuyucu rolünü seçerek Dizin Okuyucuları | Atamalar sayfası:
Dizin Okuyucuları | Ödevler sayfasında + Ödev ekle'yi seçerek Ödev ekle sayfasını açın.
Üye seç sayfasını açmak için Atama ekle sayfasında Üye seç'in altında Üye seçilmedi'yi seçin.
Üye seçin sayfasında, SQL Server VM'nizle kullanmak istediğiniz yönetilen kimliğin adını arayın ve Dizin Okuyucuları rolüne ekleyin. Sistem tarafından atanan yönetilen kimlikler için VM'nin adını arayın. Kimliği onaylamak ve Atama ekle sayfasına geri dönmek için Seç'i kullanın.
Üye seç altında seçtiğiniz kimliği gördüğünüzü doğrulayın ve ardından İleri'yi seçin.
Atama türünüzün Etkin olarak ayarlandığını ve Kalıcı olarak atanan seçeneğinin yanındaki kutunun işaretli olduğunu doğrulayın. VM2 için sistem tarafından atanan kimliğe Dizin Okuyucusu rol izinleri ekleme gibi bir iş gerekçesi girin ve ardından Ata'yı seçerek ayarlarınızı kaydedin ve Dizin Okuyucuları'na geri dönün | Atamalar sayfası.
Dizin Okuyucuları | Atamalar sayfasında, Dizin Okuyucuları altında yeni eklenen kimliğinizi gördüğünüzden emin olun.
Uygulama rolü izinleri ekleme
Yönetilen bir kimliğe uygulama rolleri vermek için Azure PowerShell'i kullanabilirsiniz. Bunu yapmak için aşağıdaki adımları izleyin:
Not
Azure AD ve MSOnline PowerShell modülleri 30 Mart 2024 itibarıyla kullanım dışı bırakılmıştır. Daha fazla bilgi edinmek için kullanımdan kaldırma güncelleştirmesini okuyun. Bu tarihten sonra bu modüllere yönelik destek, Microsoft Graph PowerShell SDK'sına geçiş yardımı ve güvenlik düzeltmeleriyle sınırlıdır. Kullanım dışı bırakılan modüller Mart 30 2025'e kadar çalışmaya devam edecektir.
Microsoft Entra ID (eski adıyla Azure AD) ile etkileşime geçmek için Microsoft Graph PowerShell'e geçiş yapmanızı öneririz. Sık sorulan geçiş soruları için Bkz. Geçiş hakkında SSS. Not: MSOnline'ın 1.0.x sürümleri 30 Haziran 2024'den sonra kesintiye neden olabilir.
Microsoft Graph'a bağlanma
Connect-MgGraph -Scopes "AppRoleAssignment.ReadWrite.All" -TenantId "<tenant id>"
Yönetilen kimliği alın:
$Graph_SP = Get-MgServicePrincipal -Filter "DisplayName eq 'Microsoft Graph'" $MSI = Get-MgServicePrincipal -Filter "displayName eq '<your managed identity display name>'"
User.Read.All
Rolü kimliğe atayın:$AAD_AppRole = $Graph_SP.AppRoles | Where-Object {$_.Value -eq "User.Read.All"} New-MgServicePrincipalAppRoleAssignment -ServicePrincipalId $MSI.Id -BodyParameter @{principalId=$MSI.Id; resourceId=$Graph_SP.Id; appRoleId=$AAD_AppRole.Id}
Kimliğe rol atayın
GroupMember.Read.All
:$AAD_AppRole = $Graph_SP.AppRoles | Where-Object {$_.Value -eq "GroupMember.Read.All"} New-MgServicePrincipalAppRoleAssignment -ServicePrincipalId $MSI.Id -BodyParameter @{principalId=$MSI.Id; resourceId=$Graph_SP.Id; appRoleId=$AAD_AppRole.Id}
Kimliğe rol atayın
Application.Read.All
:$AAD_AppRole = $Graph_SP.AppRoles | Where-Object {$_.Value -eq "Application.Read.All"} New-MgServicePrincipalAppRoleAssignment -ServicePrincipalId $MSI.Id -BodyParameter @{principalId=$MSI.Id; resourceId=$Graph_SP.Id; appRoleId=$AAD_AppRole.Id}
Aşağıdakileri yaparak yönetilen kimliğe izinlerin atandığını doğrulayabilirsiniz:
- Azure portalında Microsoft Entra Id'ye gidin.
- Kurumsal uygulamalar'ı ve ardından Yönet'in altında Tüm uygulamalar'ı seçin.
- Uygulama türüne göre filtreleyin
Managed identities
. - Yönetilen kimliği seçin ve ardından Güvenlik'in altında İzinler'i seçin. Şu izinleri görmeniz gerekir:
User.Read.All
,GroupMember.Read.All
,Application.Read.All
.
Giden iletişimi etkinleştirme
Microsoft Entra kimlik doğrulamasının çalışması için aşağıdakilere ihtiyacınız vardır:
- SQL Server'dan Microsoft Entra Id ve Microsoft Graph uç noktasına giden iletişim.
- SQL istemcisinden Microsoft Entra Id'ye giden iletişim.
Varsayılan Azure VM yapılandırmaları, Microsoft Graph uç noktasına ve Microsoft Entra Kimliği'ne giden iletişime izin verir, ancak bazı kullanıcılar işletim sistemi düzeyinde güvenlik duvarı veya Azure VNet ağ güvenlik grubu (NSG) kullanarak giden iletişimi kısıtlamayı tercih eder.
SQL Server VM'sinde ve tüm SQL istemcilerindeki güvenlik duvarlarının 80 ve 443 bağlantı noktalarında giden trafiğe izin vermeleri gerekir.
SQL Server VM'nizi barındıran sanal ağ için Azure VNet NSG kuralı aşağıdakilere sahip olmalıdır:
- hizmet etiketi
AzureActiveDirectory
. - Hedef bağlantı noktası aralıkları : 80, 443.
- Eylem İzin Ver olarak ayarlanır.
- Yüksek öncelikli (düşük bir sayıdır).
Microsoft Entra kimlik doğrulamasını etkinleştirme
Azure portalını veya Azure CLI'yı kullanarak SQL Server VM'nizde Microsoft Entra kimlik doğrulamasını etkinleştirebilirsiniz.
Not
Microsoft Entra kimlik doğrulaması etkinleştirildikten sonra, yapılandırmayı farklı bir yönetilen kimlik kullanacak şekilde değiştirmek için bu bölümdeki adımları izleyebilirsiniz.
SQL Server VM'nizde Microsoft Entra kimlik doğrulamasını etkinleştirmek için şu adımları izleyin:
Güvenlik'in altında Güvenlik Yapılandırması'nı seçin.
Microsoft Entra kimlik doğrulaması altında Etkinleştir'i seçin.
Sistem tarafından atanan veya Kullanıcı tarafından atanan açılan listeden yönetilen kimlik türünü seçin. Kullanıcı tarafından atanan'ı seçerseniz, görüntülenen Kullanıcı tarafından atanan yönetilen kimlik açılan listesinden Azure VM'nizde SQL Server'da kimlik doğrulaması yapmak için kullanmak istediğiniz kimliği seçin.
Microsoft Entra kimlik doğrulaması etkinleştirildikten sonra, SQL Server VM'nizde hangi yönetilen kimliğin kimlik doğrulaması yapabileceklerini değiştirmek için aynı adımları izleyebilirsiniz.
Not
Hata The selected managed identity does not have enough permissions for Microsoft Entra authentication
, seçtiğiniz kimliğe izinlerin düzgün atanmadığını gösterir. Uygun izinleri atamak için İzin ver bölümünü denetleyin.
Sınırlamalar
Aşağıdaki sınırlamaları göz önünde bulundurun:
- Microsoft Entra kimlik doğrulaması yalnızca herhangi bir buluta dağıtılan SQL IaaS Aracısı uzantısına kayıtlı Windows VM'lerinde çalışan SQL Server 2022 ile desteklenir. Varsayılan örnek veya tek bir adlandırılmış örnek gibi yalnızca SQL IaaS Aracısı uzantısının desteklenen senaryoları desteklenir. Yük devretme kümesi örnekleri desteklenmez.
- SQL Server'da kimlik doğrulaması yapmayı seçtiğiniz kimliğin Microsoft Entra ID'de Dizin Okuyucuları rolüne veya aşağıdaki üç Microsoft Graph uygulama iznine (uygulama rolleri) sahip olması gerekir:
User.Read.All
,GroupMember.Read.All
veApplication.Read.All
. - Microsoft Entra kimlik doğrulaması etkinleştirildikten sonra devre dışı bırakmanın bir yolu yoktur.
- Şu anda FIDO2 yöntemini kullanarak Microsoft Entra kimlik doğrulaması aracılığıyla Azure VM'lerinde SQL Server'da kimlik doğrulaması desteklenmez.
Sonraki adımlar
SQL Server için en iyi güvenlik yöntemlerini gözden geçirin.
Azure VM'lerinde SQL Server çalıştırmayla ilgili diğer makaleler için bkz. Azure'da SQL Server Sanal Makineler genel bakış. SQL Server sanal makineleri hakkında sorularınız varsa Bkz . Sık sorulan sorular.
Daha fazla bilgi edinmek için bu en iyi yöntemler serisindeki diğer makalelere bakın: