Zelfstudie: Verbinding maken met Azure-databases vanuit App Service zonder geheimen met behulp van een beheerde identiteit
Artikel
App Servicex biedt een uiterst schaalbare webhostingservice met self-patchfunctie in Azure. Het biedt ook een beheerde identiteit voor uw app, een kant-en-klare oplossing voor het beveiligen van toegang tot Azure-databases, waaronder:
Beheerde identiteiten in App Service maken uw app veiliger doordat geheimen in uw app, zoals referenties in de verbindingsreeksen, worden verwijderd. In deze zelfstudie leert u hoe u verbinding maakt met de hierboven genoemde databases vanuit App Service met behulp van beheerde identiteiten.
U leert het volgende:
Configureer een Microsoft Entra-gebruiker als beheerder voor uw Azure-database.
Maak verbinding met uw database als de Microsoft Entra-gebruiker.
Configureer een door het systeem toegewezen of door de gebruiker toegewezen beheerde identiteit voor een App Service-app.
Ververleent databasetoegang tot de beheerde identiteit.
Maak verbinding met de Azure-database vanuit uw code (.NET Framework 4.8, .NET 6, Node.js, Python, Java) met behulp van een beheerde identiteit.
Maak verbinding met de Azure-database vanuit uw ontwikkelomgeving met behulp van de Microsoft Entra-gebruiker.
Maak een app in App Service op basis van .NET, Node.js, Python of Java.
Maak een databaseserver met Azure SQL Database, Azure Database for MySQL of Azure Database for PostgreSQL.
U moet bekend zijn met het standaardverbindingspatroon (met gebruikersnaam en wachtwoord) en verbinding kunnen maken vanuit uw App Service-app naar uw gewenste database.
Installeer de Azure CLI, indien gewenst, om CLI-referentieopdrachten uit te voeren. Als u in Windows of macOS werkt, kunt u Azure CLI uitvoeren in een Docker-container. Zie De Azure CLI uitvoeren in een Docker-container voor meer informatie.
Als u een lokale installatie gebruikt, meldt u zich aan bij Azure CLI met behulp van de opdracht az login. Volg de stappen die worden weergegeven in de terminal, om het verificatieproces te voltooien. Raadpleeg Aanmelden bij Azure CLI voor aanvullende aanmeldingsopties.
Installeer de Azure CLI-extensie bij het eerste gebruik, wanneer u hierom wordt gevraagd. Raadpleeg Extensies gebruiken met Azure CLI voor meer informatie over extensies.
Voer az version uit om de geïnstalleerde versie en afhankelijke bibliotheken te vinden. Voer az upgrade uit om te upgraden naar de nieuwste versie.
1. Installeer de extensie zonder wachtwoord voor de serviceconnector
Installeer de nieuwste serviceconnector-extensie zonder wachtwoord voor de Azure CLI:
az extension add --name serviceconnector-passwordless --upgrade
Notitie
Controleer of de extensie 'serviceconnector-passwordless' versie '2.0.2' of hoger is door uit te voeren az version. Mogelijk moet u eerst azure CLI upgraden om de extensieversie te upgraden.
2. Een verbinding zonder wachtwoord maken
Maak vervolgens een verbinding zonder wachtwoord met serviceconnector.
Tip
De Azure-portal kan u helpen de onderstaande opdrachten op te stellen. Ga in Azure Portal naar uw Azure-app Service-resource, selecteer Serviceconnector in het linkermenu en selecteer Maken. Vul het formulier in met alle vereiste parameters. Azure genereert automatisch de opdracht voor het maken van verbindingen, die u kunt kopiëren om in de CLI te gebruiken of uit te voeren in Azure Cloud Shell.
Voor Azure Database for MySQL - Flexible Server moet u eerst handmatig Microsoft Entra-verificatie instellen. Hiervoor is een afzonderlijke door de gebruiker toegewezen beheerde identiteit en specifieke Microsoft Graph-machtigingen vereist. Deze stap kan niet worden geautomatiseerd.
Machtigingen verlenen aan vooraf gemaakte tabellen
Als u vervolgens tabellen en reeksen hebt gemaakt in postgreSQL flexibele server voordat u Service Connector gebruikt, moet u verbinding maken als eigenaar en toestemming verlenen voor <aad-username> het maken van serviceconnector. De gebruikersnaam van de verbindingsreeks of configuratie die is ingesteld door serviceconnector, moet er als aad_<connection name>volgt uitzien. Als u Azure Portal gebruikt, selecteert u de uitvouwknop naast de Service Type kolom en haalt u de waarde op. Als u Azure CLI gebruikt, controleert configurations u de uitvoer van de CLI-opdracht.
Voer vervolgens de query uit om toestemming te verlenen
az extension add --name rdbms-connect
az postgres flexible-server execute -n <postgres-name> -u <owner-username> -p "<owner-password>" -d <database-name> --querytext "GRANT ALL PRIVILEGES ON ALL TABLES IN SCHEMA public TO \"<aad-username>\";GRANT ALL PRIVILEGES ON ALL SEQUENCES IN SCHEMA public TO \"<aad username>\";"
De <owner-username> en <owner-password> is de eigenaar van de bestaande tabel die machtigingen kan verlenen aan anderen. <aad-username> is de gebruiker die is gemaakt door Service Connector. Vervang ze door de werkelijke waarde.
Valideer het resultaat met de opdracht:
az postgres flexible-server execute -n <postgres-name> -u <owner-username> -p "<owner-password>" -d <database-name> --querytext "SELECT distinct(table_name) FROM information_schema.table_privileges WHERE grantee='<aad-username>' AND table_schema='public';" --output table
Met deze serviceconnectoropdracht worden de volgende taken op de achtergrond uitgevoerd:
Schakel door het systeem toegewezen beheerde identiteit in of wijs een gebruikersidentiteit toe voor de app <server-name> die wordt gehost door Azure-app Service.
Stel de Microsoft Entra-beheerder in op de huidige aangemelde gebruiker.
Voeg een databasegebruiker toe voor de door het systeem toegewezen beheerde identiteit of door de gebruiker toegewezen beheerde identiteit. Verdeel alle bevoegdheden van de database <database-name> aan deze gebruiker. De gebruikersnaam vindt u in de verbindingsreeks in de voorgaande opdrachtuitvoer.
Stel configuraties met de naam AZURE_MYSQL_CONNECTIONSTRING, AZURE_POSTGRESQL_CONNECTIONSTRINGof AZURE_SQL_CONNECTIONSTRING op de Azure-resource in op basis van het databasetype.
Voor App Service worden de configuraties ingesteld op de blade App-instellingen .
Als u een probleem ondervindt bij het maken van een verbinding, raadpleegt u Probleemoplossing voor hulp.
Haal de Azure SQL Database-verbindingsreeks op uit de omgevingsvariabele die is toegevoegd door Service Connector.
using Microsoft.Data.SqlClient;
// AZURE_SQL_CONNECTIONSTRING should be one of the following:
// For system-assigned managed identity:"Server=tcp:<server-name>.database.windows.net;Database=<database-name>;Authentication=Active Directory Default;TrustServerCertificate=True"
// For user-assigned managed identity: "Server=tcp:<server-name>.database.windows.net;Database=<database-name>;Authentication=Active Directory Default;User Id=<client-id-of-user-assigned-identity>;TrustServerCertificate=True"
string connectionString =
Environment.GetEnvironmentVariable("AZURE_SQL_CONNECTIONSTRING")!;
using var connection = new SqlConnection(connectionString);
connection.Open();
Haal de azure SQL Database-verbindingsconfiguraties op uit de omgevingsvariabele die is toegevoegd door Service Connector. Verwijder opmerkingen bij het deel van het codefragment voor het verificatietype dat u wilt gebruiken.
import os;
import pyodbc
server = os.getenv('AZURE_SQL_SERVER')
port = os.getenv('AZURE_SQL_PORT')
database = os.getenv('AZURE_SQL_DATABASE')
authentication = os.getenv('AZURE_SQL_AUTHENTICATION') # The value should be 'ActiveDirectoryMsi'
# Uncomment the following lines according to the authentication type.
# For system-assigned managed identity.
# connString = f'Driver={{ODBC Driver 18 for SQL Server}};Server={server},{port};Database={database};Authentication={authentication};Encrypt=yes;'
# For user-assigned managed identity.
# client_id = os.getenv('AZURE_SQL_USER')
# connString = f'Driver={{ODBC Driver 18 for SQL Server}};Server={server},{port};Database={database};UID={client_id};Authentication={authentication};Encrypt=yes;'
conn = pyodbc.connect(connString)
Haal de azure SQL Database-verbindingsconfiguraties op uit de omgevingsvariabelen die zijn toegevoegd door Service Connector. Verwijder opmerkingen bij het deel van het codefragment voor het verificatietype dat u wilt gebruiken.
Connectiviteit met Azure Database for MySQL in uw code volgt het DefaultAzureCredential patroon voor alle taalstacks. DefaultAzureCredential is flexibel genoeg om zich aan te passen aan zowel de ontwikkelomgeving als de Azure-omgeving. Wanneer deze lokaal wordt uitgevoerd, kan deze de aangemelde Azure-gebruiker ophalen uit de omgeving van uw keuze (Visual Studio, Visual Studio Code, Azure CLI of Azure PowerShell). Wanneer deze wordt uitgevoerd in Azure, wordt de beheerde identiteit opgehaald. Het is dus mogelijk om zowel tijdens de ontwikkeling als in productie verbinding te maken met de database. Het patroon is als volgt:
Instantieer een DefaultAzureCredential exemplaar van de Azure Identity-clientbibliotheek. Als u een door de gebruiker toegewezen identiteit gebruikt, geeft u de client-id van de identiteit op.
Een toegangstoken ophalen voor Azure Database for MySQL: https://ossrdbms-aad.database.windows.net/.default.
Voor .NET haalt u een toegangstoken op voor de beheerde identiteit met behulp van een clientbibliotheek zoals Azure.Identity. Gebruik vervolgens het toegangstoken als wachtwoord om verbinding te maken met de database. Wanneer u de onderstaande code gebruikt, moet u ervoor zorgen dat u commentaar op het deel van het codefragment opgeeft dat overeenkomt met het verificatietype dat u wilt gebruiken.
using Azure.Core;
using Azure.Identity;
using MySqlConnector;
// Uncomment the following lines according to the authentication type.
// For system-assigned managed identity.
// var credential = new DefaultAzureCredential();
// For user-assigned managed identity.
// var credential = new DefaultAzureCredential(
// new DefaultAzureCredentialOptions
// {
// ManagedIdentityClientId = Environment.GetEnvironmentVariable("AZURE_MYSQL_CLIENTID");
// });
var tokenRequestContext = new TokenRequestContext(
new[] { "https://ossrdbms-aad.database.windows.net/.default" });
AccessToken accessToken = await credential.GetTokenAsync(tokenRequestContext);
// Open a connection to the MySQL server using the access token.
string connectionString =
$"{Environment.GetEnvironmentVariable("AZURE_MYSQL_CONNECTIONSTRING")};Password={accessToken.Token}";
using var connection = new MySqlConnection(connectionString);
Console.WriteLine("Opening connection using access token...");
await connection.OpenAsync();
// do something
Voeg de volgende afhankelijkheden toe aan uw pom.xml-bestand :
Verifiëren met een toegangstoken uit de azure-identity bibliotheek. Haal de verbindingsgegevens op uit de omgevingsvariabele die is toegevoegd door Service Connector. Wanneer u de onderstaande code gebruikt, moet u ervoor zorgen dat u commentaar op het deel van het codefragment opgeeft dat overeenkomt met het verificatietype dat u wilt gebruiken.
from azure.identity import ManagedIdentityCredential, ClientSecretCredential
import mysql.connector
import os
# Uncomment the following lines according to the authentication type.
# For system-assigned managed identity.
# cred = ManagedIdentityCredential()
# For user-assigned managed identity.
# managed_identity_client_id = os.getenv('AZURE_MYSQL_CLIENTID')
# cred = ManagedIdentityCredential(client_id=managed_identity_client_id)
# acquire token
accessToken = cred.get_token('https://ossrdbms-aad.database.windows.net/.default')
# open connect to Azure MySQL with the access token.
host = os.getenv('AZURE_MYSQL_HOST')
database = os.getenv('AZURE_MYSQL_NAME')
user = os.getenv('AZURE_MYSQL_USER')
password = accessToken.token
cnx = mysql.connector.connect(user=user,
password=password,
host=host,
database=database)
cnx.close()
Haal een toegangstoken op met behulp van @azure/identity de Azure MySQL-databasegegevens uit de omgevingsvariabelen die zijn toegevoegd door Service Connector. Wanneer u de onderstaande code gebruikt, moet u ervoor zorgen dat u commentaar op het deel van het codefragment opgeeft dat overeenkomt met het verificatietype dat u wilt gebruiken.
import { DefaultAzureCredential,ClientSecretCredential } from "@azure/identity";
const mysql = require('mysql2');
// Uncomment the following lines according to the authentication type.
// for system-assigned managed identity
// const credential = new DefaultAzureCredential();
// for user-assigned managed identity
// const clientId = process.env.AZURE_MYSQL_CLIENTID;
// const credential = new DefaultAzureCredential({
// managedIdentityClientId: clientId
// });
// acquire token
var accessToken = await credential.getToken('https://ossrdbms-aad.database.windows.net/.default');
const connection = mysql.createConnection({
host: process.env.AZURE_MYSQL_HOST,
user: process.env.AZURE_MYSQL_USER,
password: accessToken.token,
database: process.env.AZURE_MYSQL_DATABASE,
port: process.env.AZURE_MYSQL_PORT,
ssl: process.env.AZURE_MYSQL_SSL
});
connection.connect((err) => {
if (err) {
console.error('Error connecting to MySQL database: ' + err.stack);
return;
}
console.log('Connected to MySQL database');
});
Connectiviteit met Azure Database for PostgreSQL in uw code volgt het DefaultAzureCredential patroon voor alle taalstacks. DefaultAzureCredential is flexibel genoeg om zich aan te passen aan zowel de ontwikkelomgeving als de Azure-omgeving. Wanneer deze lokaal wordt uitgevoerd, kan deze de aangemelde Azure-gebruiker ophalen uit de omgeving van uw keuze (Visual Studio, Visual Studio Code, Azure CLI of Azure PowerShell). Wanneer deze wordt uitgevoerd in Azure, wordt de beheerde identiteit opgehaald. Het is dus mogelijk om zowel tijdens de ontwikkeling als in productie verbinding te maken met de database. Het patroon is als volgt:
Instantieer een DefaultAzureCredential exemplaar van de Azure Identity-clientbibliotheek. Als u een door de gebruiker toegewezen identiteit gebruikt, geeft u de client-id van de identiteit op.
Een toegangstoken ophalen voor Azure Database for PostgreSQL: https://ossrdbms-aad.database.windows.net/.default.
Voor .NET haalt u een toegangstoken op voor de beheerde identiteit met behulp van een clientbibliotheek zoals Azure.Identity. Gebruik vervolgens het toegangstoken als wachtwoord om verbinding te maken met de database. Wanneer u de onderstaande code gebruikt, moet u ervoor zorgen dat u commentaar op het deel van het codefragment opgeeft dat overeenkomt met het verificatietype dat u wilt gebruiken.
using Azure.Identity;
using Azure.Core;
using Npgsql;
// Uncomment the following lines according to the authentication type.
// For system-assigned identity.
// var sqlServerTokenProvider = new DefaultAzureCredential();
// For user-assigned identity.
// var sqlServerTokenProvider = new DefaultAzureCredential(
// new DefaultAzureCredentialOptions
// {
// ManagedIdentityClientId = Environment.GetEnvironmentVariable("AZURE_POSTGRESQL_CLIENTID");
// }
// );
// Acquire the access token.
AccessToken accessToken = await sqlServerTokenProvider.GetTokenAsync(
new TokenRequestContext(scopes: new string[]
{
"https://ossrdbms-aad.database.windows.net/.default"
}));
// Combine the token with the connection string from the environment variables provided by Service Connector.
string connectionString =
$"{Environment.GetEnvironmentVariable("AZURE_POSTGRESQL_CONNECTIONSTRING")};Password={accessToken.Token}";
// Establish the connection.
using (var connection = new NpgsqlConnection(connectionString))
{
Console.WriteLine("Opening connection using access token...");
connection.Open();
}
Voeg de volgende afhankelijkheden toe aan uw pom.xml-bestand :
Verifieer met een toegangstoken uit de azure-identity bibliotheek en gebruik het token als wachtwoord. Haal de verbindingsgegevens op uit de omgevingsvariabelen die zijn toegevoegd door Service Connector. Wanneer u de onderstaande code gebruikt, moet u ervoor zorgen dat u commentaar op het deel van het codefragment opgeeft dat overeenkomt met het verificatietype dat u wilt gebruiken.
from azure.identity import DefaultAzureCredential
import psycopg2
# Uncomment the following lines according to the authentication type.
# For system-assigned identity.
# cred = DefaultAzureCredential()
# For user-assigned identity.
# managed_identity_client_id = os.getenv('AZURE_POSTGRESQL_CLIENTID')
# cred = ManagedIdentityCredential(client_id=managed_identity_client_id)
# Acquire the access token
accessToken = cred.get_token('https://ossrdbms-aad.database.windows.net/.default')
# Combine the token with the connection string from the environment variables added by Service Connector to establish the connection.
conn_string = os.getenv('AZURE_POSTGRESQL_CONNECTIONSTRING')
conn = psycopg2.connect(conn_string + ' password=' + accessToken.token)
Voor meer informatie raadpleegt u de volgende bronnen:
Haal in code het toegangstoken op via @azure/identity en PostgreSQL-verbindingsgegevens uit omgevingsvariabelen die zijn toegevoegd door de Service Connector-service. Combineer ze om de verbinding tot stand te brengen. Wanneer u de onderstaande code gebruikt, moet u ervoor zorgen dat u commentaar op het deel van het codefragment opgeeft dat overeenkomt met het verificatietype dat u wilt gebruiken.
import { DefaultAzureCredential, ClientSecretCredential } from "@azure/identity";
const { Client } = require('pg');
// Uncomment the following lines according to the authentication type.
// For system-assigned identity.
// const credential = new DefaultAzureCredential();
// For user-assigned identity.
// const clientId = process.env.AZURE_POSTGRESQL_CLIENTID;
// const credential = new DefaultAzureCredential({
// managedIdentityClientId: clientId
// });
// Acquire the access token.
var accessToken = await credential.getToken('https://ossrdbms-aad.database.windows.net/.default');
// Use the token and the connection information from the environment variables added by Service Connector to establish the connection.
(async () => {
const client = new Client({
host: process.env.AZURE_POSTGRESQL_HOST,
user: process.env.AZURE_POSTGRESQL_USER,
password: accesstoken.token,
database: process.env.AZURE_POSTGRESQL_DATABASE,
port: Number(process.env.AZURE_POSTGRESQL_PORT) ,
ssl: process.env.AZURE_POSTGRESQL_SSL
});
await client.connect();
await client.end();
})();
Deze voorbeeldcode maakt gebruik DefaultAzureCredential van een bruikbaar token voor uw Azure-database van Microsoft Entra ID en voegt deze vervolgens toe aan de databaseverbinding. Hoewel u kunt aanpassen DefaultAzureCredential, is deze standaard al veelzijdig. Er wordt een token opgehaald van de aangemelde Microsoft Entra-gebruiker of van een beheerde identiteit, afhankelijk van of u het lokaal uitvoert in uw ontwikkelomgeving of in App Service.
Zonder verdere wijzigingen kunt u uw code uitvoeren in Azure. Om lokaal fouten in uw code op te sporen, heeft uw ontwikkelomgeving echter een aangemelde Microsoft Entra-gebruiker nodig. In deze stap configureert u uw gewenste omgeving door u aan te melden met uw Microsoft Entra-gebruiker.
Visual Studio voor Windows is geïntegreerd met Microsoft Entra-verificatie. Als u ontwikkeling en foutopsporing in Visual Studio wilt inschakelen, voegt u uw Microsoft Entra-gebruiker toe in Visual Studio door Bestandsaccountinstellingen> in het menu te selecteren en Aanmelden of Toevoegen te selecteren.
Als u de Microsoft Entra-gebruiker voor Azure-serviceverificatie wilt instellen, selecteert u Extra>opties in het menu en selecteert u vervolgens Azure Service Authentication>Account Selection. Selecteer de Microsoft Entra-gebruiker die u hebt toegevoegd en selecteer OK.
Visual Studio voor Mac is niet geïntegreerd met Microsoft Entra-verificatie. De Azure Identity-clientbibliotheek die u later gaat gebruiken, kan echter ook tokens ophalen uit Azure CLI. Als u ontwikkeling en foutopsporing in Visual Studio wilt inschakelen, installeert u Azure CLI op uw lokale computer.
Meld u aan bij Azure CLI met de volgende opdracht met behulp van uw Microsoft Entra-gebruiker:
az login --allow-no-subscriptions
Visual Studio Code is geïntegreerd met Microsoft Entra-verificatie via de Azure-extensie. Installeer de Azure Tools-extensie in Visual Studio Code.
Selecteer in Visual Studio Code in de activiteitenbalk het Azure-logo .
Selecteer In App Service Explorer aanmelden bij Azure... en volg de instructies.
De Azure Identity-clientbibliotheek die u later gaat gebruiken, kan tokens van Azure CLI gebruiken. Als u ontwikkeling op basis van opdrachtregels wilt inschakelen, installeert u Azure CLI op uw lokale computer.
Meld u aan bij Azure met de volgende opdracht met behulp van uw Microsoft Entra-gebruiker:
az login --allow-no-subscriptions
De Azure Identity-clientbibliotheek die u later gaat gebruiken, kan tokens uit Azure PowerShell gebruiken. Als u op opdrachtregels gebaseerde ontwikkeling wilt inschakelen, installeert u Azure PowerShell op uw lokale computer.
Meld u aan bij Azure CLI met de volgende cmdlet met behulp van uw Microsoft Entra-gebruiker:
U bent nu klaar om uw app te ontwikkelen en fouten op te sporen met de SQL Database als back-end, met behulp van Microsoft Entra-verificatie.
5. Testen en publiceren
Voer uw code uit in uw ontwikkelomgeving. Uw code maakt gebruik van de aangemelde Microsoft Entra-gebruiker in uw omgeving om verbinding te maken met de back-enddatabase. De gebruiker heeft toegang tot de database omdat deze is geconfigureerd als Microsoft Entra-beheerder voor de database.
Publiceer uw code naar Azure met behulp van de voorkeurspublicatiemethode. In App Service gebruikt uw code de beheerde identiteit van de app om verbinding te maken met de back-enddatabase.
Ik krijg de foutmelding Login failed for user '<token-identified principal>'.
De beheerde identiteit waarvoor u een token wilt aanvragen, is niet gemachtigd voor toegang tot de Azure-database.
Ik heb wijzigingen aangebracht in App Service-verificatie of de bijbehorende app-registratie. Waarom krijg ik nog steeds het oude token?
De back-endservices van beheerde identiteiten onderhouden ook een tokencache waarmee het token voor een doelresource alleen wordt bijgewerkt wanneer het verloopt. Als u de configuratie wijzigt nadat u een token met uw app probeert op te halen, krijgt u pas daadwerkelijk een nieuw token met de bijgewerkte machtigingen als het token in de cache verloopt. De beste manier om dit te omzeilen is door uw wijzigingen te testen met een nieuw InPrivate-venster (Edge)/privévenster (Safari)/Incognito (Chrome). Op die manier begint u zeker vanaf een nieuwe geverifieerde sessie.
Hoe kan ik de beheerde identiteit toevoegen aan een Microsoft Entra-groep?
Als u wilt, kunt u de identiteit toevoegen aan een Microsoft Entra-groep en vervolgens toegang verlenen tot de Microsoft Entra-groep in plaats van de identiteit. Bijvoorbeeld, met de volgende opdrachten wordt de beheerde identiteit uit de vorige stap toegevoegd aan een nieuwe groep met de naam myAzureSQLDBAccessGroup:
groupid=$(az ad group create --display-name myAzureSQLDBAccessGroup --mail-nickname myAzureSQLDBAccessGroup --query objectId --output tsv)
msiobjectid=$(az webapp identity show --resource-group <group-name> --name <app-name> --query principalId --output tsv)
az ad group member add --group $groupid --member-id $msiobjectid
az ad group member list -g $groupid
Als u databasemachtigingen wilt verlenen voor een Microsoft Entra-groep, raadpleegt u de documentatie voor het respectieve databasetype.
Ik krijg de foutmelding SSL connection is required. Please specify SSL options and retry.
Voor het maken van verbinding met de Azure-database zijn aanvullende instellingen vereist en valt buiten het bereik van deze zelfstudie. Zie een van de volgende koppelingen voor meer informatie:
Ik heb mijn app gemaakt met de web-app + databasesjabloon en nu kan ik geen beheerde identiteitverbinding configureren met de opdrachten van de Service Connector.
Service Connector heeft netwerktoegang tot de database nodig om toegang te verlenen voor de app-identiteit. Wanneer u een standaard-app- en databasearchitectuur maakt in Azure Portal met de sjabloon Web App + Database, vergrendelt de architectuur netwerktoegang tot de database en staat deze alleen verbindingen toe vanuit het virtuele netwerk. Dit geldt ook voor Azure Cloud Shell. U kunt Cloud Shell echter implementeren in het virtuele netwerk en vervolgens de opdracht Service Connector uitvoeren in die Cloud Shell.
Volgende stappen
Wat u hebt geleerd:
Configureer een Microsoft Entra-gebruiker als beheerder voor uw Azure-database.
Maak verbinding met uw database als de Microsoft Entra-gebruiker.
Configureer een door het systeem toegewezen of door de gebruiker toegewezen beheerde identiteit voor een App Service-app.
Ververleent databasetoegang tot de beheerde identiteit.
Maak verbinding met de Azure-database vanuit uw code (.NET Framework 4.8, .NET 6, Node.js, Python, Java) met behulp van een beheerde identiteit.
Maak verbinding met de Azure-database vanuit uw ontwikkelomgeving met behulp van de Microsoft Entra-gebruiker.