Bạn đang xem tài liệu về Apigee Edge.
Truy cập vào
tài liệu 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, máy khách sẽ đưa ra yêu cầu phiên đến một máy chủ ảo được triển khai trên Bộ định tuyến biên 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ý, sau đó, ứng dụng có thể gửi yêu cầu đến 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 và Edge đều truyền các chứng chỉ được xác thực trong một yêu cầu:
- Bộ định tuyến Edge xuất trình 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ỉ của máy chủ.
- Ứng dụng TLS trình bày chứng chỉ của mình cho Edge để tự xác thực.
Hãy xem phần 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 yêu cầu gửi đến một proxy API thông qua 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 vào thông tin đó thông qua các biến luồng để thực hiện thêm quy trình phân tích và xác thực.
Loại thông tin TLS mà Edge thu thập được phụ 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 được 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 tương tự như thông tin được thu thập cho TLS một chiều, đồng thời thu thập thông tin về chứng chỉ của ứng dụng khách. Ví dụ: Edge có thể ghi lại dấu vân tay SHA1 của chứng chỉ máy khách và chứng chỉ máy khách ở định dạng PEM.
Ghi lại thông tin cho cả TLS một chiều và hai chiều
Bảng sau đây liệt kê các biến luồng chứa thông tin kết nối TLS do Edge thu thập 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 | Nội dung 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 được kết nối TLS sử dụng. |
tls.server.name
|
Tên máy chủ SNI được yêu cầu. |
tls.session.id
|
Giá trị nhận dạng phiên. Biến quy trình này có sẵn khi bạn đặt |
Thu thập thêm thông tin về TLS 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ỉ máy 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 | Nội dung mô tả |
|---|---|
tls.client.s.dn
|
Tên phân biệt (DN) của chủ đề của chứng chỉ máy khách. |
tls.client.i.dn
|
Tên riêng biệt (DN) của nhà phát hành của chứng chỉ ứng dụng. |
tls.client.raw.cert
|
Chứng chỉ máy khách ở định dạng PEM. |
tls.client.cert.serial
|
Số sê-ri của chứng chỉ máy khách. |
tls.client.cert.fingerprint
|
Dấu vân tay 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 có sẵn khi bạn đặt |
Đị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 đặt các thuộc tính sau trong <PropagateTLSInformation> thành true.
<ConnectionProperties>: Bật tính năng ghi lại 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>: Cho phép 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 ghi lại 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 một phần nội dung JSON, hãy đặt các thuộc tính như sau:
"propagateTLSInformation" : {
"connectionProperties" : true,
"clientProperties" : true
}Đặt hạn mức kích thước tiêu đề
Khi bạn bật tính năng ghi lại thông tin TLS trên một máy chủ ảo, Edge sẽ truyền thông tin đó bằng cách sử dụng tiêu đề HTTP. Do đó, bạn phải đảm bảo rằng các giới hạn về kích thước tiêu đề được đặt một cách thích hợp dựa trên việc bạn đang sử dụng Edge cho Cloud hay Edge cho Cloud riêng tư:
- Edge for the Cloud: Apigee đặt kích thước tiêu đề một cách thích hợp.
- Edge cho Private Cloud: Tính năng này không dùng được.
Truy cập vào các biến luồng trong một proxy API
Trong proxy API, 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 biến này, truy cập vào các biến này 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 một luồng đích hoặc proxy, hoặc 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 máy khách.
Để biết thêm thông tin, hãy xem: