Použití mTLS v Azure Container Apps

Mutual Transport Layer Security (mTLS) je rozšíření standardního protokolu TLS, který poskytuje vzájemné ověřování mezi klientem a serverem. Azure Container Apps podporuje spouštění aplikací s podporou mTLS, které zajišťují vyšší zabezpečení vašich aplikací.

V Azure Container Apps všechny příchozí požadavky nejprve procházejí přes Envoy, než jsou směrovány do cílové kontejnerové aplikace. Když používáte mTLS, klient vyměňuje certifikáty se službou Envoy. Každý z těchto certifikátů se umístí do hlavičky X-Forwarded-Client-Cert , která se pak odešle do aplikace.

Pokud chcete vytvořit aplikaci mTLS v Azure Container Apps, musíte:

  • Nakonfigurujte Azure Container Apps tak, aby vyžadovala klientské certifikáty od protějšků.
  • Extrahujte X.509 certifikáty z požadavků.

Tento článek popisuje, jak pracovat s certifikáty používanými při peer mTLS handshake extrakcí certifikátu X.509 z klienta.

Vyžadování klientských certifikátů

Pomocí následujících kroků nakonfigurujte aplikaci kontejneru tak, aby vyžadovala klientské certifikáty:

  1. Na portálu Azure otevřete aplikaci kontejneru.
  2. V levé nabídce vyberte Networking>Ingress.
  3. V části Povolit Ingress pro aplikace, které potřebují koncový bod HTTP nebo TCP. povolte Ingress.
  4. U možnosti Ingress type vyberte HTTP.
  5. V části Režim klientského certifikátu vyberte Vyžadovat.
  6. Výběrem možnosti Uložit se změny uplatní.

Další informace o konfiguraci ověřování klientských certifikátů v Azure Container Apps najdete v tématu Konfigurace ověřování klientských certifikátů v Azure Container Apps.

Extrahování certifikátů X.509

Pokud chcete extrahovat X.509 certifikáty z X-Forwarded-Client-Cert hlavičky, parsujte hodnotu hlavičky v kódu aplikace. Tato hlavička obsahuje informace o klientském certifikátu, pokud je povolená služba mTLS. Certifikáty jsou poskytovány ve formátu seznamu odděleného středníkem, který zahrnuje hodnotu hash, certifikát a řetěz.

Tady je postup, podle kterého chcete extrahovat a parsovat certifikát v aplikaci:

  1. Načtěte hlavičku X-Forwarded-Client-Cert z příchozího požadavku.
  2. Parsujte hodnotu hlavičky a extrahujte podrobnosti o certifikátu.
  3. Za účelem dalšího ověření nebo použití vložte analyzované certifikáty do standardního atributu certifikátu.

Po parsování můžete ověřit certifikáty a používat je podle potřeb vaší aplikace.

Příklad

V aplikacích v Javě můžete pomocí filtru ověřování Reactive X.509 namapovat informace o uživateli z certifikátů na kontext zabezpečení. Úplný příklad aplikace v Javě s mTLS v Azure Container Apps najdete v tématu Aplikace serveru mTLS v Azure Container Apps.