किसी API प्रॉक्सी में TLS कनेक्शन जानकारी ऐक्सेस करना

आपको Apigee Edge दस्तावेज़ दिख रहा है.
अभी तक किसी भी व्यक्ति ने चेक इन नहीं किया है इस पेज पर जाएं Apigee X दस्तावेज़.
जानकारी

Edge से आपको ऐसे वर्चुअल होस्ट बनाने की सुविधा मिलती है जो वन-वे और टू-वे TLS के साथ काम करते हैं. एकतरफ़ा TLS से, क्लाइंट, Edge राऊटर और राऊटर पर डिप्लॉय किए गए वर्चुअल होस्ट को सेशन का अनुरोध भेजता है के जवाब में ऐसे सर्टिफ़िकेट का इस्तेमाल किया जाता है जिसमें वर्चुअल होस्ट की सार्वजनिक कुंजी होती है. हस्ताक्षर किए गए सर्टिफ़िकेट के लिए, क्लाइंट इसके बाद, सर्टिफ़िकेट देने वाली संस्था (सीए) से उस सर्टिफ़िकेट की पुष्टि करने का अनुरोध कर सकती है.

टू-वे TLS में, क्लाइंट और Edge दोनों पास वाले सर्टिफ़िकेट, जिनकी पुष्टि अनुरोध के तौर पर की जाती है:

  • खुद की पुष्टि करने के लिए Edge राऊटर अपना सर्टिफ़िकेट, TLS क्लाइंट को दिखाता है. क्लाइंट तो सर्वर को प्रमाणपत्र भेजने से पहले सर्वर की पहचान सत्यापित करता है.
  • खुद की पुष्टि करने के लिए TLS क्लाइंट, Edge को अपना सर्टिफ़िकेट दिखाता है.

ज़्यादा जानकारी के लिए, वर्चुअल होस्ट के बारे में जानकारी देखें.

TLS कनेक्शन की जानकारी कैप्चर करना

TLS के साथ काम करने वाले वर्चुअल होस्ट के ज़रिए, एपीआई प्रॉक्सी को अनुरोध करने के दौरान, Edge कैप्चर कर सकता है TLS कनेक्शन के बारे में जानकारी. इसके बाद, आपका एपीआई प्रॉक्सी इसके ज़रिए उस जानकारी को ऐक्सेस कर सकता है फ़्लो वैरिएबल का इस्तेमाल करें.

Edge से कैप्चर की गई TLS जानकारी का टाइप, इस बात पर निर्भर करता है कि वर्चुअल होस्ट आपके डिवाइस पर काम करता है या नहीं एकतरफ़ा या दो-तरफ़ा TLS. उदाहरण के लिए, एकतरफ़ा TLS के लिए, Edge TLS कनेक्शन में इस्तेमाल किया जाने वाला TLS साइफ़र या TLS प्रोटोकॉल.

टू-वे TLS के लिए, Edge वे सभी जानकारी कैप्चर कर सकता है जो एकतरफ़ा TLS के लिए कैप्चर की जाती है. और क्लाइंट के सर्टिफ़िकेट की जानकारी भी कैप्चर कर सकता है. उदाहरण के लिए, Edge SHA1 फ़िंगरप्रिंट को कैप्चर कर सकता है और क्लाइंट सर्टिफ़िकेट को PEM फ़ॉर्मैट में बदला जा सकता है.

दोनों के लिए जानकारी कैप्चर की जा रही है वन-वे और टू-वे TLS

नीचे दी गई टेबल में उन फ़्लो वैरिएबल की सूची दी गई है जिनमें टीएलएस कनेक्शन की जानकारी कैप्चर की गई है Edge से और एपीआई प्रॉक्सी में ऐक्सेस के लिए उपलब्ध है. यह जानकारी एक-तरफ़ा दोनों तरीकों से कैप्चर की जाती है और <ConnectionProperties> को 'सही' पर सेट करके दोतरफ़ा TLS को वर्चुअल होस्ट की परिभाषा:

फ़्लो वैरिएबल जानकारी
tls.cipher TLS कनेक्शन में इस्तेमाल किया गया साइफ़र.
tls.protocol TLS कनेक्शन के लिए इस्तेमाल किया गया प्रोटोकॉल.
tls.server.name अनुरोध किया गया SNI सर्वर नाम.
tls.session.id

सेशन आइडेंटिफ़ायर.

यह फ़्लो वैरिएबल तब उपलब्ध होता है, जब <ConnectionProperties> में से किसी एक को सेट किया जाता है या <ClientProperties> या सही करें.

दो-तरफ़ा TLS के दौरान अतिरिक्त TLS जानकारी कैप्चर करना

नीचे दी गई टेबल में ऐसे फ़्लो वैरिएबल दिए गए हैं जिनमें Edge से कैप्चर किए गए क्लाइंट सर्टिफ़िकेट की जानकारी शामिल है दोनों-तरफ़ा TLS में भी इसे इस्तेमाल किया जा सकता है. यह जानकारी सेटिंग द्वारा दो-तरफ़ा 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

सेशन आइडेंटिफ़ायर.

यह फ़्लो वैरिएबल तब उपलब्ध होता है, जब <ConnectionProperties> या <ClientProperties> को सही पर सेट करें.

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 वह जानकारी पास कर देता है जिसमें एचटीटीपी हेडर इस्तेमाल किए जा सकते हैं. इसलिए, आपको यह पक्का करना होगा कि हेडर के साइज़ की सीमाएं सही तरीके से सेट की गई हों Cloud के लिए Edge या प्राइवेट क्लाउड के लिए Edge इस्तेमाल किया जा रहा है, इसके हिसाब से:

  • क्लाउड के लिए एज: Apigee, हेडर के साइज़ को सही तरीके से सेट करता है.
  • प्राइवेट क्लाउड के लिए एज: सुविधा उपलब्ध नहीं है.

किसी एपीआई प्रॉक्सी में फ़्लो वैरिएबल को ऐक्सेस करना

अपने एपीआई प्रॉक्सी की मदद से, TLS फ़्लो वैरिएबल को ऐक्सेस और उनकी जांच की जा सकती है. उदाहरण के लिए, आप AssignMessage का इस्तेमाल कर सकते हैं नीति का पालन करें और उन्हें JavaScript नीति की मदद से JavaScript में ऐक्सेस करें.

प्रॉक्सी या टारगेट फ़्लो के <Condition> एलिमेंट में भी फ़्लो वैरिएबल का रेफ़रंस दिया जा सकता है, या <Step> या <RouteRule> में. उदाहरण के लिए, आप क्लाइंट के एसएन के आधार पर अलग-अलग टारगेट के लिए अनुरोध.

ज़्यादा जानकारी के लिए, यह देखें: