Aracılığıyla paylaş


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:

İ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.Allve 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:

  1. Azure portalında Microsoft Entra Id Rollerini ve yöneticilerini açın:

  2. Arama kutusuna Dizin okuyucuları yazın ve dizin okuyucu rolünü seçerek Dizin Okuyucuları | Atamalar sayfası:

    Dizin Okuyucuları rolünü arayıp seçerek Azure portalının Roller ve yöneticiler sayfasının ekran görüntüsü.

  3. Dizin Okuyucuları | Ödevler sayfasında + Ödev ekle'yi seçerek Ödev ekle sayfasını açın.

    Azure portalının Dizin Okuyucuları sayfasının ekran görüntüsü.

  4. Üye seç sayfasını açmak için Atama ekle sayfasında Üye seç'in altında Üye seçilmedi'yi seçin.

    Üye yok seçeneğinin vurgulandığı, Azure portalının atama ekleme sayfasının ekran görüntüsü.

  5. Ü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.

    Azure portalında seçecek üyeleri arama ekran görüntüsü.

  6. Üye seç altında seçtiğiniz kimliği gördüğünüzü doğrulayın ve ardından İleri'yi seçin.

    Vm2'nin atama olarak eklendiği Azure portalındaki Atama ekle sayfasının ekran görüntüsü.

  7. 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ı.

    Azure portalında Atama ekle'deki ayarların ekran görüntüsü.

  8. Dizin Okuyucuları | Atamalar sayfasında, Dizin Okuyucuları altında yeni eklenen kimliğinizi gördüğünüzden emin olun.

    Vm atamanızın role eklendiğini gösteren Azure portalının Dizin Okuyucuları sayfasının ekran görüntüsü.

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.

  1. Microsoft Graph'a bağlanma

    Connect-MgGraph -Scopes "AppRoleAssignment.ReadWrite.All" -TenantId "<tenant id>"
    
  2. 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>'"
    
  3. 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}
    
  4. 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}
    
  5. 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:

  1. Azure portalında Microsoft Entra Id'ye gidin.
  2. Kurumsal uygulamalar'ı ve ardından Yönet'in altında Tüm uygulamalar'ı seçin.
  3. Uygulama türüne göre filtreleyinManaged identities.
  4. 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:

  1. Azure portalında SQL sanal makineleri kaynağınıza gidin.

  2. Güvenlik'in altında Güvenlik Yapılandırması'nı seçin.

  3. Microsoft Entra kimlik doğrulaması altında Etkinleştir'i seçin.

  4. 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ının seçili olduğu Azure portalında SQL VM güvenlik yapılandırması sayfasının ekran görüntüsü.

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.Allve Application.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: