評估 API Proxy 中的傳輸層安全標準 (TLS) 連線資訊

本頁內容適用於 ApigeeApigee Hybrid

查看 Apigee Edge 說明文件。

本主題說明如何存取在 Apigee 或 Apigee Hybrid 上執行的 API Proxy 流程變數中的 TLS 連線資訊。

擷取 TLS 連線資訊

在對 API Proxy 提出要求時,Apigee 可以擷取 TLS 連線的相關資訊。API Proxy 接著就能透過流程變數存取該資訊,執行額外的分析和驗證。

Apigee 擷取的 TLS 資訊類型,取決於 Ingress 是否設定為支援單向或雙向 TLS (僅適用於 Apigee Hybrid)。舉例來說,如果是單向 TLS,Apigee 可以擷取 TLS 連線中使用的 TLS 密碼或 TLS 通訊協定相關資訊。

如果是雙向 TLS,Apigee 可以擷取與單向 TLS 相同的資訊,也可以擷取用戶端憑證的相關資訊。舉例來說,Apigee 可以擷取用戶端憑證的 SHA1 指紋,以及 PEM 格式的用戶端憑證。

擷取單向和雙向 TLS 的資訊

下表列出包含 Apigee 和 Apigee Hybrid 擷取 TLS 連線資訊的流程變數,以及可在 API Proxy 中存取的變數。

流程變數 說明
tls.cipher TLS 連線使用的密碼。
tls.protocol TLS 連線使用的通訊協定。
tls.server.name 要求的 SNI 伺服器名稱。
tls.session.id 工作階段 ID。

在雙向 TLS 期間擷取其他 TLS 資訊

下表列出含有 Apigee Hybrid 在雙向 TLS 中擷取用戶端憑證詳細資料的流程變數:

流程變數 說明
tls.client.s.dn 用戶端憑證的主體辨別名稱 (DN)。
tls.client.i.dn 用戶端憑證的核發者辨別名稱 (DN)。
tls.client.raw.cert PEM 格式的用戶端憑證。
tls.client.cert.serial 用戶端憑證的序號。
tls.client.cert.fingerprint 用戶端憑證的 SHA1 指紋。
tls.session.id 工作階段 ID。

設定 Apigee Hybrid 以啟用雙向 TLS

如要設定 Ingress 要求用戶端憑證,請在覆寫檔案中新增下列詳細資料:

virtualhosts:
  - name: internal
    minTLSProtocolVersion: "1.2" #optional
    maxTLSProtocolVersion: "1.2" #optional
    tlsMode: MUTUAL
    sslSecret: tls-certificates

另請參閱「運用 Istio Ingress 設定傳輸層安全標準 (TLS) 和 mTLS」。

存取 API Proxy 中的流程變數

在 API Proxy 中,您可以存取及檢查 TLS 流程變數。舉例來說,您可以使用 AssignMessageJavaScript 政策存取這些變數。

您也可以在 Proxy 或目標流程的 <Condition> 元素中,或在 <Step><RouteRule> 中參照流程變數。舉例來說,您可以根據用戶端 SN,將要求轉送至不同目標。

詳情請參閱: