AccessControl नीति

आपको 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 हेडर नहीं है या अगर आपने इसके लिए &lt;IgnoreTrueClientIPHeader&gt; एलिमेंट सही है, तो यह नीति X-Forwarded-For हेडर में मौजूद आईपी पतों की जांच करती है.

एज, X-Forwarded-For हेडर का डेटा अपने-आप जनरेट करता है वह आईपी पता जिसे पिछले एक्सटर्नल टीसीपी हैंडशेक से मिला था (जैसे कि क्लाइंट आईपी या राऊटर). अगर हेडर में एक से ज़्यादा आईपी पते हैं, तो वे सर्वर की चेन हो सकती हैं जो किसी अनुरोध को प्रोसेस करते हैं. हालांकि, पतों की सूची झूठे नाम से मेल भेजने वाला आईपी पता भी शामिल हो सकता है. नीति को यह कैसे पता चलता है कि किन पतों पर मूल्यांकन करें?

आपके संगठन के कॉन्फ़िगरेशन और नीति के कॉन्फ़िगरेशन से यह तय होता है कि X-Forwarded-For पते(पतों) की जांच होनी चाहिए.

सबसे पहले, यह देखें कि feature.enableMultipleXForwardCheckForACL प्रॉपर्टी आपके संगठन पर सेट हो. Google आपके यूआरएल पैरामीटर को कैसे इस्तेमाल करेगा, यह तय करने के लिए जांच के लिए, संगठन एपीआई पाएं. इसके बाद:

  • अगर आपको अपनेfeature.enableMultipleXForwardCheckForACL का मतलब है कि प्रॉपर्टी false पर सेट है. (डिफ़ॉल्ट). जब इस प्रॉपर्टी को 'गलत' पर सेट किया जाता है, तो नीति, पिछला पता ( ट्रेस टूल), जो आईपी पता है पिछले बाहरी टीसीपी हैंडशेक से Edge मिला है.
  • अगर आपके संगठन में feature.enableMultipleXForwardCheckForACL को 'सही है' पर सेट किया गया है, तो &lt;ValidateBasedOn&gt; को कॉन्फ़िगर करें एलिमेंट का इस्तेमाल करें. इससे यह तय किया जा सकेगा कि नीति किस आईपी पते का आकलन करती है.

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>

&lt;AccessControl&gt; एट्रिब्यूट

<AccessControl async="false" continueOnError="false" enabled="true" name="Access-Control-1"> 

यहां दी गई टेबल में, ऐसे एट्रिब्यूट के बारे में बताया गया है जो नीति के सभी पैरंट एलिमेंट में एक जैसे होते हैं:

एट्रिब्यूट ब्यौरा डिफ़ॉल्ट मौजूदगी
name

नीति का अंदरूनी नाम. name एट्रिब्यूट की वैल्यू ये काम कर सकती है: अक्षरों, संख्याओं, स्पेस, हाइफ़न, अंडरस्कोर, और फ़ुलस्टॉप को शामिल करें. यह मान नहीं हो सकता 255 वर्णों से ज़्यादा होने चाहिए.

इसके अलावा, नीति को लेबल करने के लिए, <DisplayName> एलिमेंट का इस्तेमाल करें प्रबंधन यूज़र इंटरफ़ेस (यूआई) प्रॉक्सी एडिटर को अलग, आम भाषा में इस्तेमाल करने वाले नाम के साथ किया जा सकता है.

लागू नहीं ज़रूरी है
continueOnError

किसी नीति के काम न करने पर, गड़बड़ी दिखाने के लिए false पर सेट करें. यह उम्मीद है व्यवहार की जानकारी देने वाला डेटा.

नीति के लागू होने के बाद भी फ़्लो को एक्ज़ीक्यूट करने के लिए, इसे true पर सेट करें विफल होता है.

गलत वैकल्पिक
enabled

नीति को लागू करने के लिए, true पर सेट करें.

नीति को बंद करने के लिए, false पर सेट करें. नीति लागू किया जाता है, भले ही वह किसी फ़्लो से जुड़ा रहता हो.

सही वैकल्पिक
async

यह एट्रिब्यूट अब काम नहीं करता.

गलत बहिष्कृत

&lt;DisplayName&gt; एलिमेंट

इस कॉलम में नीति को लेबल करने के लिए, name एट्रिब्यूट के साथ-साथ इस्तेमाल करें मैनेजमेंट यूज़र इंटरफ़ेस (यूआई) प्रॉक्सी एडिटर, जिसका नाम अलग और सामान्य भाषा में है.

<DisplayName>Policy Display Name</DisplayName>
डिफ़ॉल्ट

लागू नहीं

अगर आप इस एलिमेंट को छोड़ देते हैं, तो नीति की name एट्रिब्यूट की वैल्यू यह होगी इस्तेमाल किया गया.

मौजूदगी वैकल्पिक
टाइप स्ट्रिंग

&lt;IgnoreTrueClientIPHeader&gt; एलिमेंट

इसे 'सही है' पर सेट करने पर, नीति 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>
डिफ़ॉल्ट गलत
मौजूदगी वैकल्पिक
टाइप बूलियन

&lt;IPRules&gt; एलिमेंट

वह पैरंट एलिमेंट जिसमें आईपी पतों को अनुमति देने या अस्वीकार करने वाले नियम मौजूद हैं. कॉन्टेंट बनाने noRuleMatchAction एट्रिब्यूट की मदद से, ऐसे आईपी पतों को मैनेज करने का तरीका बताया जा सकता है मिलान करने के आपके नियमों में शामिल नहीं हैं.

<IPRules noRuleMatchAction = "ALLOW">
डिफ़ॉल्ट लागू नहीं
मौजूदगी वैकल्पिक
टाइप लागू नहीं

विशेषताएं

एट्रिब्यूट ब्यौरा टाइप डिफ़ॉल्ट मौजूदगी
noRuleMatchAction
मिलते-जुलते वीडियो से जुड़े नियम का समाधान नहीं होने पर, की जाने वाली कार्रवाई (ऐक्सेस की अनुमति दें या अनुमति न दें) (बेमेल).
मान्य वैल्यू: ALLOW या DENY
स्ट्रिंग अनुमति दें ज़रूरी है

&lt;IPRules&gt;/&lt;MatchRule&gt; एलिमेंट

अगर आईपी पता आपके सोर्स पते से मेल खाता है, तो की जाने वाली कार्रवाई (ऐक्सेस देने या न देने) परिभाषित नहीं कर सकते.

<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

स्ट्रिंग अनुमति दें ज़रूरी है

&lt;IPRules&gt;/&lt;MatchRule&gt;/&lt;SourceAddress&gt; एलिमेंट

किसी क्लाइंट के आईपी पते की रेंज.

मान्य वैल्यू: मान्य आईपी पता (बिंदुओं वाला दशमलव नोटेशन). वाइल्डकार्ड व्यवहार के लिए, 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>

वैरिएबल के साथ मास्क और/या आईपी पता सेट करने पर, आपको यहां दी गई वैल्यू बदलने की सुविधा मिलती है आपके एपीआई प्रॉक्सी को बदलने और फिर से डिप्लॉय करने की ज़रूरत नहीं.

डिफ़ॉल्ट लागू नहीं
मौजूदगी वैकल्पिक
टाइप स्ट्रिंग (सिर्फ़ एक आईपी पता)

विशेषताएं

एट्रिब्यूट ब्यौरा टाइप डिफ़ॉल्ट मौजूदगी
मास्क

mask एट्रिब्यूट की मदद से, आईपी पतों की रेंज के बारे में बताया जा सकता है अनुमति दें या अस्वीकार करें. मास्क एक ही तरह का है सीआईडीआर नोटेशन (क्लासलेस इंटर-डोमेन रूटिंग). उदाहरण के लिए:

<SourceAddress mask="24">198.51.100.1</SourceAddress>

नीचे दिए गए सीआईडीआर नोटेशन के बराबर है:

198.51.100.1/24

मान्य मान:

IPv4: 1-32

आईपीवी6: 1-128

शून्य (0) की वैल्यू सिर्फ़ आईपी 0.0.0.0 के लिए मान्य होती है. इसलिए, यह लागू नहीं होती.

मास्क को वैरिएबल के साथ सेट करें

mask एट्रिब्यूट भी काम करता है मैसेज टेंप्लेट, जो का मतलब है कि आप उस वैरिएबल के साथ वैल्यू सेट कर सकते हैं, जो अभी एपीआई प्रॉक्सी फ़्लो. उदाहरण के लिए, मास्क वैल्यू को केवीएम में सेव किया जा सकता है और मास्क फिर से पाने और उसे किसी वैरिएबल को असाइन करने के लिए KeyValueMapOperations नीति. वैरिएबल के साथ आईपी मास्क सेट करने के लिए, इस फ़ॉर्मैट का इस्तेमाल करें, यह मानते हुए कि वैरिएबल का नाम kvm.mask.value है:

mask="{kvm.mask.value}"

पूर्णांक लागू नहीं ज़रूरी है

&lt;ValidateBasedOn&gt; एलिमेंट

जब 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
मौजूदगी वैकल्पिक
मान्य वैल्यू

X_FORWARDED_FOR_ALL_IP (डिफ़ॉल्ट)

X_FORWARDED_FOR_FIRST_IP

X_FORWARDED_FOR_LAST_IP

स्कीमा

हर तरह की नीति को एक्सएमएल स्कीमा (.xsd) से तय किया जाता है. रेफ़रंस के लिए, नीति के स्कीमा, GitHub पर उपलब्ध हैं.

गड़बड़ी का रेफ़रंस

This section describes the fault codes and error messages that are returned and fault variables that are set by Edge when this policy triggers an error. This information is important to know if you are developing fault rules to handle faults. To learn more, see What you need to know about policy errors and Handling faults.

Runtime errors

These errors can occur when the policy executes.

Fault code HTTP status Cause Fix
accesscontrol.IPDeniedAccess 403 The client IP address, or an IP address passed in the API request, matches an IP address specified in the <SourceAddress> element within the <MatchRule> element of the Access Control Policy, and the action attribute of the <MatchRule> element is set to DENY.

Fault variables

These variables are set when a runtime error occurs. For more information, see Variables specific to policy errors.

Variables Where Example
fault.name="fault_name" fault_name is the name of the fault, as listed in the Runtime errors table above. The fault name is the last part of the fault code. fault.name Matches "IPDeniedAccess"
acl.policy_name.failed policy_name is the user-specified name of the policy that threw the fault. acl.AC-AllowAccess.failed = true

Example fault response

{
   "fault":{
     "faultstring":"Access Denied for client ip : 52.211.243.3"
      "detail":{
         "errorcode":"accesscontrol.IPDeniedAccess"
      }
   }
}

Example fault rule

<FaultRule name="IPDeniedAccess">
    <Step>
        <Name>AM-IPDeniedAccess</Name>
        <Condition>(fault.name Matches "IPDeniedAccess") </Condition>
    </Step>
    <Condition>(acl.failed = true) </Condition>
</FaultRule>