Catatan
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba masuk atau mengubah direktori.
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba mengubah direktori.
Artikel ini menunjukkan cara menggunakan Microsoft Entra ID untuk autentikasi dengan Azure Synapse Analytics.
Catatan
Prinsipal server Microsoft Entra saat ini sedang dalam pratinjau untuk Azure Synapse Analytics.
Prerequisites
Untuk menggunakan autentikasi Microsoft Entra dengan Azure Synapse Analytics, Anda memerlukan prasyarat berikut:
- Instansi Microsoft Entra yang terisi pengguna dan grup.
- Workspace Azure Synapse yang sudah ada atau pool SQL khusus yang berdiri sendiri.
Buat dan isi tenant Microsoft Entra
Sebelum Anda dapat mengonfigurasi autentikasi Microsoft Entra untuk Azure Synapse Analytics, Anda perlu membuat tenant Microsoft Entra dan mengisinya dengan pengguna serta grup. Anda dapat mengelola tenant Microsoft Entra sepenuhnya di dalam Azure atau menggunakannya untuk federasi Active Directory Domain Services lokal.
Untuk informasi selengkapnya, lihat:
- Apa itu ID Microsoft Entra?
- Mengintegrasikan identitas lokal Anda dengan Microsoft Entra ID
- Tambahkan nama domain Anda ke Microsoft Entra ID
- Apa itu federasi dengan Microsoft Entra ID?
- Sinkronisasi direktori dengan ID Microsoft Entra
- Kelola Microsoft Entra ID menggunakan Windows PowerShell
- Identitas Hibrid: Port dan Protokol yang Diperlukan
Menetapkan admin Microsoft Entra
Untuk menggunakan autentikasi Microsoft Entra, sumber daya Azure Synapse Anda memerlukan administrator Microsoft Entra.
Anda juga dapat mengonfigurasi administrator Microsoft Entra saat membuat sumber daya. Jika administrator sudah dikonfigurasi, lewati bagian ini.
Ruang kerja Azure Synapse
Untuk ruang kerja Azure Synapse, konfigurasikan administrator Microsoft Entra di ruang kerja tersebut. Untuk informasi lebih lanjut, lihat Struktur Administrator.
pool SQL dedikasi mandiri
Saat Anda mengatur administrator Microsoft Entra, Anda mengaktifkan autentikasi Microsoft Entra untuk server logis yang menjadi host pool SQL khusus mandiri. Anda dapat mengatur administrator menggunakan portal Azure, PowerShell, Azure CLI, atau REST API.
Di portal Azure, Anda dapat menemukan nama server logis
- Di kolom server name pada halaman Overview dari kumpulan SQL khusus mandiri Anda di Azure Synapse Analytics.
Untuk mengatur admin Microsoft Entra untuk server logis Anda di portal Microsoft Azure, ikuti langkah-langkah berikut:
Di panel Azure portal Directories + subscriptions, pilih direktori yang berisi sumber daya Azure Synapse Anda sebagai Current directory.
Cari server SQL lalu pilih server logis untuk pool SQL khusus Anda untuk membuka panel server SQL .
Pada panel server SQL untuk server logis Anda, pilih Microsoft Entra ID di bawah Settings untuk membuka panel Microsoft Entra ID.
Pada panel Microsoft Entra ID, pilih Set admin untuk membuka panel Microsoft Entra ID.
Panel Microsoft Entra ID memperlihatkan semua pengguna, grup, dan aplikasi di direktori Anda saat ini dan memungkinkan Anda mencari berdasarkan nama, alias, atau ID. Temukan identitas yang Anda inginkan untuk admin Microsoft Entra Anda dan pilih identitas tersebut, lalu pilih Pilih untuk menutup panel.
Di bagian atas halaman Microsoft Entra ID untuk server logis Anda, pilih Simpan.
ID Object ditampilkan di samping nama admin untuk pengguna dan grup Microsoft Entra. Untuk aplikasi (perwakilan layanan), ID Aplikasi ditampilkan.
Proses mengubah administrator mungkin memakan waktu beberapa menit. Kemudian administrator baru muncul di bidang admin Microsoft Entra.
Untuk menghapus admin, di bagian atas halaman Microsoft Entra ID, pilih Pindahkan admin, lalu pilih Simpan. Menghapus admin Microsoft Entra menonaktifkan autentikasi Microsoft Entra untuk server logis Anda.
Catatan
Administrator Microsoft Entra disimpan dalam basis data master server sebagai pengguna (identitas utama basis data). Karena nama utama database harus unik, nama tampilan admin tidak boleh sama dengan nama pengguna mana pun di database server master . Jika seorang pengguna dengan nama tersebut sudah ada, konfigurasi admin Microsoft Entra akan gagal dan dibatalkan, menunjukkan bahwa nama tersebut sudah digunakan.
Menetapkan izin Microsoft Graph
Untuk beberapa operasi, Azure Synapse Analytics memerlukan izin untuk melakukan query ke Microsoft Graph, seperti dijelaskan dalam izin Microsoft Graph. Azure Synapse Analytics mendukung izin Microsoft Graph API yang rinci seperti User.Read.All, GroupMember.Read.All, dan Application.Read.All pada identitas sumber daya. Pendekatan ini mengikuti prinsip hak istimewa paling sedikit dan direkomendasikan. Anda juga dapat menggunakan peran Pembaca Direktori sebagai alternatif yang lebih luas. Untuk informasi lebih lanjut, lihat Managed identities in Microsoft Entra for Azure Synapse Analytics.
Peran Pembaca Direktori
Untuk prosedur terpandu, lihat Tetapkan peran Directory Readers ke grup Microsoft Entra.
Skrip PowerShell berikut menambahkan identitas sumber daya Azure Synapse ke peran Directory Readers.
# 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."
}
Administrator Microsoft Entra sekarang dapat membuat Microsoft Entra server principal (login) dan database principal (pengguna).
Membuat prinsipal Microsoft Entra di SQL
Untuk terhubung ke database di Azure Synapse Analytics dengan autentikasi Microsoft Entra, Anda perlu mengonfigurasi principal di database untuk identitas tersebut dengan setidaknya izin CONNECT CONNECT.
Izin pengguna database
Saat Anda membuat pengguna basis data, pengguna tersebut secara default menerima CONNECT izin ke basis data tersebut. Pengguna database juga mewarisi izin dalam dua keadaan:
- Pengguna adalah anggota grup Microsoft Entra yang juga diberikan izin pada server.
- Anda membuat pengguna dari sebuah login, dan pengguna mewarisi izin login yang diberikan server untuk database tersebut.
Mengelola izin untuk server dan entitas database mengikuti cara yang sama terlepas dari jenis entitas (ID Microsoft Entra, autentikasi SQL, dll.). Berikan izin pada peran basis data daripada langsung memberikan izin kepada pengguna. Kemudian tambahkan pengguna ke peran dengan izin yang sesuai. Pendekatan ini menyederhanakan pengelolaan izin jangka panjang dan mengurangi kemungkinan identitas mempertahankan akses saat akses tersebut tidak lagi semestinya.
Untuk informasi selengkapnya, lihat:
- Izin dan contoh mesin database
- Blog: Dasar-dasar izin akses Mesin Basis Data
- Otorisasi akses database ke Azure Synapse Analytics
Pengguna database terbatas
Pengguna database tertutup adalah jenis pengguna SQL yang tidak terhubung ke login di master database. Untuk membuat pengguna database mandiri Microsoft Entra, hubungkan ke database dengan identitas Microsoft Entra yang memiliki setidaknya izin ALTER ANY USER. Contoh T-SQL berikut membuat principal database bernama Microsoft_Entra_principal_name dari Microsoft Entra ID.
CREATE USER [<Microsoft_Entra_principal_name>] FROM EXTERNAL PROVIDER;
Untuk membuat pengguna database terpisah untuk grup Microsoft Entra, masukkan nama tampilan grup:
CREATE USER [ICU Nurses] FROM EXTERNAL PROVIDER;
Untuk membuat pengguna database mandiri untuk identitas terkelola atau perwakilan layanan, masukkan nama tampilan identitas:
CREATE USER [appName] FROM EXTERNAL PROVIDER;
Untuk membuat pengguna database terkurung untuk pengguna Microsoft Entra, masukkan nama utama pengguna dari identitas:
CREATE USER [adrian@contoso.com] FROM EXTERNAL PROVIDER;
Pengguna berbasis login
Catatan
Microsoft Entra server principal (login) saat ini sedang dalam pratinjau untuk Azure Synapse Analytics.
Prinsipal server Microsoft Entra (atau login) didukung, yang berarti pengguna database terkontener tidak diperlukan. Prinsipal database (pengguna) dapat dibuat berdasarkan prinsipal server, yang berarti pengguna Microsoft Entra dapat mewarisi izin masuk tingkat server yang ditetapkan.
CREATE USER [appName] FROM LOGIN [appName];
Untuk sintaksis tentang membuat prinsipal server Microsoft Entra (login), lihat CREATE LOGIN.
Pengguna eksternal
Anda tidak dapat langsung membuat pengguna database untuk identitas yang dikelola di tenant Microsoft Entra yang berbeda dari yang terkait dengan langganan Azure Anda. Namun, Anda dapat mengimpor pengguna dari direktori lain ke direktori terkait sebagai pengguna eksternal. Anda kemudian dapat menggunakannya untuk membuat pengguna database mandiri yang dapat mengakses database. Pengguna eksternal juga dapat memperoleh akses melalui keanggotaan di grup Microsoft Entra.
Examples: Untuk membuat pengguna database terkontain yang mewakili pengguna domain terfederasi atau terkelola Microsoft Entra:
CREATE USER [alice@fabrikam.com] FROM EXTERNAL PROVIDER;
- Akun pengguna domain federasi yang Anda impor ke domain terkelola sebagai pengguna eksternal harus menggunakan identitas domain terkelola.
Pertimbangan nama
Anda tidak bisa menggunakan karakter khusus seperti titik dua : atau ampersand & dalam nama pengguna dalam pernyataan T-SQL CREATE LOGIN dan CREATE USER.
Microsoft Entra ID dan Azure Synapse Analytics berbeda dalam desain manajemen pengguna mereka dalam satu hal utama: Microsoft Entra ID mengizinkan nama tampilan duplikat dalam tenant, sedangkan Azure Synapse Analytics membutuhkan nama server principal unik dalam pool SQL khusus dan nama principal database unik dalam database.
Izin Microsoft Graph
Perintah CREATE USER ... FROM EXTERNAL PROVIDER ini memerlukan Azure Synapse Analytics untuk mengakses Microsoft Entra ID (penyedia eksternal) atas nama pengguna yang masuk. Kadang-kadang, Microsoft Entra ID mengembalikan exception.
- Anda mungkin mengalami kesalahan SQL 33134, yang berisi pesan kesalahan khusus ID Microsoft Entra. Kesalahan biasanya mengatakan bahwa akses ditolak, bahwa pengguna harus mendaftar di MFA untuk mengakses sumber daya, atau bahwa akses antara aplikasi pihak pertama harus ditangani melalui praautorisasi. Dalam dua kasus pertama, masalah biasanya disebabkan oleh kebijakan Akses Bersyarat yang diatur dalam penyewa Microsoft Entra milik pengguna, yang mencegah pengguna mengakses penyedia eksternal. Memperbarui kebijakan Akses Bersyarat untuk mengizinkan akses ke aplikasi
00000003-0000-0000-c000-000000000000(ID aplikasi Microsoft Graph API) seharusnya menyelesaikan masalah. Jika kesalahan mengatakan akses antara aplikasi pihak pertama harus ditangani melalui praautorisasi, masalahnya adalah karena pengguna masuk sebagai perwakilan layanan. Perintah harus berhasil jika dijalankan oleh pengguna sebagai gantinya. - Jika Anda menerima Kedaluwarsa Batas Waktu Koneksi, Anda mungkin perlu mengatur parameter
TransparentNetworkIPResolutiondari string koneksi ke false. Untuk informasi selengkapnya, lihat Masalah batas waktu koneksi dengan .NET Framework 4.6.1 - TransparentNetworkIPResolution.
Untuk informasi selengkapnya tentang membuat pengguna database mandiri berdasarkan identitas Microsoft Entra, lihat MEMBUAT PENGGUNA.
Konfigurasikan autentikasi multifaktor
Untuk meningkatkan keamanan, pertimbangkan konfigurasi autentikasi multifaktor (MFA), yang meminta pengguna menggunakan metode kedua untuk autentikasi ke database, seperti panggilan telepon atau aplikasi autentikasi.
Untuk menggunakan otentikasi multifaktor dengan Azure Synapse Analytics, pertama-tama aktifkan autentikasi multifaktor, lalu gunakan kebijakan Akses Kondisional untuk menegakkan MFA.
Terhubung ke Microsoft Entra
Setelah autentikasi Microsoft Entra dikonfigurasi, Anda dapat menggunakannya untuk terhubung ke Azure Synapse Analytics dengan SQL Server Management Studio atau SQL Server Data Tools, serta mengonfigurasi aplikasi klien untuk terhubung menggunakan identitas Microsoft Entra.
Memecahkan masalah autentikasi Microsoft Entra
Untuk panduan, lihat Memecahkan masalah terkait autentikasi Microsoft Entra.