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 Container Apps prend en charge l’authentification par certificat client (également appelée TLS mutuel ou mTLS) qui permet d’accéder à votre application conteneur via l’authentification bidirectionnelle. Cet article vous montre comment configurer l’autorisation de certificat client dans Azure Container Apps.
Lorsque des certificats clients sont utilisés, les certificats TLS sont échangés entre le client et votre application conteneur pour authentifier l’identité et chiffrer le trafic. Les certificats clients sont souvent utilisés dans les modèles de sécurité « confiance zéro » pour autoriser l’accès client au sein d’une organisation.
Par exemple, vous souhaiterez peut-être exiger un certificat client pour une application conteneur qui gère des données sensibles.
Container Apps accepte les certificats clients au format PKCS12 lorsqu’une autorité de certification approuvée les émet ou lorsqu’elles sont auto-signées.
Configurer l’autorisation de certificat client
Pour configurer la prise en charge des certificats clients, définissez la propriété clientCertificateMode dans le modèle de votre application conteneur.
La propriété peut être définie sur l’une des valeurs suivantes :
require: le certificat client est requis pour toutes les demandes adressées à l’application conteneur.accept: le certificat client est facultatif. Si le certificat client n’est pas fourni, la demande est toujours acceptée.ignore: le certificat client est ignoré.
L’entrée transmet le certificat client à l’application conteneur si require ou accept sont définis.
L’exemple de modèle ARM suivant configure l’entrée pour exiger un certificat client pour toutes les demandes adressées à l’application conteneur.
{
"properties": {
"configuration": {
"ingress": {
"clientCertificateMode": "require"
}
}
}
}
Remarque
Vous pouvez définir la propriété d'entrée clientCertificateMode directement. Il n’est pas disponible en tant qu’option explicite dans l’interface CLI, mais vous pouvez corriger votre application à l’aide d’Azure CLI.
Avant d’exécuter les commandes suivantes, veillez à remplacer les marqueurs de position entourés par <> par vos propres valeurs.
Obtenez l’ID Azure Resource Manager (ARM) de votre application conteneur :
APP_ID=$(az containerapp show \
--name <APP_NAME> \
--resource-group <RESOURCE_GROUP> \
--query id \
--output tsv)
Corrigez la clientCertificateMode propriété sur l’application :
az rest \
--method patch \
--url "https://management.azure.com/$APP_ID?api-version=<API_VERSION>" \
--body '{
"properties": {
"configuration": {
"ingress": {
"clientCertificateMode": "require"
}
}
}
}'
Remarque
Veillez à utiliser une version d’API valide et stable qui prend en charge cette fonctionnalité. Par exemple, remplacez <API_VERSION> dans la commande par 2025-01-01 ou une autre version prise en charge.
Mode de certificat client et format d’en-tête
La valeur pour clientCertificateMode varie selon ce que vous devez fournir à Container Apps pour gérer votre certificat :
- Lorsqu’il
requireest défini, le client doit fournir un certificat. - Quand
acceptil est défini, le certificat est facultatif. Si le client fournit un certificat, il transmet à l’application dans l’en-têteX-Forwarded-Client-Cert, sous la forme d’une liste séparée par des points-virgules.
Exemple de valeur d’en-tête X-Forwarded-Client-Cert
L’exemple suivant est un exemple de valeur de l’en-tête X-Forwarded-Client-Cert que votre application peut recevoir :
Hash=<HASH_VALUE>;Cert="-----BEGIN CERTIFICATE-----<CERTIFICATE_VALUE>";Chain="-----BEGIN CERTIFICATE-----<CERTIFICATE_VALUE>";
Répartition des champs d’en-tête
| Champ | Descriptif | Comment l’utiliser |
|---|---|---|
Hash |
Empreinte SHA-256 du certificat client. | Utilisez l’empreinte numérique pour identifier ou valider le certificat client. |
Cert |
Certificat client encodé en base64 au format PEM (certificat unique). | Analysez le certificat pour inspecter les métadonnées telles que l’objet et l’émetteur. |
Chain |
Un ou plusieurs certificats intermédiaires encodés PAR PEM. | Fournissez les certificats intermédiaires lors de la création d’une chaîne d’approbation complète pour la validation. |