Partilhar via


Obtenha os valores necessários para autenticar um aplicativo para acessar o Banco de Dados SQL do Azure a partir do código

Aplica-se a:Banco de Dados SQL do AzureBanco de Dados SQL no Fabric

Para criar e gerenciar um Banco de Dados SQL do Azure a partir do código, você deve registrar seu aplicativo com a ID do Microsoft Entra (anteriormente Azure Ative Directory). A aplicação deve ser registada no mesmo tenant do Microsoft Entra que o seu recurso da Base de Dados SQL do Azure.

Criar uma entidade de serviço para aceder a recursos de uma aplicação

Os exemplos a seguir criam a aplicação Microsoft Entra e a entidade de serviço que precisamos para autenticar a nossa aplicação C#. Os valores que o script fornece de que precisamos para o exemplo de C# anterior. Para obter informações detalhadas, consulte Usar o Azure PowerShell para criar um principal de serviço para aceder a recursos.

Importante

O módulo PowerShell Azure Resource Manager (AzureRM) foi preterido em 29 de fevereiro de 2024. Todo o desenvolvimento futuro deve usar o módulo Az.Sql. Os usuários são aconselhados a migrar do AzureRM para o módulo Az PowerShell para garantir suporte e atualizações contínuos. O módulo AzureRM não é mais mantido ou suportado. Os argumentos para os comandos no módulo Az PowerShell e nos módulos AzureRM são substancialmente idênticos. Para obter mais informações sobre sua compatibilidade, consulte Apresentando o novo módulo do 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