Sdílet prostřednictvím


Získání požadovaných hodnot pro ověřování aplikace pro přístup ke službě Azure SQL Database z kódu

Platí pro: Azure SQL Database SQL Databasev prostředcích infrastruktury

Pokud chcete vytvořit a spravovat službu Azure SQL Database z kódu, musíte aplikaci zaregistrovat v Microsoft Entra ID (dříve Azure Active Directory). Aplikace musí být zaregistrovaná ve stejném tenantovi Microsoft Entra jako prostředek azure SQL Database.

Vytvoření instančního objektu pro přístup k prostředkům z aplikace

Následující příklady vytvoří aplikaci Microsoft Entra a instanční objekt, který potřebujeme k ověření naší aplikace v jazyce C#. Skript vypíše hodnoty potřebné pro předchozí ukázku v jazyce C#. Podrobné informace najdete v tématu Vytvoření instančního objektu pro přístup k prostředkům pomocí prostředí Azure PowerShell.

Důležité

Modul Azure Resource Manager (AzureRM) PowerShellu byl 29. února 2024 zastaralý. Veškerý budoucí vývoj by měl používat modul Az.Sql. Uživatelům se doporučuje migrovat z AzureRM do modulu Az PowerShell, aby se zajistila nepřetržitá podpora a aktualizace. Modul AzureRM se už neudržuje ani nepodporuje. Argumenty pro příkazy v modulu Az PowerShell a v modulech AzureRM jsou podstatně identické. Další informace o jejich kompatibilitě najdete v tématu Představujeme nový modul Az PowerShell.

# 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

Viz také

Vytvoření databáze ve službě Azure SQL Database pomocí jazyka C#
Připojení ke službě Azure SQL Database pomocí ověřování Microsoft Entra