आपको Apigee Edge दस्तावेज़ दिख रहा है.
अभी तक किसी भी व्यक्ति ने चेक इन नहीं किया है
इस पेज पर जाएं
Apigee X दस्तावेज़. जानकारी
क्या
ऐक्सेस कंट्रोल नीति की मदद से, किसी खास आईपी पते से अपने एपीआई को ऐक्सेस करने की अनुमति दी जा सकती है या उसे अस्वीकार किया जा सकता है पते.
वीडियो: अनुमति देने या अस्वीकार करने के तरीके के बारे में ज़्यादा जानने के लिए, यह छोटा सा वीडियो देखें अलग-अलग आईपी पतों से आपके एपीआई ऐक्सेस करें.
एपीआई प्रॉक्सी फ़्लो में कहीं भी इस नीति को अटैच किया जा सकता है, लेकिन हो सकता है कि आप फ़्लो की शुरुआत में आईपी पतों की जांच कर लें ( Request / ProxyEndpoint / PreFlow), कार्रवाई से पहले पुष्टि करने या कोटा की जांच के लिए.
सैंपल
नीचे दिए गए IPv4 सैंपल में मास्क की वैल्यू, चार ऑक्टेट (8, 16, 24, 32) में से पहचान करती हैं
बिट) का इस्तेमाल करते समय, मैच नियम के तहत ऐक्सेस की अनुमति दी जाती है या उसे अस्वीकार किया जाता है. डिफ़ॉल्ट वैल्यू 32 है. ज़्यादा जानकारी के लिए,
ज़्यादा जानकारी के लिए, एलिमेंट रेफ़रंस में mask
एट्रिब्यूट
जानकारी.
198.51.100.1 को अस्वीकार किया गया
<AccessControl name="ACL"> <IPRules noRuleMatchAction = "ALLOW"> <MatchRule action = "DENY"> <SourceAddress mask="32">198.51.100.1</SourceAddress> </MatchRule> </IPRules> </AccessControl>
क्लाइंट पते से मिले सभी अनुरोधों को अस्वीकार करें: 198.51.100.1
किसी भी अन्य क्लाइंट पते से अनुरोधों की अनुमति दें.
वैरिएबल का इस्तेमाल करने से मना करें
<AccessControl name="ACL"> <IPRules noRuleMatchAction = "ALLOW"> <MatchRule action = "DENY"> <SourceAddress mask="{kvm.mask.value}">{kvm.ip.value}</SourceAddress> </MatchRule> </IPRules> </AccessControl>
मान लीजिए कि मास्किंग और आईपी पते की वैल्यू सेव करने के लिए, की-वैल्यू मैप (केवीएम) का इस्तेमाल किया जा रहा है.
यह अपडेट किए बिना, रनटाइम के दौरान आईपी बदलने और मास्क करने का एक आसान तरीका है
और अपने एपीआई प्रॉक्सी को फिर से डिप्लॉय करें. फिर से पाने के लिए आप KeyValueMapOperations नीति का इस्तेमाल कर सकते हैं
वे वैरिएबल जिनमें kvm.mask.value
और
kvm.ip.value
(यह मानते हुए कि आपने केवीएम नीति में वैरिएबल को यही नाम दिया है
जिनमें आपके केवीएम के मास्क और आईपी वैल्यू की वैल्यू शामिल हों).
अगर आपने मास्क और 198.51.100.1
के लिए जो वैल्यू वापस हासिल की, वे 24
थीं
तो AccessControl नीति के तहत, 198.51.100 से मिलने वाले सभी अनुरोधों को अस्वीकार कर दिया जाएगा.*
अन्य सभी क्लाइंट पतों की अनुमति दी जाएगी.
198.51.100 को अस्वीकार किया गया.*
<AccessControl name="ACL"> <IPRules noRuleMatchAction = "ALLOW"> <MatchRule action = "DENY"> <SourceAddress mask="24">198.51.100.1</SourceAddress> </MatchRule> </IPRules> </AccessControl>
क्लाइंट पते से मिले सभी अनुरोधों को अस्वीकार करें: 198.51.100.*
किसी भी अन्य क्लाइंट पते से अनुरोधों की अनुमति दें.
198.51.*.*
<AccessControl name="ACL"> <IPRules noRuleMatchAction = "ALLOW"> <MatchRule action = "DENY"> <SourceAddress mask="16">198.51.100.1</SourceAddress> </MatchRule> </IPRules> </AccessControl>
क्लाइंट पते से मिले सभी अनुरोधों को अस्वीकार करें: 198.51.*.*
किसी भी अन्य क्लाइंट पते से अनुरोधों की अनुमति दें.
198.51.100.* को अस्वीकार करें, 192.0.2.1 को अनुमति दें
<AccessControl name="ACL"> <IPRules noRuleMatchAction = "ALLOW"> <MatchRule action = "ALLOW"> <SourceAddress mask="32">192.0.2.1</SourceAddress> </MatchRule> <MatchRule action = "DENY"> <SourceAddress mask="24">198.51.100.1</SourceAddress> </MatchRule> </IPRules> </AccessControl>
क्लाइंट पते से मिलने वाले सभी अनुरोधों को अस्वीकार करें: 198.51.100.*, लेकिन 192.0.2.1 की अनुमति दें.
किसी भी अन्य क्लाइंट पते से अनुरोधों की अनुमति दें.
198.51.*.* को अनुमति दें
<AccessControl name="ACL"> <IPRules noRuleMatchAction = "DENY"> <MatchRule action = "ALLOW"> <SourceAddress mask="16">198.51.100.1</SourceAddress> </MatchRule> </IPRules> </AccessControl>
इस पते से किए गए सभी अनुरोधों की अनुमति दें: 198.51.*.*
किसी अन्य क्लाइंट पते से आने वाले अनुरोधों को अस्वीकार करें.
एक से ज़्यादा आईपी इस्तेमाल करने की अनुमति दें
<AccessControl name="ACL"> <IPRules noRuleMatchAction = "DENY"> <MatchRule action = "ALLOW"> <SourceAddress mask="24">198.51.100.1</SourceAddress> <SourceAddress mask="24">192.0.2.1</SourceAddress> <SourceAddress mask="24">203.0.113.1</SourceAddress> </MatchRule> </IPRules> </AccessControl>
क्लाइंट पतों से अनुरोधों की अनुमति दें: 198.51.100.* 2.192.* 203.0.113.*
दूसरे सभी पतों को अस्वीकार करें.
एक से ज़्यादा आईपी को अस्वीकार करें
<AccessControl name="ACL"> <IPRules noRuleMatchAction = "ALLOW"> <MatchRule action = "DENY"> <SourceAddress mask="24">198.51.100.1</SourceAddress> <SourceAddress mask="24">192.0.2.1</SourceAddress> <SourceAddress mask="24">203.0.113.1</SourceAddress> </MatchRule> </IPRules> </AccessControl>
क्लाइंट पतों से मिले अनुरोधों को अस्वीकार करें: 198.51.100.* 2.192.* 203.0.113.*
अन्य सभी पतों को अनुमति दें.
एक से ज़्यादा आईपी को अनुमति दें, एक से ज़्यादा आईपी को अस्वीकार करें
<AccessControl name="ACL"> <IPRules noRuleMatchAction = "DENY"> <MatchRule action = "DENY"> <SourceAddress mask="24">198.51.100.1</SourceAddress> <SourceAddress mask="24">192.0.2.1</SourceAddress> <SourceAddress mask="24">203.0.113.1</SourceAddress> </MatchRule> <MatchRule action = "ALLOW"> <SourceAddress mask="16">198.51.100.1</SourceAddress> <SourceAddress mask="16">192.0.2.1</SourceAddress> <SourceAddress mask="16">203.0.113.1</SourceAddress> </MatchRule> </IPRules> </AccessControl>
अनुमति दें: 198.51.*.* 192.0.*.* 203.0.*.*
अनुमति वाली सूची के किसी सबसेट को अस्वीकार करें: 198.51.100.* 2.192.* 203.0.113.*
इस्तेमाल की जानकारी
आपके एपीआई को नुकसान पहुंचाने वाले आईपी से सुरक्षित रखने के अलावा, ऐक्सेस कंट्रोल से जुड़ी नीति आपको वैध आईपी ऐक्सेस पर कंट्रोल देता है. उदाहरण के लिए, यदि आपको केवल का नियंत्रण आपके परीक्षण वातावरण में प्रदर्शित API को ऐक्सेस करने के लिए है, तो आप आपके अंदरूनी नेटवर्क के आईपी पते की सीमा. घर से काम करने वाले डेवलपर ये काम कर सकते हैं वीपीएन का इस्तेमाल करके इन एपीआई को ऐक्सेस करें.
ऐक्सेस कंट्रोल की नीति को कॉन्फ़िगर करने और उसे लागू करने में ये चीज़ें शामिल हैं:
- मिलते-जुलते वीडियो से जुड़े नियमों का एक ऐसा सेट तय करें जिसमें दोनों में से कोई एक कार्रवाई (अनुमति दें या अस्वीकार करें) शामिल हो हर एक के साथ.
- हर मिलते-जुलते नियम के लिए, आईपी पता (SourceAddress एलिमेंट) डालें.
- देखें कि नीति कैसे तय करती है कि किस आईपी पते का आकलन करना है का इस्तेमाल करें.
- हर आईपी पते के लिए मास्क कॉन्फ़िगर करें. इस ब्राउज़र पर मास्क की वैल्यू के आधार पर, ऐक्सेस देने या न देने का विकल्प चुना जा सकता है आईपी पता. सीआईडीआर नोटेशन की मदद से आईपी पते की पहचान छिपाने के बारे में जानकारी देखें.
- वह क्रम बताएं जिसमें नियमों की जांच की जाती है.
- मैच करने वाले सभी नियम दिए गए क्रम में लागू किए जाते हैं. जब कोई नियम मेल खाता है, तो
संबंधित कार्रवाई को लागू किया जाता है और नीचे दिए गए मिलान के नियमों को छोड़ दिया जाता है.
- अगर एक ही नियम को 'अनुमति दें' और 'अनुमति नहीं दें', दोनों कार्रवाइयों के साथ कॉन्फ़िगर किया गया है, तो वह नियम जो क्रम में पहले तय किया जाता है और बाद वाला नियम (दूसरी कार्रवाई के साथ) ट्रिगर होता है छोड़ा गया.
नीति यह कैसे तय करती है कि किस आईपी पते का आकलन करना है
आईपी पते, अनुरोध में शामिल अलग-अलग सोर्स से आ सकते हैं. उदाहरण के लिए,
True-Client-IP
मैसेज के हेडर में आईपी पता हो सकता है और
X-Forwarded-For
हेडर में एक या एक से ज़्यादा आईपी पते हो सकते हैं. इस सेक्शन पर
में बताया गया है कि आपके सटीक आईपी पते(पतों) का आकलन करने के लिए, AccessControl की नीति को कैसे कॉन्फ़िगर किया जाए
क्या आपको इसकी समीक्षा करनी है.
AccessControl नीति यह तय करने के लिए नीचे दिया गया तर्क इस्तेमाल करती है कि किस आईपी पते को मूल्यांकन करें:
1. True-Client-IP हेडर
यह नीति सबसे पहले, True-Client-IP
हेडर में आईपी पते की जांच करती है. अगर आपने
हेडर में एक मान्य आईपी पता होता है. इसलिए, नीति उस पते की जांच करती है.
2. X-फ़ॉरवर्ड किया गया-हेडर के लिए
अगर कोई True-Client-IP
हेडर नहीं है या अगर आपने
इसके लिए <IgnoreTrueClientIPHeader> एलिमेंट
सही है, तो यह नीति X-Forwarded-For
हेडर में मौजूद आईपी पतों की जांच करती है.
एज, X-Forwarded-For
हेडर का डेटा अपने-आप जनरेट करता है
वह आईपी पता जिसे पिछले एक्सटर्नल टीसीपी हैंडशेक से मिला था (जैसे कि क्लाइंट आईपी या
राऊटर). अगर हेडर में एक से ज़्यादा आईपी पते हैं, तो
वे सर्वर की चेन हो सकती हैं जो किसी अनुरोध को प्रोसेस करते हैं. हालांकि, पतों की सूची
झूठे नाम से मेल भेजने वाला आईपी पता भी शामिल हो सकता है. नीति को यह कैसे पता चलता है कि किन पतों पर
मूल्यांकन करें?
आपके संगठन के कॉन्फ़िगरेशन और नीति के कॉन्फ़िगरेशन से यह तय होता है कि
X-Forwarded-For
पते(पतों) की जांच होनी चाहिए.
सबसे पहले, यह देखें कि feature.enableMultipleXForwardCheckForACL
प्रॉपर्टी
आपके संगठन पर सेट हो. Google आपके यूआरएल पैरामीटर को कैसे इस्तेमाल करेगा, यह तय करने के लिए
जांच के लिए, संगठन एपीआई पाएं. इसके बाद:
- अगर आपको अपने
feature.enableMultipleXForwardCheckForACL
का मतलब है कि प्रॉपर्टी false पर सेट है. (डिफ़ॉल्ट). जब इस प्रॉपर्टी को 'गलत' पर सेट किया जाता है, तो नीति, पिछला पता ( ट्रेस टूल), जो आईपी पता है पिछले बाहरी टीसीपी हैंडशेक से Edge मिला है. - अगर आपके संगठन में
feature.enableMultipleXForwardCheckForACL
को 'सही है' पर सेट किया गया है, तो <ValidateBasedOn> को कॉन्फ़िगर करें एलिमेंट का इस्तेमाल करें. इससे यह तय किया जा सकेगा कि नीति किस आईपी पते का आकलन करती है.
feature.enableMultipleXForwardCheckForACL
प्रॉपर्टी में बदलाव करना
Edge संगठन के एडमिन,
एपीआई को सेट करने के लिए, संगठन की प्रॉपर्टी को अपडेट करें
feature.enableMultipleXForwardCheckForACL
प्रॉपर्टी.
नीचे दिए गए एपीआई का उदाहरण, प्राइवेट क्लाउड के लिए Edge में प्रॉपर्टी सेट करता है. अगर आपके संगठन में अन्य प्रॉपर्टी सेट हैं, तो उन्हें भी शामिल करें. ऐसा न करने पर, इन्हें हटा दिया जाएगा.
curl -u email:password -X POST -H "Content-type:application/xml" http://host:8080/v1/o/myorg -d \ "<Organization type="trial" name="MyOrganization"> <DisplayName>MyOrganization</DisplayName> <Properties> <Property name="feature.enableMultipleXForwardCheckForACL">true</Property> <!-- Include other existing properties as well. --> </Properties> </Organization>"
Edge में Private Cloud के लिए,
feature.enableMultipleXForwardCheckForACL
प्रॉपर्टी,
आपको अपने मैसेज प्रोसेसर को रीस्टार्ट करना होगा, जैसा कि
अलग-अलग कॉम्पोनेंट को चालू/बंद/फिर से चालू करना.
Apigee Analytics में डाइमेंशन के लिए X-फ़ॉरवर्ड की सुविधा
Edge Analytics, X-Forwarded-For
हेडर की वैल्यू को
x_forwarded_for_ip
डाइमेंशन. उस क्लाइंट का आईपी पता लगाने के लिए जिससे
Edge के लिए अनुरोध करते हैं, तो ax_true_client_ip
में मानों का उपयोग करें या
ax_resolved_client_ip
डाइमेंशन. यहां जाएं:
Analytics मेट्रिक, डाइमेंशन,
और फ़िल्टर संदर्भ देखें.
सीआईडीआर नोटेशन की मदद से आईपी पते को मास्क करने के बारे में जानकारी
सीआईडीआर नोटेशन (क्लासलेस इंटर-डोमेन रूटिंग) की मदद से, आईपी पतों की रेंज के बारे में बताया जा सकता है का इस्तेमाल किया जाता है. यह आईपीवी4 और आईपीवी6, दोनों पर लागू होता है. यह इस तरह से काम करता है. हम आईपीवी4 का इस्तेमाल अपने इस्तेमाल में आसान बनाने के उदाहरण.
आईपी पते, संख्याओं के ग्रुप होते हैं और इन्हें फ़ुल स्टॉप से अलग किया जाता है. बाइनरी शब्दों में, हर ग्रुप बिट की तय संख्या (IPv4 के लिए 8 और आईपीवी6 के लिए 16). आईपीवी4 पता 198.51.100.1 ऐसा दिखता है इसे बाइनरी में:
11000110.00110011.01100100.00000001
इसका मतलब है कि 8 बिट के चार ग्रुप या 32 कुल बिट हैं. सीआईडीआर की मदद से, किसी रेंज को जोड़कर, /number (1-32) को IP पते में बदल देंगे, जैसे कि:
198.51.100.1/24
इस मामले में, 24 वह संख्या है जिसे आपको mask
एट्रिब्यूट के लिए इस्तेमाल करना है
वैल्यू दी गई है.
इस नोटेशन का मतलब है कि "पहले 24 बिट को बिलकुल वैसा ही रहने दें, बाकी बिट वैल्यू 0 से लेकर 255 तक." उदाहरण के लिए:
इन्हें पहले जैसा ही रखें | आखिरी ग्रुप के लिए संभावित वैल्यू |
---|---|
198.51.100. | 0 से 255 |
ध्यान दें कि मास्क, ग्रुप तीन के आखिर में होता है. इससे चीज़ें अच्छी और साफ़-सुथरी रहती हैं इस तरह का मास्क बनाना: 198.51.100.*. ज़्यादातर मामलों में, 8 (IPv4) और 16 के मल्टीपल का इस्तेमाल करके (IPv6) आपको अपना मनचाहा मास्किंग लेवल देगा:
IPv4: 8, 16, 24, 32
IPv6: 16, 32, 48, 64, 80, 96, 112, 128
हालांकि, ज़्यादा बारीकी से कंट्रोल करने के लिए, अन्य नंबरों का इस्तेमाल किया जा सकता है. इसमें थोड़ी-बहुत बाइनरी शामिल होती है गणना. यहां एक उदाहरण दिया गया है, जिसमें 30 वाले मास्क का इस्तेमाल किया गया है. जैसे, 198.51.100.1/30 में, जहां आखिरी बार 1 बाइनरी में 00000001 है:
इन्हें पहले जैसा ही रखें | संभावित वैल्यू |
---|---|
11000110.00110011.01100100.000000 (पहले 30 बिट) | 00000000, 00000001, 00000010 या 00000011 |
198.51.100. | 0, 1, 2 या 3 |
इस उदाहरण में, कॉन्फ़िगरेशन <SourceAddress
mask="30">198.51.100.1</SourceAddress>
पर सेट होने पर, इन आईपी को अनुमति दी जाएगी (या
अस्वीकार किया गया है, आपके नियमों के आधार पर):
- 198.51.100.0
- 198.51.100.1
- 198.51.100.2
- 198.51.100.3
एलिमेंट का रेफ़रंस
एलिमेंट का रेफ़रंस, ऐक्सेस कंट्रोल की नीति के एलिमेंट और एट्रिब्यूट के बारे में बताता है.
<?xml version="1.0" encoding="UTF-8" standalone="yes"?> <AccessControl async="false" continueOnError="false" enabled="true" name="Access-Control-1"> <DisplayName>Access Control 1</DisplayName> <IPRules noRuleMatchAction = "ALLOW"> <MatchRule action = "ALLOW"> <SourceAddress mask="32">198.51.100.1</SourceAddress> </MatchRule> <MatchRule action = "DENY"> <SourceAddress mask="24">198.51.100.1</SourceAddress> </MatchRule> </IPRules> <ValidateBasedOn>X_FORWARDED_FOR_ALL_IP</ValidateBasedOn> </AccessControl>
<AccessControl> एट्रिब्यूट
<AccessControl async="false" continueOnError="false" enabled="true" name="Access-Control-1">
यहां दी गई टेबल में, ऐसे एट्रिब्यूट के बारे में बताया गया है जो नीति के सभी पैरंट एलिमेंट में एक जैसे होते हैं:
एट्रिब्यूट | ब्यौरा | डिफ़ॉल्ट | मौजूदगी |
---|---|---|---|
name |
नीति का अंदरूनी नाम. इसके अलावा, नीति को लेबल करने के लिए, |
लागू नहीं | ज़रूरी है |
continueOnError |
किसी नीति के काम न करने पर, गड़बड़ी दिखाने के लिए नीति के लागू होने के बाद भी फ़्लो को एक्ज़ीक्यूट करने के लिए, इसे |
गलत | वैकल्पिक |
enabled |
नीति को लागू करने के लिए, नीति को बंद करने के लिए, |
सही | वैकल्पिक |
async |
यह एट्रिब्यूट अब काम नहीं करता. |
गलत | बहिष्कृत |
<DisplayName> एलिमेंट
इस कॉलम में नीति को लेबल करने के लिए, name
एट्रिब्यूट के साथ-साथ इस्तेमाल करें
मैनेजमेंट यूज़र इंटरफ़ेस (यूआई) प्रॉक्सी एडिटर, जिसका नाम अलग और सामान्य भाषा में है.
<DisplayName>Policy Display Name</DisplayName>
डिफ़ॉल्ट |
लागू नहीं अगर आप इस एलिमेंट को छोड़ देते हैं, तो नीति की |
---|---|
मौजूदगी | वैकल्पिक |
टाइप | स्ट्रिंग |
<IgnoreTrueClientIPHeader> एलिमेंट
इसे 'सही है' पर सेट करने पर, नीति True-Client-IP
हेडर को अनदेखा कर देती है
और X-Forwarded-For
हेडर में आईपी पतों का आकलन करता है. इसके लिए,
आपने X-फ़ॉरवर्ड किया गया- इवैलुएशन व्यवहार के लिए कॉन्फ़िगर किया है.
<AccessControl async="false" continueOnError="false" enabled="true" name="Access-Control-1"> <DisplayName>Access Control-1</DisplayName> <IgnoreTrueClientIPHeader>true</IgnoreTrueClientIPHeader> ... </AccessControl>
डिफ़ॉल्ट | गलत |
---|---|
मौजूदगी | वैकल्पिक |
टाइप | बूलियन |
<IPRules> एलिमेंट
वह पैरंट एलिमेंट जिसमें आईपी पतों को अनुमति देने या अस्वीकार करने वाले नियम मौजूद हैं. कॉन्टेंट बनाने
noRuleMatchAction
एट्रिब्यूट की मदद से, ऐसे आईपी पतों को मैनेज करने का तरीका बताया जा सकता है
मिलान करने के आपके नियमों में शामिल नहीं हैं.
<IPRules noRuleMatchAction = "ALLOW">
डिफ़ॉल्ट | लागू नहीं |
---|---|
मौजूदगी | वैकल्पिक |
टाइप | लागू नहीं |
विशेषताएं
एट्रिब्यूट | ब्यौरा | टाइप | डिफ़ॉल्ट | मौजूदगी |
---|---|---|---|---|
noRuleMatchAction |
मिलते-जुलते वीडियो से जुड़े नियम का समाधान नहीं होने पर, की जाने वाली कार्रवाई (ऐक्सेस की अनुमति दें या अनुमति न दें)
(बेमेल).
मान्य वैल्यू: ALLOW या DENY
|
स्ट्रिंग | अनुमति दें | ज़रूरी है |
<IPRules>/<MatchRule> एलिमेंट
अगर आईपी पता आपके सोर्स पते से मेल खाता है, तो की जाने वाली कार्रवाई (ऐक्सेस देने या न देने) परिभाषित नहीं कर सकते.
<IPRules noRuleMatchAction = "ALLOW"> <MatchRule action = "ALLOW"> <SourceAddress mask="32">198.51.100.1</SourceAddress> </MatchRule> <MatchRule action = "DENY"> <SourceAddress mask="24">198.51.100.1</SourceAddress> </MatchRule> </IPRules>
डिफ़ॉल्ट | लागू नहीं |
---|---|
मौजूदगी | वैकल्पिक |
टाइप | लागू नहीं |
विशेषताएं
एट्रिब्यूट | ब्यौरा | टाइप | डिफ़ॉल्ट | मौजूदगी |
---|---|---|---|---|
ऐक्शन गेम |
मिलते-जुलते वीडियो से जुड़े नियम का समाधान नहीं होने पर, की जाने वाली कार्रवाई (ऐक्सेस की अनुमति दें या अनुमति न दें) (बेमेल). मान्य वैल्यू: ALLOW या DENY |
स्ट्रिंग | अनुमति दें | ज़रूरी है |
<IPRules>/<MatchRule>/<SourceAddress> एलिमेंट
किसी क्लाइंट के आईपी पते की रेंज.
मान्य वैल्यू: मान्य आईपी पता (बिंदुओं वाला दशमलव नोटेशन). वाइल्डकार्ड व्यवहार के लिए,
mask
एट्रिब्यूट की वैल्यू सबमिट करें.
<IPRules noRuleMatchAction = "ALLOW"> <MatchRule action = "ALLOW"> <SourceAddress mask="{variable}">198.51.100.1</SourceAddress> </MatchRule> <MatchRule action = "DENY"> <SourceAddress mask="24">{variable}</SourceAddress> </MatchRule> </IPRules>
जैसा कि पिछले उदाहरण में दिखाया गया है, SourceAddress
एलिमेंट भी
इसके लिए मैसेज टेंप्लेट
mask
एट्रिब्यूट या आईपी पता होता है, जो
का मतलब है कि आप उन वैरिएबल का इस्तेमाल करके वैल्यू सेट कर सकते हैं जो फ़िलहाल
एपीआई प्रॉक्सी फ़्लो.
उदाहरण के लिए, किसी आईपी पते को की-वैल्यू मैप (केवीएम) में स्टोर किया जा सकता है और
KeyValueMapOperations नीति आईपी पते को फिर से हासिल करने और उसे किसी वैरिएबल (जैसे
kvm.ip.value
). इसके बाद, उस वैरिएबल का इस्तेमाल आईपी पते के लिए किया जा सकता है:
<SourceAddress mask="24">{kvm.ip.value}</SourceAddress>
वैरिएबल के साथ मास्क और/या आईपी पता सेट करने पर, आपको यहां दी गई वैल्यू बदलने की सुविधा मिलती है आपके एपीआई प्रॉक्सी को बदलने और फिर से डिप्लॉय करने की ज़रूरत नहीं.
डिफ़ॉल्ट | लागू नहीं |
---|---|
मौजूदगी | वैकल्पिक |
टाइप | स्ट्रिंग (सिर्फ़ एक आईपी पता) |
विशेषताएं
एट्रिब्यूट | ब्यौरा | टाइप | डिफ़ॉल्ट | मौजूदगी |
---|---|---|---|---|
मास्क |
नीचे दिए गए सीआईडीआर नोटेशन के बराबर है: 198.51.100.1/24 मान्य मान: IPv4: 1-32 आईपीवी6: 1-128 शून्य (0) की वैल्यू सिर्फ़ आईपी 0.0.0.0 के लिए मान्य होती है. इसलिए, यह लागू नहीं होती. मास्क को वैरिएबल के साथ सेट करें
|
पूर्णांक | लागू नहीं | ज़रूरी है |
<ValidateBasedOn> एलिमेंट
जब X-Forwarded-For
एचटीटीपी हेडर में एक से ज़्यादा आईपी हों
में सेव किया गया है, तो इस ValidateBasedOn
एलिमेंट का इस्तेमाल करके यह कंट्रोल करें कि कौनसे आईपी पते हैं
मूल्यांकन किया गया.
इस तरीके का इस्तेमाल करके, किसी आईपी पते का आकलन सिर्फ़ तब करें, जब आपको पता हो कि आईपी पते मान्य हैं या नहीं
जिनका आपको आकलन करना है. उदाहरण के लिए, यदि आप
X-Forwarded-For
हेडर में दिए गए आईपी पतों के आधार पर, आपको यह भरोसा करना होगा कि
वे पते मान्य होंगे और/या सिर्फ़ भरोसेमंद
आईपी आपके एपीआई प्रॉक्सी को कॉल करते हैं.
हेडर में सबसे बाईं ओर का आईपी पता क्लाइंट का होता है और दाईं ओर का आईपी पता सर्वर का होता है जिसने अनुरोध को मौजूदा सेवा को फ़ॉरवर्ड कर दिया. सबसे दायां या आखिरी आईपी पता, आखिरी बाहरी टीसीपी हैंडशेक से मिला पता Edge है.
इस एलिमेंट में डाली गई वैल्यू से, यह तय किया जा सकता है कि सभी आईपी पतों को हेडर (डिफ़ॉल्ट), सिर्फ़ पहला आईपी पता या सिर्फ़ आखिरी आईपी पता.
<AccessControl async="false" continueOnError="false" enabled="true" name="Access-Control-1"> <DisplayName>Access Control 1</DisplayName> <IPRules noRuleMatchAction = "ALLOW"> <MatchRule action = "DENY"> <SourceAddress mask="32">198.51.100.1</SourceAddress> </MatchRule> </IPRules> <ValidateBasedOn>X_FORWARDED_FOR_ALL_IP</ValidateBasedOn> </AccessControl>
डिफ़ॉल्ट | X_FORWARDED_FOR_ALL_IP |
---|---|
मौजूदगी | वैकल्पिक |
मान्य वैल्यू |
|
स्कीमा
हर तरह की नीति को एक्सएमएल स्कीमा (.xsd) से तय किया जाता है. रेफ़रंस के लिए, नीति के स्कीमा, GitHub पर उपलब्ध हैं.
गड़बड़ी का रेफ़रंस
इस सेक्शन में, गड़बड़ी के कोड और गड़बड़ी के मैसेज के बारे में बताया गया है. साथ ही, इन गड़बड़ियों के वैरिएबल के बारे में भी बताया गया है, जो Edge की मदद से सेट किए जाते हैं. यह जानकारी जानना ज़रूरी है कि क्या आप गड़बड़ियों को ठीक करता है. ज़्यादा जानने के लिए, आपके लिए ज़रूरी जानकारी देखें नीति से जुड़ी गड़बड़ियों और हैंडलिंग के बारे में जानकारी गलतियां.
रनटाइम की गड़बड़ियां
नीति के लागू होने पर ये गड़बड़ियां हो सकती हैं.
गड़बड़ी कोड | एचटीटीपी कोड स्थिति | वजह | ठीक करें |
---|---|---|---|
accesscontrol.IPDeniedAccess |
403 | क्लाइंट का आईपी पता या पास किया गया आईपी पता
एपीआई अनुरोध में, इसके अंदर <SourceAddress> एलिमेंट में बताए गए आईपी पते से मैच करता है
ऐक्सेस कंट्रोल नीति का <MatchRule> एलिमेंट औरaction
<MatchRule> एलिमेंट को DENY पर सेट किया गया है. |
build |
गड़बड़ी के वैरिएबल
रनटाइम की गड़बड़ी होने पर ये वैरिएबल सेट किए जाते हैं. ज़्यादा जानकारी के लिए, नीति से जुड़ी गड़बड़ियों के लिए खास वैरिएबल देखें.
वैरिएबल | कहां | उदाहरण |
---|---|---|
fault.name="fault_name" |
fault_name गड़बड़ी का नाम है, जैसा कि ऊपर रनटाइम में गड़बड़ियां टेबल में बताया गया है. गड़बड़ी का नाम, गड़बड़ी के कोड का आखिरी हिस्सा होता है. | fault.name Matches "IPDeniedAccess" |
acl.policy_name.failed |
policy_name, उपयोगकर्ता की ओर से बताया गया उस नीति का नाम है जिसमें गड़बड़ी हुई है. | acl.AC-AllowAccess.failed = true |
गड़बड़ी के रिस्पॉन्स का उदाहरण
{ "fault":{ "faultstring":"Access Denied for client ip : 52.211.243.3" "detail":{ "errorcode":"accesscontrol.IPDeniedAccess" } } }
गड़बड़ी के नियम का उदाहरण
<FaultRule name="IPDeniedAccess"> <Step> <Name>AM-IPDeniedAccess</Name> <Condition>(fault.name Matches "IPDeniedAccess") </Condition> </Step> <Condition>(acl.failed = true) </Condition> </FaultRule>