यह Apigee Edge के दस्तावेज़ हैं.
पर जाएं
Apigee X दस्तावेज़. info
Edge की मदद से, वर्चुअल होस्ट बनाए जा सकते हैं. ये एकतरफ़ा और दोतरफ़ा TLS के साथ काम करते हैं. एकतरफ़ा TLS में, क्लाइंट, Edge Router पर डिप्लॉय किए गए वर्चुअल होस्ट को सेशन का अनुरोध भेजता है. इसके जवाब में, राउटर एक सर्टिफ़िकेट भेजता है. इसमें वर्चुअल होस्ट की पब्लिक की होती है. हस्ताक्षर किए गए सर्टिफ़िकेट के लिए, क्लाइंट सर्टिफ़िकेट की पुष्टि करने के लिए, सर्टिफ़िकेट अथॉरिटी (सीए) को अनुरोध भेज सकता है.
दोतरफ़ा TLS में, क्लाइंट और Edge, दोनों ही सर्टिफ़िकेट पास करते हैं. अनुरोध के तहत, इनकी पुष्टि की जाती है:
- Edge Router, अपनी पुष्टि करने के लिए, TLS क्लाइंट को अपना सर्टिफ़िकेट दिखाता है. इसके बाद, क्लाइंट सर्वर को अपना सर्टिफ़िकेट भेजने से पहले, सर्वर की पहचान की पुष्टि करता है.
- TLS क्लाइंट, अपनी पुष्टि करने के लिए, Edge को अपना सर्टिफ़िकेट दिखाता है.
ज़्यादा जानकारी के लिए, वर्चुअल होस्ट के बारे में जानकारी देखें.
TLS कनेक्शन की जानकारी कैप्चर करना
TLS के साथ काम करने वाले वर्चुअल होस्ट के ज़रिए, एपीआई प्रॉक्सी को अनुरोध भेजने पर, Edge, TLS कनेक्शन के बारे में जानकारी कैप्चर कर सकता है. इसके बाद, आपकी एपीआई प्रॉक्सी, फ़्लो वैरिएबल के ज़रिए उस जानकारी को ऐक्सेस करके, ज़्यादा विश्लेषण और पुष्टि कर सकती है.
Edge, TLS की किस तरह की जानकारी कैप्चर करता है, यह इस बात पर निर्भर करता है कि वर्चुअल होस्ट, एकतरफ़ा या दोतरफ़ा TLS के साथ काम करता है या नहीं. उदाहरण के लिए, एकतरफ़ा TLS के लिए, Edge, TLS कनेक्शन में इस्तेमाल किए गए TLS साइफ़र या TLS प्रोटोकॉल के बारे में जानकारी कैप्चर कर सकता है.
दोतरफ़ा TLS के लिए, Edge, एकतरफ़ा TLS के लिए कैप्चर की गई सभी जानकारी के साथ-साथ, क्लाइंट के सर्टिफ़िकेट के बारे में भी जानकारी कैप्चर कर सकता है. उदाहरण के लिए, Edge, पीईएम फ़ॉर्मैट में क्लाइंट सर्टिफ़िकेट और क्लाइंट सर्टिफ़िकेट का SHA1 फ़िंगरप्रिंट कैप्चर कर सकता है.
एकतरफ़ा और दोतरफ़ा, दोनों तरह के TLS के लिए जानकारी कैप्चर करना
यहां दी गई टेबल में, उन फ़्लो वैरिएबल की सूची दी गई है जिनमें Edge से कैप्चर की गई TLS कनेक्शन की जानकारी होती है.
साथ ही, ये वैरिएबल, एपीआई प्रॉक्सी में ऐक्सेस किए जा सकते हैं. वर्चुअल होस्ट की परिभाषा में <ConnectionProperties> को 'सही' पर सेट करके, एकतरफ़ा
और दोतरफ़ा, दोनों तरह के TLS के लिए यह जानकारी कैप्चर की जाती है:
| फ़्लो वैरिएबल | ब्यौरा |
|---|---|
tls.cipher
|
TLS कनेक्शन में इस्तेमाल किया गया साइफ़र. |
tls.protocol
|
TLS कनेक्शन में इस्तेमाल किया गया प्रोटोकॉल. |
tls.server.name
|
अनुरोध किया गया एसएनआई सर्वर का नाम. |
tls.session.id
|
सेशन का आइडेंटिफ़ायर. यह फ़्लो वैरिएबल तब उपलब्ध होता है, जब |
दोतरफ़ा TLS के दौरान, TLS की अतिरिक्त जानकारी कैप्चर करना
यहां दी गई टेबल में, उन फ़्लो वैरिएबल की सूची दी गई है जिनमें दोतरफ़ा TLS में Edge
से कैप्चर की गई, क्लाइंट सर्टिफ़िकेट की जानकारी होती है. वर्चुअल होस्ट की परिभाषा में
<ClientProperties> को 'सही' पर सेट करके, दोतरफ़ा TLS के लिए यह जानकारी कैप्चर की जाती है:
| फ़्लो वैरिएबल | ब्यौरा |
|---|---|
tls.client.s.dn
|
क्लाइंट सर्टिफ़िकेट का विषय, डिस्टिंग्विश्ड नेम (डीएन). |
tls.client.i.dn
|
क्लाइंट सर्टिफ़िकेट का जारी करने वाला, डिस्टिंग्विश्ड नेम (डीएन). |
tls.client.raw.cert
|
पीईएम फ़ॉर्मैट में क्लाइंट सर्टिफ़िकेट. |
tls.client.cert.serial
|
क्लाइंट सर्टिफ़िकेट का सीरियल नंबर. |
tls.client.cert.fingerprint
|
क्लाइंट सर्टिफ़िकेट का SHA1 फ़िंगरप्रिंट. |
tls.session.id
|
सेशन का आइडेंटिफ़ायर. यह फ़्लो वैरिएबल तब उपलब्ध होता है, जब या तो
|
TLS की जानकारी कैप्चर करने के लिए, वर्चुअल होस्ट को कॉन्फ़िगर करना
TLS की जानकारी कैप्चर करने के लिए, वर्चुअल होस्ट को कॉन्फ़िगर करने के लिए, इन प्रॉपर्टी को <PropagateTLSInformation> में मौजूद true पर सेट करें.
<ConnectionProperties>: एकतरफ़ा और दोतरफ़ा, दोनों तरह के TLS के लिए, TLS कनेक्शन की जानकारी कैप्चर करने की सुविधा चालू करें. डिफ़ॉल्ट वैल्यूfalseहोती है.<ClientProperties>: दोतरफ़ा TLS के लिए, अतिरिक्त जानकारी कैप्चर करने की सुविधा चालू करें. डिफ़ॉल्ट वैल्यूfalseहोती है.
उदाहरण के लिए, यहां दी गई वर्चुअल होस्ट की परिभाषा में, दोतरफ़ा TLS का इस्तेमाल किया गया है. साथ ही, इसमें दोनों तरह की 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>अगर JSON बॉडी पास की जा रही है, तो प्रॉपर्टी को इस तरह सेट करें:
"propagateTLSInformation" : {
"connectionProperties" : true,
"clientProperties" : true
}हेडर के साइज़ की सीमाएं सेट करना
वर्चुअल होस्ट पर TLS की जानकारी कैप्चर करने की सुविधा चालू करने पर, Edge, एचटीटीपी हेडर का इस्तेमाल करके वह जानकारी पास करता है. इसलिए, आपको यह पक्का करना होगा कि हेडर के साइज़ की सीमाएं, क्लाउड के लिए Edge या प्राइवेट क्लाउड के लिए Edge के इस्तेमाल के हिसाब से सेट की गई हों:
- क्लाउड के लिए Edge: Apigee, हेडर के साइज़ को सही तरीके से सेट करता है.
- प्राइवेट क्लाउड के लिए Edge: यह सुविधा उपलब्ध नहीं है.
एपीआई प्रॉक्सी में फ़्लो वैरिएबल ऐक्सेस करना
एपीआई प्रॉक्सी में, TLS फ़्लो वैरिएबल को ऐक्सेस और उनकी जांच की जा सकती है. उदाहरण के लिए, इन्हें ऐक्सेस करने के लिए, AssignMessage नीति का इस्तेमाल किया जा सकता है. साथ ही, JavaScript नीति की मदद से, इन्हें JavaScript में ऐक्सेस किया जा सकता है.
प्रॉक्सी या टारगेट फ़्लो के <Condition> एलिमेंट या <Step> या <RouteRule> में भी, फ़्लो वैरिएबल का रेफ़रंस दिया जा सकता है,
उदाहरण के लिए, क्लाइंट के एसएन के आधार पर, अनुरोध को अलग-अलग टारगेट पर भेजा जा सकता है.
ज़्यादा जानकारी के लिए, ये लेख देखें: