Azure Synapse Analytics ile Microsoft Entra kimlik doğrulamasını yapılandırın ve yönetin

Bu makale, Azure Synapse Analytics ile kimlik doğrulaması için Microsoft Entra ID'nin nasıl kullanılacağını gösteriyor.

Not

Microsoft Entra sunucu asılları şu anda Azure Synapse Analytics için önizleme aşamasındadır.

Prerequisites

Microsoft Entra kimlik doğrulamasını Azure Synapse Analytics ile kullanmak için aşağıdaki ön koşullara ihtiyacınız var:

  • Kullanıcılar ve gruplarla dolu bir Microsoft Entra kiracısı.
  • Mevcut bir Azure Synapse çalışma alanı veya bağımsız ayrılmış SQL havuzu.

Microsoft Entra tenant oluşturma ve yükleme

Azure Synapse Analytics için Microsoft Entra doğrulamasını yapılandırmadan önce, bir Microsoft Entra tenant’ı oluşturup kullanıcılar ve gruplarla doldurmanız gerekir. Microsoft Entra kiracılarını tamamen Azure içinde yönetebilir veya onları şirket içi Active Directory Etki Alanı Servisi'nin federasyonu için kullanabilirsiniz.

Daha fazla bilgi için bakınız:

Microsoft Entra yöneticisini ayarlama

Microsoft Entra kimlik doğrulamasını kullanmak için Azure Synapse kaynağınızın bir Microsoft Entra yöneticisine ihtiyacı vardır.

Kaynağı oluştururken Microsoft Entra yöneticisini de yapılandırmak mümkündür. Zaten bir yöneticiniz varsa, bu bölümü atlayın.

Azure Synapse çalışma alanı

Azure Synapse workspace için, çalışma alanında Microsoft Entra yöneticisini yapılandırın. Daha fazla bilgi için Yönetici yapısı sayfasına bakınız.

Standalone dedicated SQL pool

Microsoft Entra yöneticisini ayarladığınızda, bağımsız bir özel SQL havuzu barındıran mantıksal sunucu için Microsoft Entra kimlik doğrulamasını etkinleştirirsiniz. Yöneticiyi Azure portalı, PowerShell, Azure CLI veya REST API'leri kullanarak ayarlayabilirsiniz.

Azure portalında logical server adını bulabilirsiniz

  • Azure Synapse Analytics'daki tek başına ayrılmış SQL havuzunuzun Overview sayfasındaki sunucu adı alanında.

Azure portalında mantıksal sunucunuzun Microsoft Entra yöneticisini ayarlamak için şu adımları izleyin:

  1. Azure portalı Dizinler + abonelikler panelinde, Azure Synapse kaynağınızı içeren dizini Geçerli dizin olarak seçin.

  2. SQL sunucularını arayın ve ardından özel SQL havuzunuz için mantıksal sunucuyu seçerek SQL sunucu panelini açın.

  3. Mantıksal sunucunuzun SQL sunucusu bölmesinde, Settings altındaki Microsoft Entra ID'i seçerek Microsoft Entra ID bölmesini açın.

  4. Microsoft Entra ID bölmesinde, Yönetici ayarla seçeneğini belirleyin ve Microsoft Entra ID bölmesini açın.

  5. Microsoft Entra ID bölmesi geçerli dizininizdeki tüm kullanıcıları, grupları ve uygulamaları gösterir ve ad, diğer ad veya kimliğe göre arama yapmanıza olanak tanır. Microsoft Entra yöneticiniz için istediğiniz kimliği bulun ve seçin, ardından Seç'i seçerek bölmeyi kapatın.

  6. Mantıksal sunucunuzun Microsoft Entra ID sayfasının üst kısmında Kaydet'ı seçin.

    Object ID, Microsoft Entra kullanıcıların ve grupların yönetici adının yanında görüntülenir. Uygulamalar (hizmet sorumluları) için Uygulama Kimliği görüntülenir.

Yöneticiyi değiştirme işlemi birkaç dakika sürebilir. Ardından yeni yönetici Microsoft Entra admin alanında görünür.

Yöneticiyi kaldırmak için, Microsoft Entra ID sayfasının üst kısmından Remove admin öğesini ve ardından Kaydet'yi seçin. Microsoft Entra yöneticisinin kaldırılması, mantıksal sunucunuz için Microsoft Entra kimlik doğrulamasını devre dışı bırakır.

Not

Microsoft Entra yöneticisi, sunucunun master veritabanında kullanıcı (veritabanı sorumlusu) olarak depolanır. Veritabanı asıl adlarının benzersiz olması gerektiğinden, yöneticinin görünen adı sunucunun master veritabanındaki herhangi bir kullanıcının adıyla aynı olamaz. Zaten mevcut olan bir kullanıcı adı varsa, Microsoft Entra yönetici kurulumu başarısız olur ve adın zaten kullanımda olduğunu belirterek geri alınır.

Microsoft Graph izinlerini atayın

Bazı işlemler için Azure Synapse Analytics, Microsoft Graph izinleri'nde açıklandığı gibi Microsoft Graph'ı sorgulamak için izinler gerektirir. Azure Synapse Analytics, kaynak kimliğinde Application.Read.All, User.Read.All ve GroupMember.Read.All gibi ayrıntılı Microsoft Graph API izinlerini destekler. Bu yaklaşım en az ayrıcalık ilkesini izler ve önerilir. Ayrıca Dizin Okuyucuları rolünü daha geniş bir alternatif olarak da kullanabilirsiniz. Daha fazla bilgi için bkz. Managed identities in Microsoft Entra for Azure Synapse Analytics.

Dizin Okuyucuları rolü

Rehberli bir prosedür için, bkz. Dizin Okuyucuları rolünü bir Microsoft Entra grubuna atama.

Aşağıdaki PowerShell betiği, Dizin Okuyucuları rolüne Azure Synapse kaynak kimliği ekler.

# This script grants "Directory Readers" permission to an Azure Synapse service principal.
# It can be executed only by a user who is a member of the **Privileged Roles Administrator** role.

Import-Module Microsoft.Graph.Authentication
$instanceName = "<InstanceName>"        # Enter the name of your managed instance or server
$tenantId = "<TenantId>"                       # Enter your tenant ID

Connect-MgGraph -TenantId $tenantId -Scopes "RoleManagement.ReadWrite.Directory"

# Get Microsoft Entra "Directory Readers" role and create if it doesn't exist
$roleName = "Directory Readers"
$role = Get-MgDirectoryRole -Filter "DisplayName eq '$roleName'"
if ($role -eq $null) {
    # Instantiate an instance of the role template
    $roleTemplate = Get-MgDirectoryRoleTemplate -Filter "DisplayName eq '$roleName'"
    New-MgDirectoryRoleTemplate -RoleTemplateId $roleTemplate.Id
    $role = Get-MgDirectoryRole -Filter "DisplayName eq '$roleName'"
}

# Get service principal for your logical server
$roleMember = Get-MgServicePrincipal -Filter "DisplayName eq '$instanceName'"
$roleMember.Count
if ($roleMember -eq $null) {
    Write-Output "Error: No service principal with name '$($instanceName)' found, make sure that instanceName parameter was entered correctly."
    exit
}
if (-not ($roleMember.Count -eq 1)) {
    Write-Output "Error: Multiple service principals with name '$($instanceName)'"
    Write-Output $roleMember | Format-List DisplayName, Id, AppId
    exit
}

# Check if service principal is already member of Directory Readers role
$isDirReader = Get-MgDirectoryRoleMember -DirectoryRoleId $role.Id -Filter "Id eq '$($roleMember.Id)'"
if ($isDirReader -eq $null) {
    # Add principal to Directory Readers role
    Write-Output "Adding service principal '$($instanceName)' to 'Directory Readers' role..."
    $body = @{
        "@odata.id"= "https://graph.microsoft.com/v1.0/directoryObjects/{$($roleMember.Id)}"
    }
    New-MgDirectoryRoleMemberByRef -DirectoryRoleId $role.Id -BodyParameter $body
    Write-Output "'$($instanceName)' service principal added to 'Directory Readers' role."
} else {
    Write-Output "Service principal '$($instanceName)' is already member of 'Directory Readers' role."
}

Microsoft Entra yöneticisi artık Microsoft Entra sunucu sorumluları (girişler) ve veritabanı sorumluları (kullanıcılar) oluşturabilir.

SQL'de Microsoft Entra ilkelerini oluşturma

Azure Synapse Analytics'te Microsoft Entra kimlik doğrulamasıyla bir veritabanına bağlanmak için, bu kimlik için veritabanında en az CONNECT iznine sahip bir güvenlik sorumlusu yapılandırmanız gerekir.

Veritabanı kullanıcı izinleri

Bir veritabanı kullanıcısı oluşturduğunuzda, varsayılan olarak veritabanı için CONNECT iznini alır. Veritabanı kullanıcısı da izinleri iki durumda devralır:

  • Kullanıcı, sunucuda ayrıca izinlere sahip Microsoft Entra grubunun üyesidir.
  • Kullanıcıyı bir girişten oluşturuyorsunuz ve kullanıcı, girişin veritabanı için geçerli olan, sunucu tarafından atanmış izinlerini devralır.

Sunucu ve veritabanı sorumluları için izinleri yönetme, sorumlu türüne (Microsoft Entra ID, SQL kimlik doğrulaması vb.) bakılmaksızın aynı şekilde çalışır. Kullanıcılara doğrudan izin vermek yerine veritabanı rollerine izin verin. Sonra uygun izinlere sahip rollere kullanıcılar ekleyin. Bu yaklaşım, uzun vadeli izin yönetimini basitleştirir ve artık uygun olmadığında bir kimliğin erişimi sürdürme olasılığını azaltır.

Daha fazla bilgi için bakınız:

Kapsanan veritabanı kullanıcıları

Kapsanan veritabanı kullanıcısı, veritabanında oturum açma bilgilerine master bağlı olmayan bir SQL kullanıcısı türüdür. Microsoft Entra içerilen veritabanı kullanıcısı oluşturmak için, en azından ALTER ANY USER iznine sahip bir Microsoft Entra kimliğiyle veritabanına bağlanın. Aşağıdaki T-SQL örneği, Microsoft Entra ID'den Microsoft_Entra_principal_name adlı bir veritabanı aslı oluşturur.

CREATE USER [<Microsoft_Entra_principal_name>] FROM EXTERNAL PROVIDER;

Microsoft Entra grubuna ait kapalı bir veritabanı kullanıcısı oluşturmak için grubun görünen adını girin:

CREATE USER [ICU Nurses] FROM EXTERNAL PROVIDER;

Yönetilen kimlik veya hizmet sorumlusu için bağımsız veritabanı kullanıcısı oluşturmak için kimliğin görünen adını girin:

CREATE USER [appName] FROM EXTERNAL PROVIDER;

Microsoft Entra kullanıcısı için kapsamalı bir veritabanı kullanıcısı oluşturmak için kimliğin kullanıcı ana adını girin.

CREATE USER [adrian@contoso.com] FROM EXTERNAL PROVIDER;

Oturum açma tabanlı kullanıcılar

Not

Microsoft Entra server principals (logins) şu anda Azure Synapse Analytics için önizleme aşamasında.

Microsoft Entra sunucu güvenlik ilkeleri (ya da oturumlar) desteklenir; bu da kapsanan veritabanı kullanıcılarının gerekli olmaması anlamına gelir. Veritabanı ilkeleri (kullanıcılar) bir sunucu ilkesine göre oluşturulabilir; bu da Microsoft Entra kullanıcılarının, sunucu düzeyinde atanan giriş izinlerini devralabileceği anlamına gelir.

CREATE USER [appName] FROM LOGIN [appName];

Microsoft Entra sunucu ilkeleri (oturum açma bilgileri) oluşturma söz dizimi için bkz. CREATE LOGIN.

Dış kullanıcılar

Azure aboneliğinizle ilişkilendirilmiş olandan farklı bir Microsoft Entra kiracısında yönetilen bir kimlik için doğrudan veritabanı kullanıcısı oluşturamazsınız. Ancak, diğer dizinlerden kullanıcıları ilgili dizine dış kullanıcı olarak aktarabilirsiniz. Sonra bunları kullanarak veritabanına erişebilecek içeren veritabanı kullanıcıları oluşturabilirsiniz. Dış kullanıcılar, Microsoft Entra gruplarına üyelik yoluyla da erişim elde edebilir.

Örnekler: Microsoft Entra federe veya yönetilen etki alanı kullanıcısını temsil eden bir sınırlı veritabanı kullanıcısı oluşturmak için:

CREATE USER [alice@fabrikam.com] FROM EXTERNAL PROVIDER;
  • Yönetilen bir alan adına harici kullanıcı olarak aktardığınız federe etki alanı kullanıcı hesabı, yönetilen alan kimliğini kullanmak zorundadır.

Ad konusunda dikkat edilmesi gerekenler

T-SQL : ve & deyimlerinde kullanıcı adlarında iki nokta CREATE LOGIN veya ampersand CREATE USER gibi özel karakterler kullanılamaz.

Microsoft Entra ID ve Azure Synapse Analytics, kullanıcı yönetim tasarımında tek önemli bir şekilde farklılık gösterir: Microsoft Entra ID, bir kiracı içinde tekrarlanan ekran adlarına izin verirken, Azure Synapse Analytics özel bir SQL havuzunda benzersiz sunucu sorumlusu adları ve veritabanında benzersiz veritabanı sorumlusu adları gerektirir.

Microsoft Graph izinleri

Bu komut, oturum açmış kullanıcı adına Microsoft Entra ID’ye (dış sağlayıcı) erişmek için Azure Synapse Analytics’i gerektirir. Bazen Microsoft Entra ID bir istisna döndürür.

  • Microsoft Entra Id'ye özgü hata iletisini içeren SQL hatası 33134 ile karşılaşabilirsiniz. Hata genellikle erişimin reddedildiğini, kullanıcının kaynağa erişmek için MFA'ya kaydolması gerektiğini veya birinci taraf uygulamalar arasındaki erişimin ön yetkilendirme yoluyla işlenmesi gerektiğini belirtir. İlk iki durumda, sorun genellikle kullanıcının Microsoft Entra kiracısında ayarlanan Koşullu Erişim ilkelerinden kaynaklanır: kullanıcının dış sağlayıcıya erişmesini engeller. Koşullu Erişim politikalarını, uygulama 00000003-0000-0000-c000-000000000000’a (Microsoft Graph API'nin uygulama kimliği) erişime izin verecek şekilde güncellemek sorunu çözmelidir. Hata, birinci taraf uygulamalar arasındaki erişimin ön yetkilendirme yoluyla işlenmesi gerektiğini belirtiyorsa, sorunun nedeni kullanıcının hizmet sorumlusu olarak oturum açmış olmasıdır. Bunun yerine bir kullanıcı tarafından yürütülürse komut başarılı olmalıdır.
  • Bağlantı Zaman Aşımı Süresi Doldu alırsanız, bağlantı dizesi TransparentNetworkIPResolution parametresini false olarak ayarlamanız gerekebilir. Daha fazla bilgi için .NET Framework 4.6.1 - TransparentNetworkIPResolution ile ilgili Bağlantı zaman aşımı sorunu başlıklı belgeye bakın.

Microsoft Entra kimliklerine dayalı kapsayıcı veritabanı kullanıcıları oluşturma hakkında daha fazla bilgi için bkz. CREATE USER.

Çok faktörlü kimlik doğrulamasını yapılandırma

Güvenliği artırmak için, kullanıcıyı veritabanına kimlik doğrulaması için telefon görüşmesi veya kimlik doğrulama uygulaması gibi ikinci bir yöntem kullanmasını isteyen çok faktörlü kimlik doğrulama (MFA) yapılandırmayı düşünün.

Azure Synapse Analytics ile çok faktörlü kimlik doğrulama kullanmak için önce çok faktörlü kimlik doğrulamayı etkinleştirin, ardından MFA'yı zorunlu kılmak için Koşullu Erişim politikası kullanın.

Microsoft Entra ile bağlanma

Microsoft Entra kimlik doğrulaması yapılandırıldıktan sonra, Azure Synapse Analytics'e bağlanmak için SQL Server Management Studio veya SQL Server Veri Araçları ile bunu kullanabilir ve istemci uygulamalarını Microsoft Entra kimliklerini kullanarak bağlanacak şekilde yapılandırabilirsiniz.

Microsoft Entra kimlik doğrulaması sorunlarını giderme

Rehberlik için bkz. Microsoft Entra kimlik doğrulamasıyla ilgili sorunların giderilmesi.