Remarque
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de vous connecter ou de modifier des répertoires.
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de modifier des répertoires.
Azure App Service peut utiliser des identités managées pour se connecter aux services principaux sans chaîne de connexion. Cette approche supprime la gestion des secrets de connexion et garantit la sécurité de votre connectivité back-end dans un environnement de production. Lorsque vous avez terminé, vous disposez d’une application qui effectue des appels programmatiques à Foundry Tools sans stocker de secrets de connexion dans App Service.
Pour les services principaux qui ne prennent pas en charge les identités managées et nécessitent toujours des secrets de connexion, vous pouvez utiliser Azure Key Vault pour gérer les secrets de connexion. Ce didacticiel utilise Foundry Tools comme exemple. Lorsque vous avez terminé, vous disposez d’une application qui effectue des appels programmatiques à Foundry Tools sans stocker de secrets de connexion dans App Service.
Conseil
Foundry Tools prend en charge l’authentification par le biais d’identités managées. Ce tutoriel utilise l’authentification par clé d’abonnement pour montrer comment vous pouvez vous connecter à un service Azure qui ne prend pas en charge les identités managées à partir d’App Service.
Dans cette architecture :
- Les comptes managés sécurisent la connectivité au coffre de clés.
- App Service accède aux secrets à l’aide de références Key Vault en tant que paramètres d’application.
- L’accès au coffre de clés est limité à l’application. Les contributeurs d’applications, tels que les administrateurs, peuvent avoir un contrôle complet des ressources App Service et, en même temps, n’ont pas accès aux secrets Key Vault.
- Si le code de votre application accède déjà aux secrets de connexion avec les paramètres d’application, aucune modification n’est requise.
Dans ce tutoriel, vous allez apprendre à :
- Activer les identités managées
- Utiliser des identités managées pour se connecter à Key Vault
- Utiliser des références de Key Vault
- Accéder aux outils de la Fonderie
Prérequis
Préparez votre environnement pour la Azure CLI.
Utilisez l’environnement Bash dans Azure Cloud Shell. Pour plus d’informations, consultez Commencez avec Azure Cloud Shell.
Si vous préférez exécuter des commandes de référence CLI localement, installation la 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 How to run the Azure CLI in a Docker container.
Si vous utilisez une installation locale, connectez-vous au Azure CLI à l'aide de la commande az login. Pour finir le processus d’authentification, suivez les étapes affichées dans votre terminal. Pour obtenir d’autres options de connexion, consultez Authenticate pour Azure à l’aide de 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 Utilisez et gérez les extensions avec le 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.
Créer une application avec une connectivité à Foundry Tools
Créez un groupe de ressources qui contiendra toutes vos ressources :
# Save the resource group name as a variable for convenience groupName=myKVResourceGroup region=canadacentral az group create --name $groupName --location $regionCréez une ressource Foundry Tools. Remplacez <cs-resource-name> par un nom unique.
# Save the resource name as a variable for convenience. csResourceName=<cs-resource-name> az cognitiveservices account create --resource-group $groupName --name $csResourceName --location $region --kind TextAnalytics --sku F0 --custom-domain $csResourceNameRemarque
--sku F0crée une ressource Outils Foundry de niveau gratuit. Chaque abonnement est limité à un quota d’une ressourceTextAnalyticsde niveau Gratuit. Si vous avez déjà utilisé votre quota, utilisez--sku Splutôt.
Configurer une application .NET
Clonez l’exemple de référentiel localement et déployez l’exemple d’application sur App Service. Remplacez <app-name> par un nom unique.
# Save the app name as a variable for convenience
appName=<app-name>
# Clone the sample application
git clone https://github.com/Azure-Samples/app-service-language-detector.git
cd app-service-language-detector/dotnet
az webapp up --sku F1 --resource-group $groupName --name $appName --plan $appName --location $region
Configurer des secrets sous forme de paramètres d’application
Configurez les secrets Foundry Tools en tant que paramètres d'applications
CS_ACCOUNT_NAMEetCS_ACCOUNT_KEY.# Get the subscription key for the Foundry Tools resource csKey1=$(az cognitiveservices account keys list --resource-group $groupName --name $csResourceName --query key1 --output tsv) az webapp config appsettings set --resource-group $groupName --name $appName --settings CS_ACCOUNT_NAME="$csResourceName" CS_ACCOUNT_KEY="$csKey1"Dans un navigateur, accédez à votre application déployée à l’adresse
<app-name>.azurewebsites.net. Essayez le détecteur de langues en entrant des chaînes dans différentes langues.
Comme vous pouvez le constater en examinant le code de l’application, la sortie de débogage de la détection se traduit par une police de la couleur de l’arrière-plan. Vous pouvez voir la sortie en mettant en surbrillance l’espace blanc directement sous le résultat.
Sécurisation de la connectivité du système arrière-plan
Les secrets de connexion sont désormais stockés en tant que paramètres d’application dans votre application App Service. Cette approche sécurise déjà les secrets de connexion à partir de votre codebase d’application. Toutefois, un contributeur autorisé à gérer votre application peut également voir les paramètres de l’application. Dans cette section, vous déplacez les secrets de connexion vers un coffre-fort de clés. Vous verrouillez l’accès afin que seul vous puissiez le gérer et que seule l’application App Service puisse la lire à l’aide de son identité managée.
Création d’un coffre de clés Remplacez <vault-name> par un nom unique.
# Save the key vault name as a variable for convenience vaultName=<vault-name> az keyvault create --resource-group $groupName --name $vaultName --location $region --sku standard --enable-rbac-authorizationLe paramètre
--enable-rbac-authorizationconfigure le contrôle d'accès basé sur les rôles (RBAC) d'Azure en tant que modèle d'autorisation. Ce paramètre invalide toutes les autorisations de stratégies d’accès par défaut.Donnez-vous le rôle RBAC Responsable des secrets Key Vault du coffre.
vaultResourceId=$(az keyvault show --name $vaultName --query id --output tsv) myId=$(az ad signed-in-user show --query id --output tsv) az role assignment create --role "Key Vault Secrets Officer" --assignee-object-id $myId --assignee-principal-type User --scope $vaultResourceIdActivez l’identité managée affectée par le système de votre application et donnez-lui le rôle RBAC Utilisateur des secrets Key Vault du coffre.
az webapp identity assign --resource-group $groupName --name $appName --scope $vaultResourceId --role "Key Vault Secrets User"Ajoutez le nom de la ressource Foundry Tools et la clé d’abonnement en tant que secrets au coffre, puis enregistrez leurs ID en tant que variables d’environnement pour l’étape suivante.
csResourceKVUri=$(az keyvault secret set --vault-name $vaultName --name csresource --value $csResourceName --query id --output tsv) csKeyKVUri=$(az keyvault secret set --vault-name $vaultName --name cskey --value $csKey1 --query id --output tsv)Précédemment, vous avez défini les secrets sous la forme des paramètres d’application
CS_ACCOUNT_NAMEetCS_ACCOUNT_KEYdans votre application. À présent, définissez-les comme références de Key Vault.az webapp config appsettings set --resource-group $groupName --name $appName --settings CS_ACCOUNT_NAME="@Microsoft.KeyVault(SecretUri=$csResourceKVUri)" CS_ACCOUNT_KEY="@Microsoft.KeyVault(SecretUri=$csKeyKVUri)"Dans un navigateur, accédez à
<app-name>.azurewebsites.netde nouveau. Si vous récupérez les résultats de la détection, vous vous connectez au point de terminaison de Foundry Tools à l'aide de références au Key Vault.
Félicitations, votre application se connecte désormais à Foundry Tools à l’aide de secrets conservés dans votre coffre de clés et vous n’avez apporté aucune modification à votre code d’application.
Nettoyer les ressources
Dans les étapes précédentes, vous avez créé Azure ressources dans un groupe de ressources. Si vous ne vous attendez pas à avoir besoin de ces ressources à l'avenir, supprimez le groupe de ressources en exécutant la commande suivante dans l'Cloud Shell :
az group delete --name $groupName
L’exécution de cette commande peut prendre une minute.