Truy cập thông tin kết nối TLS trong proxy API

Bạn đang xem tài liệu về Apigee Edge.
Chuyển đến tài liệu về Apigee X.
thông tin

Edge cho phép bạn tạo các máy chủ ảo hỗ trợ TLS một chiều và hai chiều. Với TLS một chiều, ứng dụng sẽ đưa ra yêu cầu phiên cho một máy chủ ảo được triển khai trên Bộ định tuyến Edge và Bộ định tuyến sẽ phản hồi bằng một chứng chỉ chứa khoá công khai của máy chủ ảo. Đối với chứng chỉ đã ký, ứng dụng có thể gửi yêu cầu tới Tổ chức phát hành chứng chỉ (CA) để xác thực chứng chỉ.

Trong TLS hai chiều, cả ứng dụng khách và Edge đều chuyển các chứng chỉ được xác thực theo yêu cầu:

  • Bộ định tuyến Edge hiển thị chứng chỉ cho ứng dụng TLS để tự xác thực. Sau đó, ứng dụng sẽ xác minh danh tính của máy chủ trước khi gửi chứng chỉ đến máy chủ.
  • Ứng dụng TLS hiển thị chứng chỉ cho Edge để tự xác thực.

Hãy xem bài viết Giới thiệu về máy chủ ảo để biết thêm thông tin.

Ghi lại thông tin kết nối TLS

Trong khi yêu cầu proxy API thông qua một máy chủ ảo hỗ trợ TLS, Edge có thể thu thập thông tin về kết nối TLS. Sau đó, proxy API của bạn có thể truy cập thông tin đó thông qua các biến luồng để thực hiện việc phân tích và xác thực bổ sung.

Loại thông tin TLS mà Edge ghi lại tuỳ thuộc vào việc máy chủ ảo có hỗ trợ TLS một chiều hay hai chiều. Ví dụ: đối với TLS một chiều, Edge có thể thu thập thông tin về thuật toán mật mã TLS hoặc giao thức TLS dùng trong kết nối TLS.

Đối với TLS hai chiều, Edge có thể thu thập tất cả thông tin giống như được ghi lại cho TLS một chiều, đồng thời thu thập thông tin về chứng chỉ của ứng dụng. Ví dụ: Edge có thể ghi lại vân tay số SHA1 của chứng chỉ ứng dụng và chứng chỉ ứng dụng ở định dạng PEM.

Thu thập thông tin cho cả TLS một chiều và hai chiều

Bảng sau đây liệt kê những biến luồng chứa thông tin kết nối TLS mà Edge ghi lại và có thể truy cập trong proxy API. Thông tin này được ghi lại cho cả TLS một chiều và hai chiều bằng cách đặt <ConnectionProperties> thành true trong định nghĩa máy chủ ảo:

Biến luồng Mô tả
tls.cipher Thuật toán mật mã mà kết nối TLS sử dụng.
tls.protocol Giao thức mà kết nối TLS sử dụng.
tls.server.name Tên máy chủ KDDI được yêu cầu.
tls.session.id

Giá trị nhận dạng phiên.

Biến luồng này sẽ có sẵn khi bạn đặt <ConnectionProperties> hoặc <ClientProperties> hoặc thành true.

Thu thập thông tin TLS bổ sung trong TLS hai chiều

Bảng sau đây liệt kê các biến luồng chứa thông tin chi tiết về chứng chỉ ứng dụng khách do Edge ghi lại trong TLS hai chiều. Thông tin này được ghi lại cho TLS hai chiều bằng cách đặt <ClientProperties> thành true trong định nghĩa máy chủ ảo:

Biến luồng Mô tả
tls.client.s.dn Tên phân biệt chủ đề (DN) của chứng chỉ ứng dụng.
tls.client.i.dn Nhà phát hành Tên phân biệt (DN) của chứng chỉ ứng dụng.
tls.client.raw.cert Chứng chỉ ứng dụng ở định dạng PEM.
tls.client.cert.serial Số sê-ri của chứng chỉ ứng dụng.
tls.client.cert.fingerprint Vân tay số SHA1 của chứng chỉ ứng dụng.
tls.session.id

Giá trị nhận dạng phiên.

Biến luồng này sẽ có sẵn khi bạn đặt <ConnectionProperties> hoặc <ClientProperties> thành true.

Định cấu hình máy chủ ảo để thu thập thông tin TLS

Để định cấu hình máy chủ ảo nhằm thu thập thông tin TLS, hãy thiết lập các thuộc tính sau trong <PropagateTLSInformation> thành true.

  • <ConnectionProperties>: Bật tính năng thu thập thông tin kết nối TLS cho cả TLS một chiều và hai chiều. Giá trị mặc định là false.
  • <ClientProperties>: Bật tính năng thu thập thông tin bổ sung cho TLS hai chiều. Giá trị mặc định là false.

Ví dụ: định nghĩa máy chủ ảo sau đây sử dụng TLS hai chiều và cho phép thu thập cả hai loại thông tin TLS:

<VirtualHost name="secure">
    ....
    <SSLInfo>
        <Enabled>true</Enabled>
        # Enable two-way TLS.
        <ClientAuthEnabled>true</ClientAuthEnabled>
        <IgnoreValidationErrors>false</IgnoreValidationErrors>
        <KeyAlias>ks-alias</KeyAlias>
        <KeyStore>ref://ks-ref</KeyStore>
        <TrustStore>ref://ts-ref</TrustStore>
    </SSLInfo>
    <PropagateTLSInformation>
        <ConnectionProperties>true</ConnectionProperties>
        <ClientProperties>true</ClientProperties>
    </PropagateTLSInformation>
</VirtualHost>

Nếu bạn đang truyền nội dung JSON, hãy đặt các thuộc tính như sau:

  "propagateTLSInformation" : {
    "connectionProperties" : true,
    "clientProperties" : true
  }

Đặt giới hạn kích thước tiêu đề

Khi bạn bật tính năng thu thập thông tin TLS trên máy chủ ảo, Edge sẽ truyền thông tin đó bằng các tiêu đề HTTP. Do đó, bạn phải đảm bảo giới hạn kích thước tiêu đề được thiết lập phù hợp dựa trên việc bạn dùng Edge cho Đám mây hay Edge cho Đám mây riêng tư:

  • Edge for the Cloud (Cạnh cho đám mây): Apigee đặt kích thước tiêu đề một cách phù hợp.
  • Edge for the Private Cloud (Cạnh tranh cho đám mây riêng tư): Không có tính năng.

Truy cập vào các biến luồng trong proxy API

Trong proxy API của mình, bạn có thể truy cập và kiểm tra các biến luồng TLS. Ví dụ: bạn có thể sử dụng chính sách AssignMessage để truy cập vào các thư đó, truy cập chúng trong JavaScript bằng chính sách JavaScript.

Bạn cũng có thể tham chiếu các biến luồng trong phần tử <Condition> của proxy hoặc luồng mục tiêu, hay trong <Step> hoặc <RouteRule>. Ví dụ: bạn có thể định tuyến một yêu cầu đến các mục tiêu khác nhau dựa trên SN của ứng dụng.

Để biết thêm thông tin, hãy xem bài viết: