Freigeben über


Verwenden von mTLS in Azure Container Apps

Mutual Transport Layer Security (mTLS) ist eine Erweiterung des standardmäßigen TLS-Protokolls, das die gegenseitige Authentifizierung zwischen Client und Server bereitstellt. Azure Container Apps unterstützt die Ausführung von mTLS-fähigen Anwendungen, um eine erhöhte Sicherheit in Ihren Anwendungen zu gewährleisten.

In Azure Container Apps durchlaufen alle eingehenden Anforderungen Envoy, bevor sie an die Zielcontainer-App weitergeleitet werden. Wenn Sie mTLS verwenden, tauscht der Client Zertifikate mit Envoy aus. Jedes dieser Zertifikate wird im X-Forwarded-Client-Cert-Header platziert, der dann an die Anwendung gesandt wird.

Um eine mTLS-Anwendung in Azure Container Apps zu erstellen, müssen Sie:

  1. Azure Container Apps so konfigurieren, dass Clientzertifikate von Peers erforderlich sind.
  2. X.509-Zertifikate aus Anforderungen extrahieren.

In diesem Artikel wird beschrieben, wie Peer-mTLS-Handshakezertifikate behandelt werden, indem das X.509-Zertifikat vom Client extrahiert wird.

Erforderlich machen von Clientzertifikaten

Führen Sie die folgenden Schritte aus, um Ihre Container-App so zu konfigurieren, dass Clientzertifikate erforderlich sind:

  1. Öffnen Sie Ihre Container-App im Azure-Portal.
  2. Wählen Sie unter Einstellungen die Option Eingang aus.
  3. Aktivieren Sie die Option Aktiviert.
  4. Wählen Sie für EingangstypHTTP- aus.
  5. Wählen Sie unter Clientzertifikatmodus die Option Erforderlich aus.
  6. Klicken Sie auf Speichern, um die Änderungen zu übernehmen.

Weitere Informationen zum Konfigurieren der Clientzertifikatauthentifizierung in Azure Container Apps finden Sie unter Konfigurieren der Clientzertifikatauthentifizierung in Azure Container Apps.

Extrahieren von X.509-Zertifikaten

Um X.509-Zertifikate aus dem X-Forwarded-Client-Cert-Header zu extrahieren, analysieren Sie den Headerwert in Ihrem Anwendungscode. Dieser Header enthält die Clientzertifikatinformationen, wenn mTLS aktiviert ist. Die Zertifikate werden in einem durch Semikolons getrennten Listenformat bereitgestellt, das den Hash, das Zertifikat und die Kette enthält.

Dies ist das Verfahren, das Sie zum Extrahieren und Analysieren des Zertifikats in Ihrer Anwendung befolgen sollten:

  1. Rufen Sie den X-Forwarded-Client-Cert-Header aus der eingehenden Anforderung ab.
  2. Analysieren Sie den Headerwert, um die Zertifikatdetails zu extrahieren.
  3. Fügen Sie die analysierten Zertifikate zum Standardzertifikatsattribut zur weiteren Überprüfung oder Verwendung hinzu.

Nach der Analyse können Sie Zertifikate überprüfen und entsprechend den Anforderungen Ihrer Anwendung verwenden.

Beispiel

In Java-Anwendungen können Sie den Reaktiven X.509-Authentifizierungsfilter verwenden, um die Benutzerinformationen von Zertifikaten dem Sicherheitskontext zuzuordnen. Ein vollständiges Beispiel für eine Java-Anwendung mit mTLS in Azure Container Apps finden Sie unter mTLS-Serveranwendung in Azure Container Apps.