Ügyféltanúsítvány-hitelesítés konfigurálása az Azure Container Appsben

Az Azure Container Apps támogatja az ügyféltanúsítvány-hitelesítést (más néven kölcsönös TLS-t vagy mTLS-t), amely kétirányú hitelesítéssel teszi lehetővé a tárolóalkalmazás elérését. Ez a cikk bemutatja, hogyan konfigurálhatja az ügyféltanúsítvány-engedélyezést az Azure Container Appsben.

Az ügyféltanúsítványok használatakor a TLS-tanúsítványok az ügyfél és a tárolóalkalmazás között cserélődnek az identitás hitelesítése és a forgalom titkosítása érdekében. Az ügyféltanúsítványokat gyakran használják a "nulla megbízhatósági" biztonsági modellekben az ügyfélhozzáférés engedélyezéséhez a szervezeten belül.

Szükség lehet például egy ügyféltanúsítványra egy bizalmas adatokat kezelő tárolóalkalmazáshoz.

A Container Apps PKCS12 formátumban fogadja az ügyféltanúsítványokat, ha egy megbízható hitelesítésszolgáltató (CA) kiadja őket, vagy ha önaláírt.

Ügyféltanúsítvány-engedélyezés konfigurálása

Az ügyféltanúsítványok támogatásának konfigurálásához állítsa be a tulajdonságot a clientCertificateMode tárolóalkalmazás-sablonban.

A tulajdonság az alábbi értékek egyikére állítható be:

  • require: Az ügyféltanúsítvány szükséges a tárolóalkalmazáshoz érkező összes kéréshez.
  • accept: Az ügyféltanúsítvány nem kötelező. Ha az ügyféltanúsítvány nincs megadva, a kérés továbbra is elfogadásra kerül.
  • ignore: A rendszer figyelmen kívül hagyja az ügyféltanúsítványt.

A bejövő forgalom átadja az ügyféltanúsítványt a tárolóalkalmazásnak, ha require vagy accept be van állítva.

Az alábbi ARM-sablon példája úgy konfigurálja a bejövő forgalmat, hogy ügyféltanúsítványt igényeljen a tárolóalkalmazáshoz érkező összes kéréshez.

{
  "properties": {
    "configuration": {
      "ingress": {
        "clientCertificateMode": "require"
      }
    }
  }
}

Megjegyzés:

A bemeneti tulajdonságot közvetlenül is beállíthatja clientCertificateMode . Nem érhető el explicit lehetőségként a parancssori felületen, de az Azure CLI-vel javíthatja az alkalmazást.

A következő parancsok futtatása előtt mindenképpen cserélje le a saját értékeivel körülvett <> helyőrzőket.

Kérje le a tárolóalkalmazás Azure Resource Manager(ARM) azonosítóját:

APP_ID=$(az containerapp show \
  --name <APP_NAME> \
  --resource-group <RESOURCE_GROUP> \
  --query id \
  --output tsv)

clientCertificateMode A tulajdonság javítása az alkalmazásban:

az rest \
  --method patch \
  --url "https://management.azure.com/$APP_ID?api-version=<API_VERSION>" \
  --body '{
    "properties": {
      "configuration": {
        "ingress": {
          "clientCertificateMode": "require"
        }
      }
    }
  }'

Megjegyzés:

Mindenképpen használjon érvényes és stabil API-verziót, amely támogatja ezt a funkciót. Cserélje le a parancsban az API_VERSION-t például 2025-01-01-re vagy egy másik támogatott verzióra.

Ügyféltanúsítvány üzemmód és fejlécformátum

A clientCertificateMode értéke változó attól függően, hogy mit kell biztosítania a tárolóalkalmazások számára a tanúsítvány kezeléséhez.

  • Ha require be van állítva, az ügyfélnek meg kell adnia egy tanúsítványt.
  • Ha accept be van állítva, a tanúsítvány nem kötelező. Ha az ügyfél tanúsítványt biztosít, az a fejlécben lévő X-Forwarded-Client-Cert alkalmazásnak továbbítja pontosvesszővel tagolt listaként.

Példa X-Forwarded-Client-Cert fejlécértékre

Az alábbi példa a fejléc mintaértéke, amelyet az X-Forwarded-Client-Cert alkalmazás kaphat:

Hash=<HASH_VALUE>;Cert="-----BEGIN CERTIFICATE-----<CERTIFICATE_VALUE>";Chain="-----BEGIN CERTIFICATE-----<CERTIFICATE_VALUE>";

Fejlécmezők lebontása

szakterület Leírás Használat
Hash Az ügyféltanúsítvány SHA-256 ujjlenyomata. Az ujjlenyomattal azonosíthatja vagy érvényesítheti az ügyféltanúsítványt.
Cert A base64 kódolású ügyféltanúsítvány PEM formátumban (egyetlen tanúsítvány). Elemezni kell a tanúsítványt a metaadatok, például a tulajdonos és a kiállító vizsgálatához.
Chain Egy vagy több PEM-kódolású köztes tanúsítvány. Adja meg a köztes tanúsítványokat, amikor teljes megbízhatósági láncot hoz létre az ellenőrzéshez.

Következő lépések