Bagikan melalui


Menyiapkan identitas terkelola dan autentikasi Microsoft Entra untuk SQL Server yang diaktifkan oleh Azure Arc

Berlaku untuk: SQL Server 2025 (17.x)

Artikel ini menyediakan instruksi langkah demi langkah untuk menyiapkan dan mengonfigurasi identitas terkelola ID Microsoft Entra untuk SQL Server yang diaktifkan oleh Azure Arc.

Untuk gambaran umum identitas terkelola dengan SQL Server, lihat Identitas terkelola untuk SQL Server yang diaktifkan oleh Azure Arc.

Prasyarat

Sebelum Anda dapat menggunakan identitas terkelola dengan SQL Server yang diaktifkan oleh Azure Arc, pastikan Anda memenuhi prasyarat berikut:

Mengaktifkan identitas terkelola utama

Jika Anda telah menginstal Ekstensi Azure untuk SQL Server ke server, Anda dapat mengaktifkan identitas terkelola utama untuk instans SQL Server Anda langsung dari portal Microsoft Azure. Dimungkinkan juga untuk mengaktifkan identitas terkelola utama secara manual dengan memperbarui registri, tetapi harus dilakukan dengan sangat hati-hati.

Untuk mengaktifkan identitas terkelola utama di portal Microsoft Azure, ikuti langkah-langkah berikut:

  1. Buka SQL Server Anda yang diaktifkan oleh sumber daya Azure Arc di portal Microsoft Azure.

  2. Di bawah Pengaturan, pilih MICROSOFT Entra ID dan Purview untuk membuka halaman ID Microsoft Entra dan Purview .

    Nota

    Jika Anda tidak melihat opsi Aktifkan autentikasi ID Microsoft Entra , pastikan instans SQL Server Anda tersambung ke Azure Arc dan ekstensi SQL terbaru telah terinstal.

  3. Pada halaman ID Microsoft Entra dan Purview , centang kotak di samping Gunakan identitas terkelola utama lalu gunakan Simpan untuk menerapkan konfigurasi Anda:

    Cuplikan layar opsi Microsoft Entra di portal Microsoft Azure.

Memberikan izin aplikasi pada identitas.

Penting

Hanya Administrator Peran Istimewa atau peran yang lebih tinggi yang dapat memberikan izin ini.

Identitas terkelola yang ditetapkan sistem, yang menggunakan nama komputer berkemampuan Arc, harus memiliki izin aplikasi Microsoft Graph berikut (peran aplikasi):

Anda dapat menggunakan PowerShell untuk memberikan izin yang diperlukan ke identitas terkelola. Atau, Anda dapat membuat grup yang dapat ditetapkan peran. Setelah grup dibuat, tetapkan peran Pembaca Direktori atau User.Read.Allizin , , GroupMember.Read.Alldan Application.Read.All ke grup, dan tambahkan semua identitas terkelola yang ditetapkan sistem untuk komputer berkemampuan Azure Arc Anda ke grup. Kami tidak merekomendasikan penggunaan peran Pembaca Direktori di lingkungan produksi Anda.

Skrip PowerShell berikut memberikan izin yang diperlukan ke identitas terkelola. Pastikan skrip ini dijalankan pada PowerShell 7.5 atau versi yang lebih baru, dan memiliki Microsoft.Graph modul 2.28 atau yang lebih baru yang terinstal.

# Set your Azure tenant and managed identity name
$tenantID = '<Enter-Your-Azure-Tenant-Id>'
$managedIdentityName = '<Enter-Your-Arc-HostMachine-Name>'

# Connect to Microsoft Graph
try {
    Connect-MgGraph -TenantId $tenantID -ErrorAction Stop
    Write-Output "Connected to Microsoft Graph successfully."
}
catch {
    Write-Error "Failed to connect to Microsoft Graph: $_"
    return
}

# Get Microsoft Graph service principal
$graphAppId = '00000003-0000-0000-c000-000000000000'
$graphSP = Get-MgServicePrincipal -Filter "appId eq '$graphAppId'"
if (-not $graphSP) {
    Write-Error "Microsoft Graph service principal not found."
    return
}

# Get the managed identity service principal
$managedIdentity = Get-MgServicePrincipal -Filter "displayName eq '$managedIdentityName'"
if (-not $managedIdentity) {
    Write-Error "Managed identity '$managedIdentityName' not found."
    return
}

# Define roles to assign
$requiredRoles = @(
    "User.Read.All",
    "GroupMember.Read.All",
    "Application.Read.All"
)

# Assign roles using scoped syntax
foreach ($roleValue in $requiredRoles) {
    $appRole = $graphSP.AppRoles | Where-Object {
        $_.Value -eq $roleValue -and $_.AllowedMemberTypes -contains "Application"
    }

    if ($appRole) {
        try {
            New-MgServicePrincipalAppRoleAssignment   -ServicePrincipalId $managedIdentity.Id `
                -PrincipalId $managedIdentity.Id `
                -ResourceId $graphSP.Id `
                -AppRoleId $appRole.Id `
                -ErrorAction Stop

            Write-Output "Successfully assigned role '$roleValue' to '$managedIdentityName'."
        }
        catch {
            Write-Warning "Failed to assign role '$roleValue': $_"
        }
    }
    else {
        Write-Warning "Role '$roleValue' not found in Microsoft Graph AppRoles."
    }
}

Membuat login dan pengguna

Ikuti langkah-langkah dalam tutorial Microsoft Entra untuk membuat login dan pengguna untuk identitas terkelola.