Anda sedang melihat dokumentasi Apigee Edge.
Buka
Dokumentasi Apigee X. info
Edge memungkinkan Anda membuat host virtual yang mendukung TLS satu arah dan dua arah. Dengan TLS satu arah, klien mengeluarkan permintaan sesi ke {i>host<i} virtual yang di-deploy di {i>Router<i} Edge dan {i>Router<i} merespons dengan sertifikat yang berisi kunci publik {i>host<i} virtual. Untuk sertifikat yang ditandatangani, klien dapat mengajukan permintaan ke {i>Certificate Authority<i} (CA) untuk mengotentikasi sertifikat.
Di TLS dua arah, klien dan Edge meneruskan sertifikat yang divalidasi sebagai bagian dari permintaan:
- Router Edge menyajikan sertifikatnya ke klien TLS untuk mengautentikasi dirinya sendiri. Klien kemudian memverifikasi identitas server sebelum mengirim sertifikatnya ke server.
- Klien TLS menyajikan sertifikatnya ke Edge untuk mengautentikasi dirinya sendiri.
Lihat Tentang host virtual untuk informasi selengkapnya.
Mengambil informasi koneksi TLS
Selama permintaan ke proxy API melalui {i>host<i} virtual yang mendukung TLS, Edge dapat menangkap informasi tentang koneksi TLS. Proxy API Anda kemudian dapat mengakses informasi tersebut melalui variabel {i>flow<i} untuk melakukan analisis dan validasi tambahan.
Jenis informasi TLS yang ditangkap oleh Edge bergantung pada apakah {i>host<i} virtual mendukung TLS satu arah atau dua arah. Misalnya, untuk TLS satu arah, Edge dapat mengambil informasi tentang Penyandian TLS atau protokol TLS yang digunakan dalam koneksi TLS.
Untuk TLS dua arah, Edge dapat menangkap semua informasi yang sama seperti yang direkam untuk TLS satu arah, serta mendapatkan informasi tentang sertifikat klien. Misalnya, Edge dapat mengambil sidik jari SHA1 sertifikat klien dan sertifikat klien dalam format PEM.
Merekam informasi untuk keduanya TLS satu arah dan dua arah
Tabel berikut mencantumkan variabel alur yang berisi informasi koneksi TLS yang diambil
oleh Edge dan tersedia untuk diakses di proxy API. Informasi ini ditangkap untuk kedua kalinya
dan TLS dua arah dengan menyetel <ConnectionProperties>
ke true
definisi {i>host<i} virtual:
Variabel flow | Deskripsi |
---|---|
tls.cipher
|
Penyandian yang digunakan oleh koneksi TLS. |
tls.protocol
|
Protokol yang digunakan oleh koneksi TLS. |
tls.server.name
|
Nama server SNI yang diminta. |
tls.session.id
|
ID sesi. Variabel alur ini tersedia saat Anda menetapkan |
Merekam informasi TLS tambahan selama TLS dua arah
Tabel berikut mencantumkan variabel alur yang berisi detail sertifikat klien yang diambil oleh Edge
di TLS dua arah. Informasi ini ditangkap untuk TLS dua arah dengan mengatur
<ClientProperties>
ke benar (true) dalam definisi host virtual:
Variabel flow | Deskripsi |
---|---|
tls.client.s.dn
|
Nama yang Dibedakan (DN) subjek dari sertifikat klien. |
tls.client.i.dn
|
Nama yang Dibedakan (DN) penerbit sertifikat klien. |
tls.client.raw.cert
|
Sertifikat klien dalam format PEM. |
tls.client.cert.serial
|
Nomor seri sertifikat klien. |
tls.client.cert.fingerprint
|
Sidik jari SHA1 sertifikat klien. |
tls.session.id
|
ID sesi. Variabel alur ini tersedia saat Anda menetapkan
|
Mengonfigurasi host virtual untuk menangkap informasi TLS
Untuk mengonfigurasi host virtual guna mengambil informasi TLS, setel properti berikut
di bawah <PropagateTLSInformation>
hingga true
.
<ConnectionProperties>
: Mengaktifkan pengambilan informasi koneksi TLS untuk TLS satu arah maupun dua arah. Nilai defaultnya adalahfalse
.<ClientProperties>
: Mengaktifkan pengambilan informasi tambahan untuk TLS dua arah. Nilai defaultnya adalahfalse
.
Misalnya, definisi {i>host<i} virtual berikut menggunakan TLS dua arah dan memungkinkan perekaman kedua jenis informasi 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>
Jika Anda meneruskan isi JSON, tetapkan properti sebagai:
"propagateTLSInformation" : { "connectionProperties" : true, "clientProperties" : true }
Menetapkan batas ukuran header
Saat Anda mengaktifkan pengambilan informasi TLS pada host virtual, Edge akan meneruskan informasi tersebut menggunakan header HTTP. Oleh karena itu, Anda harus memastikan batas ukuran header ditetapkan dengan benar berdasarkan apakah Anda menggunakan Edge untuk Cloud atau Edge untuk Private Cloud:
- Edge for the Cloud: Apigee menetapkan ukuran header dengan tepat.
- Edge untuk Private Cloud: Fitur tidak tersedia.
Mengakses variabel alur di proxy API
Dari dalam proxy API, Anda dapat mengakses dan memeriksa variabel alur TLS. Misalnya, Anda dapat menggunakan AssignMessage untuk mengaksesnya, mengaksesnya di JavaScript dengan kebijakan JavaScript.
Anda juga dapat mereferensikan variabel alur dalam elemen <Condition>
dari proxy atau alur target,
atau dalam <Step>
atau <RouteRule>
. Misalnya, Anda bisa merutekan
permintaan ke target yang berbeda berdasarkan SN klien.
Untuk informasi selengkapnya, lihat: