Tutoriel : Connexion à des bases de données Azure à partir d’App Service sans secrets à l’aide d’une identité managée
Article
App Service offre un service d’hébergement web hautement évolutif appliquant des mises à jour correctives automatiques dans Azure. Il offre également une identité managée pour votre application. Il s’agit d’une solution clé en main permettant de sécuriser l’accès à des bases de données Azure :
Les identités managées dans App Service sécurisent votre application en en éliminant les secrets, par exemple les informations d’identification dans les chaînes de connexion. Ce tutoriel vous montre comment vous connecter aux bases de données mentionnées ci-dessus à partir d’App Service à l’aide d’identités managées.
Contenu :
Configurer un utilisateur Microsoft Entra en tant qu’administrateur pour votre base de données Azure.
Vous connecter à votre base de données en tant qu’utilisateur Microsoft Entra.
Configuration d’une identité managée affectée par le système ou par l’utilisateur pour une application App Service
Octroi à l’identité managée de l’accès à la base de données
Connexion à la base de données Azure à partir de votre code (.NET Framework 4.8, .NET 6, Node.js, Python ou Java) à l’aide d’une identité managée
Vous connecter à la base de données Azure à partir de votre environnement de développement en vous servant de l’utilisateur Microsoft Entra.
Créez une application basée sur .NET, Node.js, Python ou Java dans App Service.
Créez un serveur de base de données avec Azure SQL Database, Azure Database pour MySQL ou Azure Database pour PostgreSQL.
Vous devez connaître le modèle de connectivité standard (avec nom d’utilisateur et mot de passe) et savoir vous connecter à la base de données de votre choix à partir de votre application App Service.
Préparez votre environnement pour l’interface Azure CLI.
Si vous préférez exécuter les commandes de référence de l’interface de ligne de commande localement, installez l’interface Azure CLI. Si vous exécutez sur Windows ou macOS, envisagez d’exécuter Azure CLI dans un conteneur Docker. Pour plus d’informations, consultez Guide pratique pour exécuter Azure CLI dans un conteneur Docker.
Si vous utilisez une installation locale, connectez-vous à Azure CLI à l’aide de la commande az login. Pour finir le processus d’authentification, suivez les étapes affichées dans votre terminal. Pour connaître les autres options de connexion, consultez Se connecter avec Azure CLI.
Lorsque vous y êtes invité, installez l’extension Azure CLI lors de la première utilisation. Pour plus d’informations sur les extensions, consultez Utiliser des extensions avec Azure CLI.
Exécutez az version pour rechercher la version et les bibliothèques dépendantes installées. Pour effectuer une mise à niveau vers la dernière version, exécutez az upgrade.
1. Installer l’extension sans mot de passe du Connecteur de services
Installez l’extension sans mot de passe Connecteur de services pour Azure CLI la plus récente :
az extension add --name serviceconnector-passwordless --upgrade
Remarque
Vérifiez que la version de l’extension « serviceconnector-passwordless » est « 2.0.2 » ou ultérieure en exécutant az version. Vous serez peut-être amené d’abord à mettre à niveau Azure CLI pour mettre à niveau la version de l’extension.
2. Créer une connexion sans mot de passe
Créez ensuite une connexion sans mot de passe avec le Connecteur de services.
Conseil
Le Portail Azure peut vous aider à composer les commandes ci-dessous. Dans le Portail Azure, accédez à votre ressource Azure App Service, sélectionnez Connecteur de service dans le menu de gauche, puis Créer. Renseignez le formulaire avec tous les paramètres nécessaires. Azure génère automatiquement la commande de création de la connexion. Vous pouvez la copier pour l’utiliser dans l’interface CLI ou l’exécuter dans Azure Cloud Shell.
Pour le serveur flexible Azure Database pour MySQL, vous devez d’abord configurer manuellement l’authentification Microsoft Entra. Celle-ci nécessite une identité managée affectée par l’utilisateur distincte et des autorisations Microsoft Graph spécifiques. Cette étape ne peut pas être automatisée.
Ensuite, si vous avez créé des tables et des séquences dans un serveur flexible PostgreSQL avant d’utiliser le connecteur de services, vous devez vous connecter en tant que propriétaire et accorder à <aad-username> l’autorisation créée par le connecteur de services. Le nom d’utilisateur de la chaîne de connexion ou de la configuration définie par le connecteur de service doit ressembler à aad_<connection name>. Si vous utilisez le Portail Azure, sélectionnez le bouton Développer à côté de la colonne Service Type et obtenez la valeur. Si vous utilisez Azure CLI, cochez configurations dans la sortie de la commande CLI.
Ensuite, exécutez la requête pour accorder l’autorisation
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>\";"
<owner-username> et <owner-password> est le propriétaire de la table existante qui peut accorder des autorisations à d’autres personnes. <aad-username> est l’utilisateur créé par Service Connector. Remplacez-les par la valeur réelle.
Validez le résultat avec la commande suivante :
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
Cette commande Service Connector effectue les tâches suivantes en arrière-plan :
Activez l’identité managée affectée par le système ou attribuez une identité d’utilisateur pour l’application <server-name> hébergée par Azure App Service.
Définissez l’utilisateur actuellement connecté comme administrateur Microsoft Entra.
Ajoutez un utilisateur de la base de données pour l’identité managée affectée par le système ou l’identité managée affectée par l’utilisateur. Accordez tous les privilèges de la base de données <database-name> à cet utilisateur. Le nom d’utilisateur se trouve dans la chaîne de connexion dans la sortie de commande précédente.
Définissez les configurations nommées AZURE_MYSQL_CONNECTIONSTRING, AZURE_POSTGRESQL_CONNECTIONSTRING ou AZURE_SQL_CONNECTIONSTRING sur la ressource Azure en fonction du type de base de données.
Pour App Service, les configurations sont définies dans le panneau Paramètres de l’application.
Si vous rencontrez un problème lors de la création d’une connexion, reportez-vous à Résolution des problèmes pour obtenir de l’aide.
Obtenez la chaîne de connexion Azure SQL Database à partir de la variable d’environnement ajoutée par le connecteur de services.
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();
Obtenez les configurations de connexion Azure SQL Database à partir de la variable d’environnement ajoutée par le connecteur de services. Supprimez les marques de commentaire de la partie de l'extrait de code correspondant au type d'authentification que vous souhaitez utiliser.
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)
Obtenez les configurations de connexion Azure SQL Database à partir des variables d’environnement ajoutées par le connecteur de services. Supprimez les marques de commentaire de la partie de l'extrait de code correspondant au type d'authentification que vous souhaitez utiliser.
La connectivité à Azure Database pour MySQL dans votre code suit le modèle DefaultAzureCredential, pour toutes les piles de langage. DefaultAzureCredential est suffisamment flexible pour s’adapter à l’environnement de développement et à l’environnement Azure. Dans un scénario d’exécution locale, il peut récupérer l’utilisateur Azure connecté à partir de l’environnement de votre choix (Visual Studio, Visual Studio Code, Azure CLI ou Azure PowerShell). En cas d’exécution dans Azure, il récupère l’identité managée. Il est donc possible de disposer d’une connectivité à la base de données au moment du développement et en production. Le modèle est le suivant :
Instanciez DefaultAzureCredential à partir de la bibliothèque cliente Azure Identity. Si vous avez activé une identité affectée par l’utilisateur, spécifiez l’ID client de l’identité.
Obtenir un jeton d’accès pour Azure Database pour MySQL : https://ossrdbms-aad.database.windows.net/.default.
Pour .NET, obtenez un jeton d’accès pour l’identité managée à l’aide d’une bibliothèque cliente telle que Azure.Identity. Utilisez ensuite le jeton d’accès comme un mot de passe pour vous connecter à la base de données. Lorsque vous utilisez le code ci-dessous, assurez-vous de supprimer les marques de commentaire de la partie de l’extrait de code correspondant au type d’authentification à utiliser.
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
Ajoutez les dépendances suivantes dans votre fichier pom.xml :
Authentifiez-vous à l’aide d’un jeton d’accès de la bibliothèque azure-identity. Obtenez les informations de connexion à partir de la variable d’environnement ajoutée par le Connecteur de services. Lorsque vous utilisez le code ci-dessous, assurez-vous de supprimer les marques de commentaire de la partie de l’extrait de code correspondant au type d’authentification à utiliser.
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()
Obtenez un jeton d’accès en utilisant @azure/identity et les informations de la base de données Azure MySQL à partir des variables d’environnement ajoutées par Service Connector. Lorsque vous utilisez le code ci-dessous, assurez-vous de supprimer les marques de commentaire de la partie de l’extrait de code correspondant au type d’authentification à utiliser.
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');
});
La connectivité à Azure Database pour PostgreSQL dans votre code suit le modèle DefaultAzureCredential, pour toutes les piles de langage. DefaultAzureCredential est suffisamment flexible pour s’adapter à l’environnement de développement et à l’environnement Azure. Dans un scénario d’exécution locale, il peut récupérer l’utilisateur Azure connecté à partir de l’environnement de votre choix (Visual Studio, Visual Studio Code, Azure CLI ou Azure PowerShell). En cas d’exécution dans Azure, il récupère l’identité managée. Il est donc possible de disposer d’une connectivité à la base de données au moment du développement et en production. Le modèle est le suivant :
Instanciez DefaultAzureCredential à partir de la bibliothèque cliente Azure Identity. Si vous avez activé une identité affectée par l’utilisateur, spécifiez l’ID client de l’identité.
Obtenir un jeton d’accès pour Azure Database pour PostgreSQL : https://ossrdbms-aad.database.windows.net/.default.
Pour .NET, obtenez un jeton d’accès pour l’identité managée à l’aide d’une bibliothèque cliente telle que Azure.Identity. Utilisez ensuite le jeton d’accès comme un mot de passe pour vous connecter à la base de données. Lorsque vous utilisez le code ci-dessous, assurez-vous de supprimer les marques de commentaire de la partie de l’extrait de code correspondant au type d’authentification à utiliser.
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();
}
Ajoutez les dépendances suivantes dans votre fichier pom.xml :
Authentifiez-vous avec un jeton d’accès depuis la bibliothèque azure-identity et utilisez le jeton comme mot de passe. Obtenez les informations de connexion à partir des variables d’environnement ajoutée par le Connecteur de services. Lorsque vous utilisez le code ci-dessous, assurez-vous de supprimer les marques de commentaire de la partie de l’extrait de code correspondant au type d’authentification à utiliser.
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)
Pour plus d’informations, consultez les ressources suivantes :
Dans le code, obtenez le jeton d’accès via @azure/identity et les informations de connexion PostgreSQL à partir de variables d’environnement ajoutées par le connecteur de services. Combinez-les pour établir la connexion. Lorsque vous utilisez le code ci-dessous, assurez-vous de supprimer les marques de commentaire de la partie de l’extrait de code correspondant au type d’authentification à utiliser.
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();
})();
4. Configuration de l’environnement de développement
Cet exemple de code utilise DefaultAzureCredential afin de récupérer un jeton utilisable pour votre base de données Azure auprès de Microsoft Entra ID, puis l’ajoute à la connexion de base de données. Bien que DefaultAzureCredential soit personnalisable, il est déjà polyvalent par défaut. Il récupère un jeton auprès de l’utilisateur Microsoft Entra connecté ou d’une identité managée, selon que vous l’exécutez localement dans votre environnement de développement ou dans App Service.
Votre code est prêt à être exécuté dans Azure sans aucune autre modification. Pour que vous puissiez le déboguer localement, votre environnement de développement a toutefois besoin d’un utilisateur Microsoft Entra connecté. Au cours de cette étape, vous allez configurer l’environnement de votre choix en vous connectant avec votre utilisateur Microsoft Entra.
Visual Studio pour Windows est intégré avec l’authentification Microsoft Entra. Pour activer le développement et le débogage dans Visual Studio, ajoutez votre utilisateur Microsoft Entra dans Visual Studio en sélectionnant Fichier>Paramètres du compte à partir du menu, puis sélectionnez Se connecter ou Ajouter.
Pour définir l’utilisateur Microsoft Entra pour l’authentification de service Azure, sélectionnez Outils>Options dans le menu, puis sélectionnez Authentification du service Azure>Sélection du compte. Sélectionnez l’utilisateur Microsoft Entra que vous avez ajouté, puis sélectionnez OK.
Visual Studio pour Mac n’est pas intégré avec l’authentification Microsoft Entra. Toutefois, la bibliothèque de client Azure Identity que vous utiliserez ultérieurement peut récupérer des jetons auprès d’Azure CLI. Pour permettre le développement et le débogage dans Visual Studio, installez Azure CLI sur votre ordinateur local.
Connectez-vous à Azure CLI à l’aide de la commande suivante avec votre utilisateur Microsoft Entra :
az login --allow-no-subscriptions
Visual Studio Code est intégré à l’authentification Microsoft Entra par le biais de l’extension Azure. Installez l’extension Azure Tools dans Visual Studio Code.
Dans Visual Studio Code, dans la barre d’activités, sélectionnez le logo Azure.
Dans l’explorateur App Service, sélectionnez Se connecter à Azure... , puis suivez les instructions.
La bibliothèque de client Azure Identity que vous utiliserez ultérieurement peut utiliser des jetons provenant d’Azure CLI. Pour activer le développement en ligne de commande, installez Azure CLI sur votre ordinateur local.
Connectez-vous à Azure avec la commande suivante à l’aide de votre utilisateur Microsoft Entra :
az login --allow-no-subscriptions
La bibliothèque de client Azure Identity que vous utiliserez ultérieurement peut utiliser des jetons provenant d’Azure PowerShell. Pour activer le développement en ligne de commande, installez Azure PowerShell sur votre ordinateur local.
Connectez-vous à Azure CLI à l’aide du cmdlet suivant avec votre utilisateur Microsoft Entra :
Vous êtes maintenant prêt à développer et déboguer votre application avec SQL Database en tant que back-end, à l’aide de l’authentification Microsoft Entra.
5. Test et publication
Exécutez votre code dans votre environnement de développement. Votre code se sert de l’utilisateur Microsoft Entra connecté à votre environnement pour se connecter à la base de données back-end. Cet utilisateur peut accéder à la base de données parce qu’il est configuré en tant qu’administrateur Microsoft Entra de la base de données.
Publiez votre code sur Azure à l’aide de la méthode de votre choix. Dans App Service, votre code utilise l’identité managée de l’application pour se connecter à la base de données principale.
J’obtiens l’erreur Login failed for user '<token-identified principal>'.
L’identité managée pour laquelle vous tentez de demander un jeton n’est pas autorisée à accéder à la base de données Azure.
J’ai apporté des modifications à l’authentification App Service ou à l’inscription d’application associée. J’obtiens toujours l’ancien jeton. Pourquoi ?
Les services backend des identités managées gèrent également un cache de jetons qui ne met à jour le jeton d’une ressource cible qu’à l’expiration. Si vous modifiez la configuration après avoir essayé de récupérer un jeton avec votre application, vous n’obtenez pas de nouveau jeton doté des autorisations mises à jour tant que le jeton mis en cache n’a pas expiré. La meilleure façon de contourner ce problème consiste à tester les modifications avec une nouvelle fenêtre InPrivate (Edge), Navigation privée (Safari) ou en mode privé (Chrome). Vous avez ainsi l’assurance de commencer d’une nouvelle session authentifiée.
Comment ajouter l’identité managée à un groupe Microsoft Entra ?
Si vous le souhaitez, vous pouvez ajouter l’identité à un groupe Microsoft Entra, puis accorder l’accès au groupe Microsoft Entra et non à l’identité. Par exemple, les commandes suivantes ajoutent l’identité managée de l’étape précédente à un nouveau groupe appelé 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
Pour accorder des autorisations de base de données à un groupe Microsoft Entra, consultez la documentation relative au type de base de données en question.
J’obtiens l’erreur SSL connection is required. Please specify SSL options and retry
La connexion à la base de données Azure exige des paramètres supplémentaires qui ne sont pas abordés dans ce tutoriel. Pour plus d’informations, cliquez sur l’un des liens suivants :
J’ai créé mon application avec le modèle Application web + Base de données et je ne peux maintenant pas configurer une connexion d’identité managée avec les commandes du connecteur de services.
Le connecteur de services doit avoir un accès réseau à la base de données afin d’octroyer l’accès pour l’identité d’application. Lorsque vous créez une architecture de base de données et une application sécurisées par défaut dans le Portail Azure avec le modèle Application web + Base de données, l’architecture verrouille l’accès réseau à la base de données et autorise uniquement les connexions à partir du réseau virtuel. C’est également vrai pour Azure Cloud Shell. Toutefois, vous pouvez déployer Cloud Shell dans le réseau virtuel, puis exécuter la commande du connecteur de services dans cette instance Cloud Shell.
Étapes suivantes
Vous avez appris à effectuer les opérations suivantes :
Configurer un utilisateur Microsoft Entra en tant qu’administrateur pour votre base de données Azure.
Vous connecter à votre base de données en tant qu’utilisateur Microsoft Entra.
Configuration d’une identité managée affectée par le système ou par l’utilisateur pour une application App Service
Octroi à l’identité managée de l’accès à la base de données
Connexion à la base de données Azure à partir de votre code (.NET Framework 4.8, .NET 6, Node.js, Python ou Java) à l’aide d’une identité managée
Vous connecter à la base de données Azure à partir de votre environnement de développement en vous servant de l’utilisateur Microsoft Entra.