Envisager l'authentification
Par défaut, l’utilisation de clés d’abonnement permet de limiter l’accès aux ressources Azure AI services. La gestion de l'accès à ces clés est un facteur essentiel pour la sécurité.
Régénérer les clés
Vous devez régénérer les clés régulièrement pour vous protéger contre le risque d'accès ou de partage de celles-ci par des utilisateurs non autorisés. Vous pouvez régénérer les clés à l’aide du portail Azure ou de la commande az cognitiveservices account keys regenerate
de l’interface de ligne de commande (CLI) Azure.
Chaque service IA est fourni avec deux clés, ce qui vous permet de régénérer les clés sans interruption de service. À cet effet :
- Si vous utilisez les deux clés en production, modifiez votre code afin qu’une seule clé soit utilisée. Par exemple, configurez toutes les applications de production pour qu’elles utilisent la clé 1.
- Régénérez la clé 2.
- Modifiez toutes les applications de production pour qu’elles utilisent la clé 2 nouvellement régénérée.
- Régénérez la clé 1.
- Enfin, mettez à jour votre code de production pour qu’il utilise la nouvelle clé 1.
Par exemple, pour régénérer des clés sur le Portail Azure, vous pouvez effectuer les opérations suivantes :
- Sur le portail Azure, accédez au volet Clés et points de terminaison de votre ressource.
- Sélectionnez Ensuite Régénérer clé 1 ou Régénérer clé 2, selon celle que vous souhaitez régénérer au moment.
Protéger les clés à l'aide d'Azure Key Vault
Azure Key Vault est un service Azure qui vous permet de stocker vos secrets (comme vos mots de passe et vos clés) en toute sécurité. L’accès au coffre de clés est accordé aux principaux de sécurité, qui peuvent être considérés comme des identités utilisateur authentifiées à l’aide de Microsoft Entra ID. Les administrateurs peuvent attribuer un principal de sécurité à une application (auquel cas il s'agit d'un principal de service) afin de définir une identité managée pour l'application. L'application peut ensuite utiliser cette identité pour accéder au coffre de clés et récupérer un secret auquel elle a accès. Cette méthode de contrôle de l'accès au secret réduit le risque qu'il soit compromis en étant codé en dur dans une application ou enregistré dans un fichier de configuration.
Vous pouvez stocker les clés d’abonnement d’une ressource de services IA dans Azure Key Vault et attribuer une identité managée aux applications clientes qui doivent utiliser le service. Les applications peuvent ensuite récupérer la clé en fonction de leurs besoins dans le coffre de clés, sans risque de l'exposer à des utilisateurs non autorisés.
Authentification basée sur un jeton
Quand vous utilisez l’interface REST, certains services IA prennent en charge (voire exigent) l’authentification basée sur un jeton. Dans ce cas, la clé d'abonnement est présentée dans une requête initiale pour obtenir un jeton d'authentification, dont la durée de validité est de 10 minutes. Les requêtes suivantes doivent présenter le jeton pour confirmer que l'appelant a été authentifié.
Conseil
Lorsque vous utilisez un kit de développement logiciel (SDK), celui-ci traite les appels liés à l'obtention et à la présentation du jeton.
Authentification Microsoft Entra ID
Les services Azure AI services prennent en charge l’authentification Microsoft Entra ID, ce qui vous permet d’octroyer l’accès à des principaux de service ou des identités managées spécifiques pour les applications et services exécutés dans Azure.
Remarque
Pour plus d’informations sur les options d’authentification relatives aux services IA, consultez la Documentation sur les services IA.
Il existe différentes façons de vous authentifier auprès des services Azure AI services à l’aide de Microsoft Entra ID, notamment :
S’authentifier à l’aide de principaux de service
Le processus global d’authentification auprès des services Azure AI services à l’aide de principaux de service est le suivant :
Créer un sous-domaine personnalisé
Vous pouvez créer un sous-domaine personnalisé de différentes façons, notamment via le portail Azure, Azure CLI ou PowerShell.
Par exemple, vous pouvez créer un sous-domaine à l’aide de PowerShell dans Azure Cloud Shell. Pour ce faire, vous sélectionnez votre abonnement à l’aide de la commande suivante :
Set-AzContext -SubscriptionName <Your-Subscription-Name>
Ensuite, vous créez votre ressource Azure AI services en spécifiant un sous-domaine personnalisé en exécutant les éléments suivants :
$account = New-AzCognitiveServicesAccount -ResourceGroupName <your-resource-group-name> -name <your-account-name> -Type <your-account-type> -SkuName <your-sku-type> -Location <your-region> -CustomSubdomainName <your-unique-subdomain-name>
Une fois créé, le nom de votre sous-domaine est retourné dans la réponse.
Attribuer un rôle à un principal de service
Vous avez créé une ressource Azure AI liée à un sous-domaine personnalisé. Vous attribuez ensuite un rôle à un principal de service.
Pour commencer, vous devez inscrire une application. Pour ce faire, exécutez la commande suivante :
$SecureStringPassword = ConvertTo-SecureString -String <your-password> -AsPlainText -Force
$app = New-AzureADApplication -DisplayName <your-app-display-name> -IdentifierUris <your-app-uris> -PasswordCredentials $SecureStringPassword
Cette procédure crée la ressource d’application.
Ensuite, vous utilisez la commande New-AzADServicePrincipal pour créer un principal de service et fournir l’ID de votre application :
New-AzADServicePrincipal -ApplicationId <app-id>
Enfin, vous affectez le rôle Utilisateurs Cognitive Services à votre principal de service en exécutant :
New-AzRoleAssignment -ObjectId <your-service-principal-object-id> -Scope <account-id> -RoleDefinitionName "Cognitive Services User"
S'authentifier avec des identités managées
Les identités managées sont de deux types :
- Identité managée affectée par le système : Une identité managée est créée et liée à une ressource spécifique, telle qu’une machine virtuelle qui doit accéder aux services Azure AI services. Lorsque la ressource est supprimée, l’identité l’est également.
- Identité managée affectée par l’utilisateur : L’identité managée est créée pour être utilisable par plusieurs ressources au lieu d’être liée à une seule. Elle existe indépendamment de n’importe quelle ressource unique.
Vous pouvez affecter chaque type d’identité managée à une ressource lors de la création de la ressource ou après sa création.
Par exemple, supposons que vous disposez d’une machine virtuelle dans Azure que vous envisagez d’utiliser pour l’accès quotidien aux services Azure AI services. Pour activer une identité affectée par le système pour cette machine virtuelle, vous devez d’abord vérifier que votre compte Azure a le rôle Contributeur de machine virtuelle. Vous pouvez ensuite exécuter la commande suivante en utilisant Azure CLI dans le terminal Azure Cloud Shell :
az vm identity assign -g <my-resource-group> -n <my-vm>
Vous pouvez ensuite accorder l’accès aux services Azure AI services sur le portail Azure à l’aide des éléments suivants :
Accédez à la ressource Azure AI services dont vous souhaitez accorder l’accès à l’identité managée de la machine virtuelle.
Dans le volet de vue d’ensemble, sélectionnez Contrôle d’accès (IAM).
Sélectionnez Ajouter, puis sélectionnez Ajouter une attribution de rôle.
Sous l’onglet Rôle, sélectionnez Contributeur Cognitive Services.
Sous l’onglet Membres, sous Attribuer l’accès à, sélectionnez Identité managée. Puis, sélectionnez + Sélectionner des membres.
Vérifiez que votre abonnement est sélectionné dans le menu déroulant Abonnement. Sous Identité managée, sélectionnez Machine virtuelle.
Sélectionnez votre machine virtuelle dans la liste, puis sélectionnez Sélectionner.
Enfin, sélectionnez Vérifier + attribuer pour vérifier, puis Vérifier + attribuer à nouveau pour terminer.
Remarque
Pour plus d’informations sur la configuration des identités managées, notamment les identités managées par l’utilisateur, consultez Configurer des identités managées pour les ressources Azure sur une machine virtuelle Azure à l’aide d’Azure CLI