Partager via


Configurer l’authentification par certificat client dans Azure Container Apps

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 require est défini, le client doit fournir un certificat.
  • Quand accept il est défini, le certificat est facultatif. Si le client fournit un certificat, il transmet à l’application dans l’en-tête X-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.

Étapes suivantes