Sécuriser les services principaux à l’aide d’une authentification par certificat client dans Gestion des API Azure
S’APPLIQUE À : Tous les niveaux de Gestion des API
Le service Gestion des API permet de sécuriser l’accès au service back-end d’une API à l’aide de certificats clients et d’une authentification TLS mutuelle. Ce guide montre comment gérer des certificats dans une instance de service Gestion des API Azure à l’aide du portail Azure. Il explique également comment configurer une API pour utiliser un certificat pour accéder à un service principal.
Vous pouvez également gérer des certificats Gestion des API à l’aide de l’API REST Gestion des API.
Options de certificat
Gestion des API offre deux options pour gérer les certificats utilisés pour sécuriser l’accès aux services principaux :
- Référencer un certificat géré dans Azure Key Vault
- Ajouter un fichier de certificat directement dans Gestion des API
L’utilisation de certificats de coffre de clés est recommandée, car elle permet d’améliorer la sécurité de Gestion des API :
- Les certificats stockés dans des coffres de clés peuvent être réutilisés entre les services.
- Des stratégies d’accès granulaires peuvent être appliquées à des certificats stockés dans des coffres de clés.
- Les certificats mis à jour dans le coffre de clés sont automatiquement permutés dans Gestion des API. Après la mise à jour dans le coffre de clés, un certificat dans Gestion des API est mis à jour dans un délai de quatre heures. Vous pouvez également actualiser manuellement le certificat à l’aide du portail Azure ou par le biais de l’API REST de gestion.
Prérequis
Notes
Nous vous recommandons d’utiliser le module Azure Az PowerShell pour interagir avec Azure. Pour bien démarrer, consultez Installer Azure PowerShell. Pour savoir comment migrer vers le module Az PowerShell, consultez Migrer Azure PowerShell depuis AzureRM vers Az.
Si vous n’avez pas encore créé d’instance de service Gestion des API, consultez la page Créer une instance de service Gestion des API.
Votre service principal doit être configuré pour l’authentification par certificat client. Pour configurer l’authentification par certificat dans Azure App Service, consultez cet article.
Vous devez avoir accès au certificat et au mot de passe pour la gestion dans un coffre de clés Azure ou les charger sur le service Gestion des API. Le certificat doit être au format PFX. Les certificats auto-signés sont autorisés.
Si vous utilisez un certificat auto-signé :
Installez des certificats d’autorités de certification intermédiaires et racines de confiance dans votre instance Gestion des API.
Notes
Les certificats d’autorités de certification ne sont pas pris en charge dans le niveau Consommation.
Conditions préalables à l’intégration d’un coffre de clés
Remarque
Actuellement, cette fonctionnalité n’est pas disponible dans les espaces de travail.
Si vous n’avez pas encore de coffre de clés, créez-en un. Pour connaître la procédure de création d’un coffre de clés, consultez Démarrage rapide : Créer un coffre de clés avec le portail Azure.
Pour créer ou importer un certificat dans le coffre de clés, consultez Démarrage rapide : Définir et récupérer un certificat dans Azure Key Vault à l’aide du portail Azure.
Activer une identité managée attribuée par le système ou par l’utilisateur dans l’instance Gestion des API.
Configurer l’accès au coffre de clés
Dans le portail, accédez à votre coffre de clés.
Dans le menu de gauche, sélectionnez Configuration de l’accès et notez le modèle d’autorisation configuré.
Selon le modèle d’autorisation, configurez une stratégie d’accès au coffre de clés ou un accès RBAC Azure pour une identité managée Gestion des API.
Pour ajouter une stratégie d’accès au coffre de clés :
- Dans le menu de gauche, sélectionnez Stratégies d’accès.
- Sur la page Stratégies d’accès, sélectionnez + Créer.
- Sous l’onglet Autorisations, sous Autorisations du secret, sélectionnez Get et List, puis sélectionnez Suivant.
- Sous l’onglet Principal, sélectionnez Sélectionner le principal, recherchez le nom de ressource de votre identité managée, puis sélectionnez Suivant. Si vous utilisez une identité attribuée par le système, le principal est le nom de votre instance Gestion des API.
- Sélectionnez Suivant de nouveau. Sous l’onglet Review + create (Vérifier + créer) , sélectionnez Créer.
Pour configurer l’accès RBAC Azure :
- Dans le menu de gauche, sélectionnez Contrôle d’accès (IAM) .
- Sur la page Contrôle d’accès (IAM), sélectionnez Ajout de l’attribution de rôle.
- Sous l’onglet Rôle, sélectionnez Utilisateur du certificat Key Vault.
- Sous l’onglet Membres, sélectionnez Identité managée>+ Sélectionner des membres.
- Dans la page Sélectionner l’identité managée, sélectionnez l’identité managée affectée par le système ou une identité managée affectée par l’utilisateur associée à votre instance Gestion des API, puis sélectionnez Sélectionner.
- Sélectionnez Vérifier + attribuer.
Exigences pour le pare-feu Key Vault
Si le pare-feu Key Vault est activé sur votre coffre de clés, les conditions suivantes sont requises :
Vous devez utiliser l’identité managée attribuée par le système à l’instance Gestion des API pour accéder au coffre de clés.
Dans le pare-feu Key Vault, activez l’option Autoriser les services Microsoft approuvés à contourner ce pare-feu.
Vérifiez que votre adresse IP du client local est autorisée à accéder temporairement au coffre de clés pendant que vous sélectionnez un certificat ou un secret à ajouter à Gestion des API Azure. Pour plus d’informations, consultez Configurer les paramètres de mise en réseau du Coffre de clés Azure.
Une fois la configuration terminée, vous pouvez bloquer votre adresse client dans le pare-feu du coffre de clés.
Conditions requises pour le réseau virtuel
Si l’instance Gestion des API est déployée dans un réseau virtuel, configurez également les paramètres réseau suivants :
- Activez un point de terminaison de service pour Azure Key Vault sur le sous-réseau Gestion des API.
- Configurez une règle de groupe de sécurité réseau (NSG) pour autoriser le trafic sortant vers les balises de service AzureKeyVault et AzureActiveDirectory.
Pour plus d’informations, consultez Configuration du réseau lors de la configuration de Gestion des API Azure dans un réseau virtuel.
Ajouter un certificat de coffre de clés
Voir Conditions préalables à l’intégration d’un coffre de clés.
Important
Lorsque vous ajoutez un certificat de coffre de clés à votre instance Gestion des API, vous devez disposer des autorisations nécessaires pour répertorier les secrets du coffre de clés.
Attention
Lorsque vous utilisez un certificat de coffre de clés dans Gestion des API, veillez à ne pas supprimer le certificat, le coffre de clés ou l’identité managée utilisée pour accéder au coffre de clés.
Pour ajouter un certificat de coffre de clés à Gestion des API :
Dans le portail Azure, accédez à votre instance APIM.
Sous Sécurité, sélectionnez Certificats.
Sélectionnez Certificats>+ Ajouter.
Dans ID, entrez le nom de votre choix.
Dans Certificat, sélectionnez Coffre de clés.
Entrez l’identificateur d’un certificat de coffre de clés ou choisissez Sélectionner pour choisir un certificat dans un coffre de clés.
Important
Si vous entrez vous-même l’identificateur d’un certificat de coffre de clés, assurez-vous qu’il ne contient pas d’informations de version. Sinon, le certificat n’est pas automatiquement permuté dans Gestion des API après une mise à jour dans le coffre de clés.
Dans Identité du client, sélectionnez une entité managée affectée par le système ou une entité managée existante affectée par l’utilisateur. Découvrez comment ajouter ou modifier des identités managées dans votre service Gestion des API.
Notes
L’identité a besoin d’autorisations pour obtenir et lister les certificats du coffre de clés. Si vous n’avez pas encore configuré l’accès au coffre de clés, Gestion des API vous invite à configurer automatiquement l’identité avec les autorisations nécessaires.
Sélectionnez Ajouter.
Sélectionnez Enregistrer.
Téléchargement d'un certificat
Pour charger un certificat client dans Gestion des API :
Dans le portail Azure, accédez à votre instance APIM.
Sous Sécurité, sélectionnez Certificats.
Sélectionnez Certificats>+ Ajouter.
Dans ID, entrez le nom de votre choix.
Dans Certificat, sélectionnez Personnalisé.
Accédez au fichier .pfx du certificat, sélectionnez-le et entrez son mot de passe.
Sélectionnez Ajouter.
Sélectionnez Enregistrer.
Une fois le certificat chargé, il s’affiche dans la fenêtre Certificats. Si vous avez beaucoup de certificats, notez l’empreinte du certificat souhaité pour configurer une API afin qu’elle utilise un certificat client pour l’authentification de la passerelle.
Configurer une API afin d’utiliser un certificat client pour l’authentification de passerelle
Dans le portail Azure, accédez à votre instance APIM.
Sous API, sélectionnez API.
Sélectionnez une API dans la liste.
Sous l’onglet Conception, sélectionnez l’icône de l’éditeur dans la section Principal.
Dans Informations d’identification de la passerelle, sélectionnez Certificat client et sélectionnez votre certificat dans la liste déroulante.
Sélectionnez Enregistrer.
Attention
Cette modification s’applique immédiatement, et les appels d’opérations de cette API utiliseront désormais ce certificat pour s’authentifier sur le serveur principal.
Conseil
Lorsqu’un certificat est spécifié pour l’authentification de passerelle pour le service principal d’une API, il devient partie intégrante de la stratégie de cette API et peut être affiché dans l’éditeur de stratégies.
Désactiver la validation de la chaîne de certificats pour les certificats auto-signés
Si vous utilisez des certificats auto-signés, vous devrez désactiver la validation des chaînes de certificat afin que le service Gestion des API puisse communiquer avec le système principal. Dans le cas contraire, un code d’erreur 500 est généré. Pour configurer ce paramètre, vous pouvez utiliser les cmdlets PowerShell New-AzApiManagementBackend
(pour un nouveau serveur principal) ou Set-AzApiManagementBackend
(pour un serveur principal existant) et configurez le paramètre -SkipCertificateChainValidation
sur True
.
$context = New-AzApiManagementContext -resourcegroup 'ContosoResourceGroup' -servicename 'ContosoAPIMService'
New-AzApiManagementBackend -Context $context -Url 'https://contoso.com/myapi' -Protocol http -SkipCertificateChainValidation $true
Vous pouvez également désactiver la validation de la chaîne de certificats à l’aide de l’API REST back-end.
Supprimer un certificat client
Pour supprimer un certificat, sélectionnez-le, puis sélectionnez Supprimer dans le menu contextuel ( … ).
Important
Si le certificat est référencé par des stratégies, un écran d’avertissement s’affiche. Pour supprimer le certificat, vous devez d’abord le supprimer de toutes les stratégies configurées pour l’utiliser.