Aracılığıyla paylaş


Azure Container Apps'te istemci sertifikası kimlik doğrulamayı yapılandırma

Azure Container Apps, kapsayıcı uygulamanıza iki yönlü kimlik doğrulaması aracılığıyla erişim sağlayan istemci sertifikası kimlik doğrulamasını (karşılıklı TLS veya mTLS olarak da bilinir) destekler. Bu makalede, Azure Container Apps'te istemci sertifikası yetkilendirmesini yapılandırma adımları gösterilmektedir.

İstemci sertifikaları kullanıldığında, kimlik doğrulaması yapmak ve trafiği şifrelemek için TLS sertifikaları istemci ile kapsayıcı uygulamanız arasında değiştirilir. İstemci sertifikaları genellikle bir kuruluş içinde istemci erişimini yetkilendirmek için "sıfır güven" güvenlik modellerinde kullanılır.

Örneğin, hassas verileri yöneten bir kapsayıcı uygulaması için bir istemci sertifikası gerektirebilirsiniz.

Container Apps, güvenilen bir sertifika yetkilisi (CA) tarafından verilmiş veya kendinden imzalı olan istemci sertifikalarını PKCS12 formatında kabul eder.

İstemci sertifikası yetkilendirmeyi yapılandırma

İstemci sertifikaları desteğini yapılandırmak için kapsayıcı uygulama şablonunuzdaki özelliğini ayarlayın clientCertificateMode .

özelliği aşağıdaki değerlerden birine ayarlanabilir:

  • require: kapsayıcı uygulamasına yapılan tüm istekler için istemci sertifikası gereklidir.
  • accept: İstemci sertifikası isteğe bağlıdır. İstemci sertifikası sağlanmazsa istek yine de kabul edilir.
  • ignore: İstemci sertifikası yoksayılır.

Giriş, ayarlanmışsa veya require ayarlandıysa accept istemci sertifikasını kapsayıcı uygulamasına geçirir.

Aşağıdaki ARM şablonu örneği, girişi kapsayıcı uygulamasına yönelik tüm istekler için bir istemci sertifikası gerektirecek şekilde yapılandırır.

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

Uyarı

clientCertificateMode öğesini doğrudan giriş özelliğinde ayarlayabilirsiniz. CLI'da açık bir seçenek olarak kullanılamaz, ancak Azure CLI'yı kullanarak uygulamanıza yama yapabilirsiniz.

Aşağıdaki komutları çalıştırmadan önce, ile çevrelenen <> yer tutucuları kendi değerlerinizle değiştirdiğinizden emin olun.

Kapsayıcı uygulamanızın Azure Resource Manager (ARM) kimliğini alın:

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

Uygulamaya clientCertificateMode yamasını uygulayın.

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

Uyarı

Bu özelliği destekleyen geçerli ve kararlı bir API sürümü kullandığınızdan emin olun. Örneğin, komuttaki <API_VERSION> ifadesini 2025-01-01 veya başka bir desteklenen sürümle değiştirin.

İstemci sertifika modu ve üst bilgi biçimi

Değer clientCertificateMode, Container Apps'in sertifikanızı yönetmesi için sağlamanız gereken unsura göre değişir.

  • require Ayarlandığında, istemcinin bir sertifika sağlaması gerekir.
  • accept Ayarlandığında, sertifika isteğe bağlıdır. Müşteri bir sertifika sağladığında, sertifika üst bilgilerdeki X-Forwarded-Client-Cert başlığında, noktalı virgülle ayrılmış bir liste olarak uygulamaya iletilir.

Örnek X-Forwarded-Client-Cert üst bilgi değeri

Aşağıdaki örnek, uygulamanızın X-Forwarded-Client-Cert alabileceği üst bilginin örnek değeridir:

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

Üst bilgi alanı dökümü

Alan Açıklama Nasıl Kullanılır?
Hash İstemci sertifikasının SHA-256 parmak izi. İstemci sertifikasını tanımlamak veya doğrulamak için parmak izini kullanın.
Cert PEM biçiminde (tek sertifika) base64 ile kodlanmış istemci sertifikası. Konu ve veren gibi meta verileri incelemek için sertifikayı ayrıştırın.
Chain PeM ile kodlanmış bir veya daha fazla ara sertifika. Doğrulama için tam güven zinciri oluştururken ara sertifikaları sağlayın.

Sonraki Adımlar