Uzyskiwanie wymaganych wartości do uwierzytelniania aplikacji w celu uzyskania dostępu do usługi Azure SQL Database z kodu

Dotyczy: Azure SQL Database

Aby utworzyć usługę Azure SQL Database i zarządzać nią na podstawie kodu, musisz zarejestrować aplikację przy użyciu identyfikatora Entra firmy Microsoft (dawniej Azure Active Directory). Aplikacja musi być zarejestrowana w tej samej dzierżawie firmy Microsoft co zasób usługi Azure SQL Database.

Tworzenie jednostki usługi w celu uzyskiwania dostępu do zasobów z poziomu aplikacji

W poniższych przykładach utworzono aplikację Microsoft Entra i jednostkę usługi, którą musimy uwierzytelnić w naszej aplikacji w języku C#. Skrypt generuje wartości wyjściowe potrzebne w poprzednim przykładzie w języku C#. Aby uzyskać szczegółowe informacje, zobacz Tworzenie usługi podmiotu używanej do uzyskiwania dostępu do zasobów przy użyciu programu Azure PowerShell.

Ważne

Moduł Azure Resource Manager (RM) programu PowerShell jest nadal obsługiwany przez usługę SQL Database, ale wszystkie przyszłe programowanie dotyczy modułu Az.Sql. Moduł AzureRM będzie nadal otrzymywać poprawki błędów do co najmniej grudnia 2020 r. Argumenty poleceń w module Az i modułach AzureRm są zasadniczo identyczne. Aby uzyskać więcej informacji na temat ich zgodności, zobacz Wprowadzenie do nowego modułu Az programu 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

Zobacz też

Tworzenie bazy danych w usłudze Azure SQL Database przy użyciu języka C#
Nawiązywanie połączenia z usługą Azure SQL Database przy użyciu uwierzytelniania entra firmy Microsoft