共用方式為


在 Azure Container Apps 中使用 mTLS

相互傳輸層安全性 (mTLS) 是標準 TLS 通訊協定的延伸模組,可提供用戶端與伺服器之間的相互驗證。 Azure Container Apps 支援執行已啟用 mTLS 的應用程式,以在應用程式中提供更高的安全性。

在 Azure Container Apps 中,所有連入要求都會通過 Envoy,再路由傳送至目標容器應用程式。 當您使用 mTLS 時,用戶端會與 Envoy 交換憑證。 每個憑證都會放入 X-Forwarded-Client-Cert 標頭中,然後傳送至應用程式。

若要在 Azure Container Apps 中建置 mTLS 應用程式,您需要:

  1. 設定 Azure Container Apps 以要求來自對等的客戶端憑證。
  2. 從要求擷取 X.509 憑證。

本文說明如何藉由從用戶端擷取 X.509 憑證來處理對等 mTLS 交握憑證。

需要客戶端憑證

使用下列步驟來設定容器應用程式以要求客戶端憑證:

  1. 在 Azure 入口網站中開啟您的容器應用程式。
  2. 在 [設定] 底下,選取 [輸入]。
  3. 選取 [啟用] 選項。
  4. 針對 輸入類型,選取 [ HTTP]。
  5. 在 [用戶端憑證模式] 底下,選取 [需要]。
  6. 選取儲存以套用變更。

如需在 Azure Container Apps 中設定用戶端憑證驗證的詳細資訊,請參閱 在 Azure Container Apps 中設定客戶端憑證驗證。

擷取 X.509 憑證

若要從標頭擷X-Forwarded-Client-CertX.509憑證,請剖析應用程式程序代碼中的標頭值。 此標頭包含啟用 mTLS 時的用戶端憑證資訊。 憑證會以分號分隔的清單格式提供,其中包含哈希、憑證和鏈結。

以下是您想要遵循的程式,以擷取和剖析應用程式中的憑證:

  1. 從傳入要求擷 X-Forwarded-Client-Cert 取標頭。
  2. 剖析標頭值以擷取憑證詳細數據。
  3. 將剖析的憑證放入標準憑證屬性,以進行進一步的驗證或使用。

剖析之後,您可以驗證憑證,並根據應用程式的需求加以使用。

範例

在 Java 應用程式中,您可以使用 回應式 X.509 驗證篩選器 ,將憑證的使用者資訊對應至安全性內容。 如需在 Azure Container Apps 中使用 mTLS 的完整 Java 應用程式範例,請參閱 Azure Container Apps 上的 mTLS 伺服器應用程式。