অ্যাক্সেস কন্ট্রোল নীতি

আপনি Apigee Edge ডকুমেন্টেশন দেখছেন।
Apigee X ডকুমেন্টেশনে যান
তথ্য

কি

অ্যাক্সেস কন্ট্রোল নীতি আপনাকে নির্দিষ্ট আইপি ঠিকানাগুলির দ্বারা আপনার APIগুলিতে অ্যাক্সেসের অনুমতি বা অস্বীকার করতে দেয়৷

ভিডিও: নির্দিষ্ট আইপি ঠিকানার মাধ্যমে কীভাবে আপনার API-এ অ্যাক্সেসের অনুমতি দেওয়া বা অস্বীকার করা যায় সে সম্পর্কে আরও জানতে একটি ছোট ভিডিও দেখুন।

আপনি API প্রক্সি ফ্লোতে যে কোনো জায়গায় এই নীতি সংযুক্ত করতে পারেন, আপনি সম্ভবত প্রবাহের শুরুতে আইপি ঠিকানাগুলি পরীক্ষা করতে চাইবেন ( অনুরোধ / প্রক্সিএন্ডপয়েন্ট / প্রিফ্লো), এমনকি প্রমাণীকরণ বা কোটা চেকিংয়ের আগেও৷

নমুনা

নিম্নলিখিত 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>

ধরুন আপনি মাস্কিং এবং আইপিগুলির জন্য মান সংরক্ষণ করতে একটি কী মান মানচিত্র (KVM) ব্যবহার করছেন। আপনার API প্রক্সি আপডেট এবং পুনরায় স্থাপন না করেই রানটাইম চলাকালীন আইপি পরিবর্তন এবং মাস্কিং করার জন্য এটি একটি সহজ পদ্ধতি। kvm.mask.value এবং kvm.ip.value এর মান সম্বলিত ভেরিয়েবলগুলি পুনরুদ্ধার করতে আপনি KeyValueMapOperations নীতি ব্যবহার করতে পারেন (ধরে নিচ্ছি যে আপনি আপনার KVM নীতিতে ভেরিয়েবলের নাম দিয়েছেন যাতে আপনার KVM থেকে মাস্কের মান এবং IP মান রয়েছে ) আপনি যে মানগুলি পুনরুদ্ধার করেছেন তা মাস্কের জন্য 24 এবং IP ঠিকানার জন্য 198.51.100.1 হলে, অ্যাক্সেস কন্ট্রোল নীতিটি 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.* 192.0.2.* 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.* 192.0.2.* 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.* 192.0.2.* 203.0.113.*


ব্যবহারের নোট

ক্ষতিকারক আইপিগুলির বিরুদ্ধে আপনার APIগুলিকে রক্ষা করার পাশাপাশি, অ্যাক্সেস কন্ট্রোল নীতি আপনাকে বৈধ IP অ্যাক্সেসের উপর নিয়ন্ত্রণও দেয়৷ উদাহরণ স্বরূপ, আপনি যদি চান যে শুধুমাত্র আপনার এন্টারপ্রাইজের নিয়ন্ত্রণে থাকা কম্পিউটারগুলিকে আপনার পরীক্ষার পরিবেশে উন্মুক্ত API গুলি অ্যাক্সেস করতে, আপনি আপনার অভ্যন্তরীণ নেটওয়ার্কের জন্য IP ঠিকানা পরিসরের অনুমতি দিতে পারেন৷ বাড়ি থেকে কাজ করা বিকাশকারীরা ভিপিএন ব্যবহার করে এই APIগুলি অ্যাক্সেস করতে পারেন।

একটি অ্যাক্সেস কন্ট্রোল নীতির কনফিগারেশন এবং সঞ্চালনে নিম্নলিখিতগুলি জড়িত:

  • প্রতিটির সাথে যুক্ত দুটি ক্রিয়া (অনুমতি বা অস্বীকার) এর একটি সহ ম্যাচ নিয়মের একটি সেট সংজ্ঞায়িত করুন।
  • প্রতিটি ম্যাচ নিয়মের জন্য, IP ঠিকানা (সোর্সএড্রেস উপাদান) উল্লেখ করুন।
  • নিয়মগুলি পরীক্ষা করা হয় এমন ক্রম উল্লেখ করুন।
  • ম্যাচের সমস্ত নিয়ম প্রদত্ত ক্রমে কার্যকর করা হয়। যখন একটি নিয়ম মিলে যায়, তখন সংশ্লিষ্ট ক্রিয়া সম্পাদন করা হয় এবং ম্যাচের নিয়ম অনুসরণ করা বাদ দেওয়া হয়।
    • যদি একই নিয়মটি ALLOW এবং DENY উভয় অ্যাকশনের সাথে কনফিগার করা হয়, তাহলে ক্রমটিতে প্রথমে সংজ্ঞায়িত নিয়মটি ট্রিগার করা হয় এবং পরবর্তী নিয়মটি (অন্য ক্রিয়া সহ) বাদ দেওয়া হয়।

কোন আইপি ঠিকানা মূল্যায়ন করতে নীতিটি কীভাবে বেছে নেয়

আইপি ঠিকানা একটি অনুরোধে বিভিন্ন উত্স থেকে আসতে পারে। উদাহরণস্বরূপ, True-Client-IP বার্তা শিরোনামে একটি IP ঠিকানা থাকতে পারে এবং X-Forwarded-For হেডারে এক বা একাধিক IP ঠিকানা থাকতে পারে। আপনি যে সঠিক আইপি ঠিকানা(গুলি) মূল্যায়ন করতে চান তা মূল্যায়ন করতে অ্যাক্সেস কন্ট্রোল নীতিটি কীভাবে কনফিগার করবেন তা এই বিভাগে বর্ণনা করে।

কোন আইপি ঠিকানাটি মূল্যায়ন করতে হবে তা নির্ধারণ করতে অ্যাক্সেস কন্ট্রোল নীতিটি যে যুক্তিটি ব্যবহার করে তা নিম্নরূপ:

1. ট্রু-ক্লায়েন্ট-আইপি হেডার

নীতিটি প্রথমে True-Client-IP শিরোনামে একটি IP ঠিকানা পরীক্ষা করে। হেডারে একটি বৈধ IP ঠিকানা থাকলে, নীতি সেই ঠিকানাটিকে মূল্যায়ন করে।

2. X-ফরওয়ার্ডেড-ফর হেডার

যদি কোনো True-Client-IP শিরোনাম না থাকে, অথবা আপনি যদি <IgnoreTrueClientIPHeader> উপাদানটিকে সত্যে সেট করে থাকেন, তাহলে নীতি X-Forwarded-For হেডারে IP ঠিকানা(গুলি) মূল্যায়ন করে।

শেষ বাহ্যিক TCP হ্যান্ডশেক (যেমন ক্লায়েন্ট আইপি বা রাউটার) থেকে প্রাপ্ত আইপি ঠিকানার সাথে এজ স্বয়ংক্রিয়ভাবে X-Forwarded-For শিরোনামটি তৈরি করে। যদি হেডারে একাধিক আইপি ঠিকানা থাকে, তবে সেই ঠিকানাগুলি সম্ভবত সার্ভারের চেইন যা একটি অনুরোধ প্রক্রিয়া করেছে। যাইহোক, ঠিকানার তালিকায় একটি জাল আইপি ঠিকানাও থাকতে পারে। তাহলে নীতি কীভাবে মূল্যায়ন করতে হবে তা জানবে?

আপনার প্রতিষ্ঠানের কনফিগারেশন এবং নীতি কনফিগারেশন নির্ধারণ করে যে কোন X-Forwarded-For ঠিকানা(গুলি) নীতি মূল্যায়ন করে।

প্রথমে, আপনার প্রতিষ্ঠানে feature.enableMultipleXForwardCheckForACL প্রপার্টি সেট করা আছে কিনা তা পরীক্ষা করে দেখুন। আপনি চেক করার জন্য প্রতিষ্ঠান এপিআই ব্যবহার করতে পারেন। তারপর:

  • আপনি যদি আপনার প্রতিষ্ঠানের বৈশিষ্ট্যের তালিকায় feature.enableMultipleXForwardCheckForACL দেখতে না পান, তাহলে এর অর্থ হল প্রপার্টি মিথ্যা (ডিফল্ট) হিসেবে সেট করা আছে। এই সম্পত্তিটি মিথ্যাতে সেট করার সাথে, নীতিটি হেডারের শেষ ঠিকানাটি মূল্যায়ন করে ( ট্রেস টুলে দৃশ্যমান), যা শেষ বাহ্যিক TCP হ্যান্ডশেক থেকে প্রাপ্ত IP ঠিকানা প্রান্ত।
  • যদি আপনার প্রতিষ্ঠানের feature.enableMultipleXForwardCheckForACL সত্যে সেট করা থাকে, তাহলে নীতিটি কোন আইপি ঠিকানাগুলি মূল্যায়ন করে তা নির্ধারণ করতে <ValidateBasedOn> উপাদানটি কনফিগার করুন।

feature.enableMultipleXForwardCheckForACL পরিবর্তন করা হচ্ছে. enableMultipleXForwardCheckForACL সম্পত্তি

এজ অর্গানাইজেশন অ্যাডমিনিস্ট্রেটররা feature.enableMultipleXForwardCheckForACL সেট করতে আপডেট অর্গানাইজেশন বৈশিষ্ট্য API ব্যবহার করতে পারেন।

নিম্নলিখিত API উদাহরণটি ব্যক্তিগত ক্লাউডের জন্য এজ-এ সম্পত্তি সেট করে। যদি আপনার সংস্থায় অন্যান্য বৈশিষ্ট্যগুলি সেট করা থাকে তবে সেগুলিও অন্তর্ভুক্ত করতে ভুলবেন না। অন্যথায়, তাদের সরিয়ে দেওয়া হবে

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>"

এজ ফর প্রাইভেট ক্লাউডে, feature.enableMultipleXForwardCheckForACL মান পরিবর্তন করার পরে. enableMultipleXForwardCheckForACL প্রপার্টি, আপনাকে অবশ্যই আপনার বার্তা প্রসেসরগুলি পুনরায় চালু করতে হবে, যেমন স্টার্ট/স্টপ/রিস্টার্ট পৃথক উপাদানগুলিতে বর্ণিত হয়েছে।

এক্স-ফরওয়ার্ডেড-অ্যাপিজি বিশ্লেষণে মাত্রার জন্য

এজ অ্যানালিটিক্স X-Forwarded-For হেডারের মান x_forwarded_for_ip ডাইমেনশনে লেখে। যে ক্লায়েন্ট আইপিটি এজকে অনুরোধ করেছে তা নির্ধারণ করতে, ax_true_client_ip বা ax_resolved_client_ip মাত্রার মানগুলি ব্যবহার করুন। আরও জানতে অ্যানালিটিক্স মেট্রিক্স, মাত্রা এবং ফিল্টার রেফারেন্স দেখুন।

CIDR স্বরলিপি সহ আইপি মাস্কিং সম্পর্কে

CIDR স্বরলিপি (শ্রেণীবিহীন আন্তঃ-ডোমেন রাউটিং) হল মাস্কিংয়ের মাধ্যমে আইপি ঠিকানাগুলির একটি পরিসীমা নির্দেশ করার একটি উপায়। এটি IPv4 এবং IPv6 উভয় ক্ষেত্রেই প্রযোজ্য। এটি কিভাবে কাজ করে তা এখানে। আমরা সরলতার জন্য আমাদের উদাহরণগুলিতে IPv4 ব্যবহার করব।

IP অ্যাড্রেস হল পিরিয়ড দ্বারা পৃথক করা সংখ্যার গোষ্ঠী। বাইনারি পদে, প্রতিটি গ্রুপ হল একটি নির্দিষ্ট সংখ্যক বিট (IPv4 এর জন্য 8 এবং IPv6 এর জন্য 16)। IPv4 ঠিকানা 198.51.100.1 বাইনারিতে এইরকম দেখায়:

11000110.00110011.01100100.00000001

যে 8 বিট 4 গ্রুপ, বা 32 মোট বিট. CIDR-এর মাধ্যমে, আপনি IP ঠিকানায় একটি /number (1-32) যোগ করে একটি পরিসর নির্দেশ করতে পারেন, যেমন:

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

যাইহোক, আপনি সূক্ষ্ম-দানাযুক্ত নিয়ন্ত্রণের জন্য অন্যান্য সংখ্যাগুলি ব্যবহার করতে পারেন, যার মধ্যে সামান্য বাইনারি গণনা জড়িত। এখানে 198.51.100.1/30 এর মতো 30 এর একটি মাস্ক ব্যবহার করে একটি উদাহরণ দেওয়া হল, যেখানে শেষ 1টি বাইনারিতে 00000001 হল:

এগুলো ঠিক যেমন আছে তেমনি রাখুন সম্ভাব্য মান
11000110.00110011.01100100.000000 (প্রথম 30 বিট) 000000 00 , 000000 01 , 000000 10 , বা 000000 11
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

নীতির অভ্যন্তরীণ নাম। name বৈশিষ্ট্যের মানটিতে অক্ষর, সংখ্যা, স্পেস, হাইফেন, আন্ডারস্কোর এবং পিরিয়ড থাকতে পারে। এই মান 255 অক্ষরের বেশি হতে পারে না।

ঐচ্ছিকভাবে, ম্যানেজমেন্ট UI প্রক্সি এডিটরে নীতিটিকে একটি ভিন্ন, প্রাকৃতিক-ভাষা নামের সাথে লেবেল করতে <DisplayName> উপাদানটি ব্যবহার করুন।

N/A প্রয়োজন
continueOnError

একটি নীতি ব্যর্থ হলে একটি ত্রুটি ফেরত দিতে false সেট করুন৷ এটি বেশিরভাগ নীতির জন্য প্রত্যাশিত আচরণ।

একটি নীতি ব্যর্থ হওয়ার পরেও ফ্লো এক্সিকিউশন চালিয়ে যেতে true সেট করুন৷

মিথ্যা ঐচ্ছিক
enabled

নীতি প্রয়োগ করতে true সেট করুন৷

নীতি বন্ধ করতে false সেট করুন। নীতিটি প্রবাহের সাথে সংযুক্ত থাকলেও তা কার্যকর করা হবে না।

সত্য ঐচ্ছিক
async

এই বৈশিষ্ট্যটি অবমূল্যায়ন করা হয়েছে৷

মিথ্যা অবচয়

<DisplayName> উপাদান

ম্যানেজমেন্ট UI প্রক্সি এডিটরে নীতিটিকে একটি ভিন্ন, প্রাকৃতিক-ভাষা নামের সাথে লেবেল করতে name বৈশিষ্ট্য ছাড়াও ব্যবহার করুন।

<DisplayName>Policy Display Name</DisplayName>
ডিফল্ট

N/A

আপনি এই উপাদানটি বাদ দিলে, নীতির name বৈশিষ্ট্যের মান ব্যবহার করা হবে।

উপস্থিতি ঐচ্ছিক
টাইপ স্ট্রিং

<IgnoreTrueClientIPHeader> উপাদান

আপনি যখন এটি সত্যে সেট করেন, তখন নীতিটি True-Client-IP শিরোনামকে উপেক্ষা করে এবং X-Forwarded-For শিরোলেখের IP ঠিকানাগুলিকে মূল্যায়ন করে, আপনার কনফিগার করা 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">
ডিফল্ট N/A
উপস্থিতি ঐচ্ছিক
টাইপ N/A

গুণাবলী

বৈশিষ্ট্য বর্ণনা টাইপ ডিফল্ট উপস্থিতি
noRuleMatchAction
নির্দিষ্ট ম্যাচের নিয়মের সমাধান না হলে (অনুমতিহীন) পদক্ষেপ নেওয়া (অ্যাক্সেসের অনুমতি বা অস্বীকার)
বৈধ মান: অনুমতি দিন বা অস্বীকার করুন৷
স্ট্রিং অনুমতি দিন প্রয়োজন

<IPRules>/<MatchRule> উপাদান

IP ঠিকানা আপনার সংজ্ঞায়িত SourceAddress(es) এর সাথে মিলে গেলে (অ্যাক্সেসের অনুমতি বা অস্বীকৃতি) নেওয়ার ব্যবস্থা।

<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>
ডিফল্ট N/A
উপস্থিতি ঐচ্ছিক
টাইপ N/A

গুণাবলী

বৈশিষ্ট্য বর্ণনা টাইপ ডিফল্ট উপস্থিতি
কর্ম

নির্দিষ্ট ম্যাচের নিয়মের সমাধান না হলে (অনুমতিহীন) পদক্ষেপ নেওয়া (অ্যাক্সেসের অনুমতি বা অস্বীকার)

বৈধ মান: অনুমতি দিন বা অস্বীকার করুন৷

স্ট্রিং অনুমতি দিন প্রয়োজন

<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 অ্যাট্রিবিউট বা আইপি অ্যাড্রেসের জন্য মেসেজ টেমপ্লেটগুলিকেও সমর্থন করে, যার মানে আপনি বর্তমানে API প্রক্সি ফ্লোতে উপলব্ধ ভেরিয়েবল ব্যবহার করে মান সেট করতে পারেন।

উদাহরণস্বরূপ, আপনি একটি মূল মান মানচিত্রে (KVM) একটি IP ঠিকানা সংরক্ষণ করতে পারেন এবং IP ঠিকানা পুনরুদ্ধার করতে এবং এটি একটি পরিবর্তনশীল (যেমন kvm.ip.value ) এর জন্য নির্ধারণ করতে KeyValueMapOperations নীতি ব্যবহার করতে পারেন। তারপর আপনি আইপি ঠিকানার জন্য সেই ভেরিয়েবলটি ব্যবহার করতে পারেন:

<SourceAddress mask="24"> {kvm.ip.value} </SourceAddress>

একটি ভেরিয়েবলের সাথে মাস্ক এবং/অথবা আইপি ঠিকানা সেট করা আপনাকে আপনার API প্রক্সি সংশোধন এবং পুনরায় স্থাপন না করে রানটাইমে মান পরিবর্তন করার নমনীয়তা দেয়।

ডিফল্ট N/A
উপস্থিতি ঐচ্ছিক
টাইপ স্ট্রিং (শুধুমাত্র একক আইপি ঠিকানা)

গুণাবলী

বৈশিষ্ট্য বর্ণনা টাইপ ডিফল্ট উপস্থিতি
মুখোশ

mask অ্যাট্রিবিউট হল অনুমতি বা অস্বীকার করার জন্য আইপি অ্যাড্রেসের পরিসর নির্দেশ করার একটি উপায়। মুখোশ হল CIDR স্বরলিপি (ক্লাসলেস ইন্টার-ডোমেন রাউটিং) ব্যবহারের সমতুল্য। যেমন:

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

নিম্নলিখিত CIDR স্বরলিপির সমতুল্য:

198.51.100.1/24

বৈধ মান:

IPv4: 1-32

IPv6: 1-128

শূন্য (0) এর মান শুধুমাত্র IP 0.0.0.0 এর জন্য বৈধ, তাই অব্যবহারিক।

একটি ভেরিয়েবল দিয়ে মাস্ক সেট করুন

mask অ্যাট্রিবিউটটি মেসেজ টেমপ্লেটগুলিকেও সমর্থন করে, যার মানে আপনি একটি ভেরিয়েবলের সাথে মান সেট করতে পারেন যা বর্তমানে API প্রক্সি ফ্লোতে উপলব্ধ। উদাহরণস্বরূপ, আপনি একটি KVM-এ একটি মাস্ক মান সংরক্ষণ করতে পারেন এবং মুখোশটি পুনরুদ্ধার করতে এবং একটি ভেরিয়েবলে বরাদ্দ করতে KeyValueMapOperations নীতি ব্যবহার করতে পারেন। ভেরিয়েবলের সাথে আইপি মাস্ক সেট করতে, নিম্নোক্ত ফরম্যাটটি ব্যবহার করুন, ধরুন ভেরিয়েবলটির নাম kvm.mask.value :

mask="{kvm.mask.value}"

পূর্ণসংখ্যা N/A প্রয়োজন

<ValidateBasedOn> উপাদান

যখন X-Forwarded-For HTTP শিরোনামে একাধিক IP ঠিকানা থাকে, কোন IP ঠিকানাগুলি মূল্যায়ন করা হয় তা নিয়ন্ত্রণ করতে এই ValidateBasedOn উপাদানটি ব্যবহার করুন।

আপনি যে আইপি ঠিকানাগুলি মূল্যায়ন করতে চান তার বৈধতা সম্পর্কে নিশ্চিত হলেই একটি আইপি ঠিকানা মূল্যায়ন করার জন্য এই পদ্ধতিটি ব্যবহার করুন৷ উদাহরণ স্বরূপ, যদি আপনি X-Forwarded-For হেডারে সমস্ত IP ঠিকানা মূল্যায়ন করতে চান, তাহলে আপনাকে সেই ঠিকানাগুলির বৈধতার উপর আস্থা রাখতে হবে, এবং/অথবা বিস্তৃত অস্বীকার বা অনুমতি দেওয়ার নিয়মগুলি সেট আপ করতে হবে যাতে শুধুমাত্র বিশ্বস্ত IPগুলিকে আপনার API প্রক্সি।

হেডারের বামতম আইপি ঠিকানাটি ক্লায়েন্টের অন্তর্গত, এবং ডানদিকের সার্ভারটি বর্তমান পরিষেবাতে অনুরোধটি ফরোয়ার্ড করেছে। সবচেয়ে ডানদিকে, বা শেষ আইপি ঠিকানা, শেষ বাহ্যিক TCP হ্যান্ডশেক থেকে প্রাপ্ত ঠিকানা এজ।

এই উপাদানটিতে আপনি যে মানটি প্রবেশ করান তা আপনাকে নির্ধারণ করতে দেয় যে হেডারে (ডিফল্ট), শুধুমাত্র প্রথম আইপি ঠিকানা বা শুধুমাত্র শেষ আইপি ঠিকানাটি পরীক্ষা করা হবে কিনা।

<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

স্কিমাস

প্রতিটি নীতির ধরন একটি XML স্কিমা (.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>