Bagikan melalui


Mendapatkan nilai yang diperlukan untuk mengautentikasi aplikasi untuk mengakses Azure SQL Database dari kode

Berlaku untuk:Database Azure SQL DatabaseSQL di Fabric

Untuk membuat dan mengelola Azure SQL Database dari kode, Anda harus mendaftarkan aplikasi Anda dengan ID Microsoft Entra (sebelumnya Azure Active Directory). Aplikasi harus terdaftar di penyewa Microsoft Entra yang sama dengan sumber daya Azure SQL Database Anda.

Membuat perwakilan layanan untuk mengakses sumber daya dari aplikasi

Contoh berikut membuat aplikasi Microsoft Entra dan perwakilan layanan yang kita butuhkan untuk mengautentikasi aplikasi C# kita. Skrip mengeluarkan nilai yang kita butuhkan untuk sampel C# sebelumnya. Untuk informasi selengkapnya, lihat Menggunakan Azure PowerShell untuk membuat perwakilan layanan untuk mengakses sumber daya.

Penting

Modul PowerShell Azure Resource Manager (AzureRM) tidak digunakan lagi pada 29 Februari 2024. Semua pengembangan di masa mendatang harus menggunakan modul Az.Sql. Pengguna disarankan untuk bermigrasi dari AzureRM ke modul Az PowerShell untuk memastikan dukungan dan pembaruan yang berkelanjutan. Modul AzureRM tidak lagi dipertahankan atau didukung. Argumen untuk perintah dalam modul Az PowerShell dan dalam modul AzureRM secara substansial identik. Untuk informasi selengkapnya tentang kompatibilitasnya, lihat Memperkenalkan modul Az PowerShell baru.

# sign in to Azure
Connect-AzAccount

# for multiple subscriptions, uncomment and set to the subscription you want to work with
#$subscriptionId = "{xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx}"
#Set-AzContext -SubscriptionId $subscriptionId

$appName = "{app-name}" # display name for your app, must be unique in your directory
$uri = "http://{app-name}" # does not need to be a real uri
$secret = "{app-password}"

# create an AAD app
$azureAdApplication = New-AzADApplication -DisplayName $appName -HomePage $Uri -IdentifierUris $Uri -Password $secret

# create a Service Principal for the app
$svcprincipal = New-AzADServicePrincipal -ApplicationId $azureAdApplication.ApplicationId

Start-Sleep -s 15 # to avoid a PrincipalNotFound error, pause here for 15 seconds

# if you still get a PrincipalNotFound error, then rerun the following until successful.
$roleassignment = New-AzRoleAssignment -RoleDefinitionName Contributor -ServicePrincipalName $azureAdApplication.ApplicationId.Guid

# output the values we need for our C# application to successfully authenticate
Write-Output "Copy these values into the C# sample app"

Write-Output "_subscriptionId:" (Get-AzContext).Subscription.SubscriptionId
Write-Output "_tenantId:" (Get-AzContext).Tenant.TenantId
Write-Output "_applicationId:" $azureAdApplication.ApplicationId.Guid
Write-Output "_applicationSecret:" $secret