Udostępnij za pośrednictwem


Konfigurowanie uwierzytelniania certyfikatu klienta w usłudze Azure Container Apps

Usługa Azure Container Apps obsługuje uwierzytelnianie certyfikatów klienta (nazywane również wzajemnym protokołem TLS lub mTLS), które umożliwia dostęp do aplikacji kontenera za pośrednictwem uwierzytelniania dwukierunkowego. W tym artykule pokazano, jak skonfigurować autoryzację certyfikatu klienta w usłudze Azure Container Apps.

Gdy certyfikaty klienta są używane, certyfikaty TLS są wymieniane między klientem a aplikacją kontenera w celu uwierzytelniania tożsamości i szyfrowania ruchu. Certyfikaty klienta są często używane w modelach zabezpieczeń "zero zaufania", aby autoryzować dostęp klienta w organizacji.

Możesz na przykład wymagać certyfikatu klienta dla aplikacji kontenera, która zarządza poufnymi danymi.

Usługa Container Apps akceptuje certyfikaty klienta w formacie PKCS12, gdy są wystawiane przez zaufany urząd certyfikacji albo gdy są podpisane samodzielnie.

Konfigurowanie autoryzacji certyfikatu klienta

Aby skonfigurować obsługę certyfikatów klienta, ustaw clientCertificateMode właściwość w szablonie aplikacji kontenera.

Właściwość można ustawić na jedną z następujących wartości:

  • require: Certyfikat klienta jest wymagany dla wszystkich żądań do aplikacji kontenera.
  • accept: certyfikat klienta jest opcjonalny. Jeśli certyfikat klienta nie zostanie podany, żądanie jest nadal akceptowane.
  • ignore: Certyfikat klienta jest ignorowany.

Ruch przychodzący przekazuje certyfikat klienta do aplikacji kontenera, jeśli require został ustawiony.accept

Poniższy przykładowy szablon usługi ARM konfiguruje ruch przychodzący, aby wymagać certyfikatu klienta dla wszystkich żądań do aplikacji kontenera.

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

Uwaga / Notatka

Można ustawić bezpośrednio clientCertificateMode we właściwości ingress. Nie jest dostępna jako jawna opcja w interfejsie wiersza polecenia, ale możesz zastosować poprawkę aplikacji przy użyciu interfejsu wiersza polecenia platformy Azure.

Przed uruchomieniem następujących poleceń pamiętaj, aby zastąpić symbole zastępcze otoczone <> własnymi wartościami.

Pobierz identyfikator usługi Azure Resource Manager (ARM) aplikacji kontenera:

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

Załataj właściwość clientCertificateMode w aplikacji:

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

Uwaga / Notatka

Pamiętaj, aby użyć prawidłowej i stabilnej wersji interfejsu API, która obsługuje tę funkcję. Na przykład zastąp <API_VERSION> w poleceniu 2025-01-01 lub inną obsługiwaną wersją.

Tryb certyfikatu klienta i format nagłówka

Wartość dla clientCertificateMode różni się w zależności od tego, co należy podać, aby aplikacja Container Apps mogła zarządzać certyfikatem.

  • Po require ustawieniu klient musi podać certyfikat.
  • Po accept ustawieniu certyfikat jest opcjonalny. Jeśli klient udostępnia certyfikat, przekazuje go do aplikacji w nagłówku X-Forwarded-Client-Cert jako listę rozdzielaną średnikami.

Przykładowa X-Forwarded-Client-Cert wartość nagłówka

Poniższy przykład to przykładowa wartość nagłówka X-Forwarded-Client-Cert , który może otrzymać Aplikacja:

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

Podział pól nagłówka

(No changes needed) Opis Jak stosować
Hash Odcisk palca SHA-256 certyfikatu klienta. Użyj odcisku palca, aby zidentyfikować lub zweryfikować certyfikat klienta.
Cert Certyfikat klienta zakodowany w formacie base64 w formacie PEM (pojedynczy certyfikat). Przeanalizuj certyfikat, aby sprawdzić metadane, takie jak podmiot i wystawca.
Chain Co najmniej jeden certyfikat pośredniczący zakodowany za pomocą standardu PEM. Podaj certyfikaty pośrednie podczas tworzenia pełnego łańcucha zaufania na potrzeby walidacji.

Następne kroki