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