Bagikan melalui


Mengonfigurasi autentikasi sertifikat klien di Azure Container Apps

Azure Container Apps mendukung autentikasi sertifikat klien (juga dikenal sebagai TLS bersama atau mTLS) yang memungkinkan akses ke aplikasi kontainer Anda melalui autentikasi dua arah. Artikel ini memperlihatkan kepada Anda cara mengonfigurasi otorisasi sertifikat klien di Azure Container Apps.

Saat sertifikat klien digunakan, sertifikat TLS ditukar antara klien dan aplikasi kontainer Anda untuk mengautentikasi identitas dan mengenkripsi lalu lintas. Sertifikat klien sering digunakan dalam model keamanan "zero trust" untuk mengotorisasi akses klien dalam organisasi.

Misalnya, Anda mungkin ingin memerlukan sertifikat klien untuk aplikasi kontainer yang mengelola data sensitif.

Container Apps menerima sertifikat klien dalam format PKCS12 saat otoritas sertifikat (CA) tepercaya mengeluarkannya atau saat ditandatangani sendiri.

Mengonfigurasi otorisasi sertifikat klien

Untuk mengonfigurasi dukungan untuk sertifikat klien, atur clientCertificateMode properti di templat aplikasi kontainer Anda.

Properti dapat diatur ke salah satu nilai berikut:

  • require: Sertifikat klien diperlukan untuk semua permintaan ke aplikasi kontainer.
  • accept: Sertifikat klien bersifat opsional. Jika sertifikat klien tidak disediakan, permintaan masih diterima.
  • ignore: Sertifikat klien diabaikan.

Ingress meneruskan sertifikat klien ke aplikasi kontainer jika require atau accept diatur.

Contoh templat ARM berikut mengonfigurasi ingress untuk memerlukan sertifikat klien untuk semua permintaan ke aplikasi kontainer.

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

Nota

Anda dapat mengatur clientCertificateMode itu langsung pada properti ingress. Ini tidak tersedia sebagai opsi eksplisit di CLI, tetapi Anda dapat menambal aplikasi Anda menggunakan Azure CLI.

Sebelum Anda menjalankan perintah berikut, pastikan untuk mengganti placeholder yang diapit oleh tag <> dengan nilai Anda sendiri.

Dapatkan ID Azure Resource Manager (ARM) dari aplikasi kontainer Anda:

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

Patch clientCertificateMode properti di aplikasi:

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

Nota

Pastikan untuk menggunakan versi API yang valid dan stabil yang mendukung fitur ini. Misalnya, ganti <API_VERSION> dalam perintah dengan 2025-01-01 atau versi lain yang didukung.

Mode sertifikat klien dan format header

Nilai untuk clientCertificateMode menentukan informasi yang perlu Anda sediakan agar Container Apps dapat mengelola sertifikat Anda.

  • Ketika require diatur, klien harus memberikan sertifikat.
  • Ketika accept diatur, sertifikat bersifat opsional. Jika klien menyediakan sertifikat, itu akan disertakan dalam X-Forwarded-Client-Cert header aplikasi sebagai daftar yang dipisahkan oleh titik koma.

Contoh X-Forwarded-Client-Cert nilai header

Contoh berikut adalah sampel nilai header X-Forwarded-Client-Cert yang mungkin diterima aplikasi Anda.

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

Perincian bidang header

Bidang Deskripsi Cara Menggunakannya
Hash Thumbprint SHA-256 dari sertifikat klien. Gunakan thumbprint untuk mengidentifikasi atau memvalidasi sertifikat klien.
Cert Sertifikat klien yang dikodekan base64 dalam format PEM (sertifikat tunggal). Uraikan sertifikat untuk memeriksa metadata seperti subjek dan penerbit.
Chain Satu atau beberapa sertifikat perantara yang dikodekan PEM. Berikan sertifikat perantara saat membangun rantai kepercayaan penuh untuk validasi.

Langkah berikutnya