Поделиться через


Получение необходимых значений для проверки подлинности приложения при предоставлении доступа к Базе данных SQL Azure из кода

Применимо к: База данных SQL Azure базе данных SQL в Fabric

Чтобы создать База данных SQL Azure из кода и управлять ими, необходимо зарегистрировать приложение с помощью идентификатора Microsoft Entra (ранее — Azure Active Directory). Приложение должно быть зарегистрировано в том же клиенте Microsoft Entra, что и ресурс База данных SQL Azure.

Создание субъекта-службы для доступа к ресурсам из приложения

В следующих примерах создается приложение Microsoft Entra и субъект-служба, необходимые для проверки подлинности приложения C#. Сценарий выводит значения, необходимые для предыдущего примера на C#. Дополнительные сведения см. в статье Использование Azure PowerShell для создания субъекта-службы и доступа к ресурсам.

Внимание

Модуль PowerShell Azure Resource Manager пока еще поддерживается Базой данных SQL, но вся будущая разработка сосредоточена на модуле Az.Sql. Исправления ошибок для модуля AzureRM будут продолжать выпускаться как минимум до декабря 2020 г. Аргументы команд в модулях Az и AzureRm практически идентичны. Дополнительные сведения о совместимости см. в статье Знакомство с новым модулем Az для Azure 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

См. также

Руководство. Проектирование реляционной базы данных в службе "База данных SQL Azure" на языке C# с помощью ADO.NET
Подключение к База данных SQL Azure с помощью проверки подлинности Microsoft Entra