本頁適用於 Apigee 和 Apigee Hybrid。
查看
Apigee Edge 說明文件。
本主題說明如何在 Apigee 或 Apigee hybrid 上執行的 API Proxy 中,透過流程變數存取 TLS 連線資訊。
擷取 TLS 連線資訊
在向 API Proxy 提出要求的過程中,Apigee 可以擷取 TLS 連線的相關資訊。接著,API 代理程式就能透過流程變數存取該資訊,執行其他分析和驗證作業。
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 輸入設定傳輸層安全標準 (TLS) 和 mTLS」。
存取 API Proxy 中的流程變數
您可以在 API 代理程式中存取及檢查 TLS 流量變數。舉例來說,您可以使用 AssignMessage 或 JavaScript 政策存取這些訊息。
您也可以在 Proxy 或目標資料流的 <Condition>
元素,或是 <Step>
或 <RouteRule>
中參照資料流變數。舉例來說,您可以根據用戶端的 SN,將要求轉送至不同的目標。
詳情請參閱: