Catatan
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba masuk atau mengubah direktori.
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba mengubah direktori.
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
requirediatur, klien harus memberikan sertifikat. - Ketika
acceptdiatur, sertifikat bersifat opsional. Jika klien menyediakan sertifikat, itu akan disertakan dalamX-Forwarded-Client-Certheader 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. |