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

আপনি Apigee Edge-এর ডকুমেন্টেশন দেখছেন।
Apigee X ডকুমেন্টেশন
.info- তে যান।

কী

অ্যাক্সেস কন্ট্রোল পলিসি আপনাকে নির্দিষ্ট আইপি অ্যাড্রেসের মাধ্যমে আপনার এপিআই-গুলিতে অ্যাক্সেস অনুমোদন বা অস্বীকার করার সুযোগ দেয়।

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

যদিও আপনি এই পলিসিটি এপিআই প্রক্সি ফ্লো-এর যেকোনো জায়গায় সংযুক্ত করতে পারেন, তবে সম্ভবত আপনি ফ্লো-এর শুরুতেই (রিকোয়েস্ট / প্রক্সিএন্ডপয়েন্ট / প্রিফ্লো) আইপি অ্যাড্রেসগুলো যাচাই করতে চাইবেন, এমনকি অথেনটিকেশন বা কোটা যাচাই করারও আগে।

নমুনা

নিম্নলিখিত IPv4 নমুনাগুলিতে মাস্ক ভ্যালুগুলি নির্দেশ করে যে, অ্যাক্সেস অনুমোদন বা প্রত্যাখ্যান করার সময় ম্যাচ রুলটি চারটি অক্টেটের (৮, ১৬, ২৪, ৩২ বিট) মধ্যে কোনটি বিবেচনা করবে। ডিফল্ট ভ্যালু হলো ৩২। আরও তথ্যের জন্য এলিমেন্ট রেফারেন্সে 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) ব্যবহার করছেন। আপনার এপিআই প্রক্সি আপডেট এবং পুনরায় স্থাপন না করেই রানটাইমে আইপি এবং মাস্কিং পরিবর্তন করার জন্য এটি একটি সুবিধাজনক পদ্ধতি। আপনি 'KeyValueMapOperations' পলিসি ব্যবহার করে kvm.mask.value এবং kvm.ip.value এর মান ধারণকারী ভ্যারিয়েবলগুলো পুনরুদ্ধার করতে পারেন (যদি ধরে নেওয়া হয় যে আপনার KVM পলিসিতে মাস্ক এবং আইপি-এর মান ধারণকারী ভ্যারিয়েবলগুলোর নাম আপনি এভাবেই রেখেছেন)। যদি আপনার পুনরুদ্ধার করা মান মাস্কের জন্য 24 এবং আইপি অ্যাড্রেসের জন্য 198.51.100.1 হয়, তাহলে '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.* থেকে আসা সমস্ত অনুরোধ প্রত্যাখ্যান করুন।

অন্য যেকোনো ক্লায়েন্ট ঠিকানা থেকে অনুরোধের অনুমতি দিন।

১৯৮.৫১.*.*

<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.*


ব্যবহারের নির্দেশাবলী

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

একটি অ্যাক্সেস কন্ট্রোল পলিসির কনফিগারেশন এবং বাস্তবায়নে নিম্নলিখিত বিষয়গুলো অন্তর্ভুক্ত থাকে:

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

নীতিমালা কীভাবে মূল্যায়ন করার জন্য আইপি অ্যাড্রেস নির্বাচন করে

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

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

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

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

২. এক্স-ফরোয়ার্ডেড-ফর হেডার

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

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

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

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

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

feature.enableMultipleXForwardCheckForACL প্রপার্টি পরিবর্তন করা

Edge Organization Administrators, Update organization properties API ব্যবহার করে feature.enableMultipleXForwardCheckForACL প্রপার্টিটি সেট করতে পারেন।

নিম্নলিখিত API উদাহরণটি Edge for Private Cloud-এ প্রপার্টিটি সেট করে। যদি আপনার অর্গানাইজেশনে অন্য কোনো প্রপার্টি সেট করা থাকে, তাহলে সেগুলোও অন্তর্ভুক্ত করতে ভুলবেন না। অন্যথায়, সেগুলি মুছে ফেলা হবে

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 for Private Cloud-এ, feature.enableMultipleXForwardCheckForACL প্রপার্টির মান পরিবর্তন করার পর, আপনাকে অবশ্যই আপনার মেসেজ প্রসেসরগুলো রিস্টার্ট করতে হবে, যেমনটি "Start/stop/restart individual components" অংশে বর্ণনা করা হয়েছে।

Apigee অ্যানালিটিক্সে X-Forwarded-For ডাইমেনশন

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

CIDR নোটেশন ব্যবহার করে আইপি মাস্কিং সম্পর্কে

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

আইপি অ্যাড্রেস হলো ডট (.) দিয়ে আলাদা করা সংখ্যার সমষ্টি। বাইনারিতে, প্রতিটি সমষ্টি একটি নির্দিষ্ট সংখ্যক বিটের (IPv4-এর জন্য ৮ এবং IPv6-এর জন্য ১৬) হয়ে থাকে। IPv4 অ্যাড্রেস 198.51.100.1 বাইনারিতে দেখতে এইরকম:

11000110.00110011.01100100.00000001

এটি ৮ বিটের ৪টি গ্রুপ, বা মোট ৩২ বিট। CIDR-এর মাধ্যমে, আপনি IP অ্যাড্রেসের সাথে একটি সংখ্যা (১-৩২) যোগ করে একটি রেঞ্জ নির্দেশ করতে পারেন, যেমন:

198.51.100.1/24

এক্ষেত্রে, এই পলিসিতে mask অ্যাট্রিবিউট ভ্যালু হিসেবে আপনি ২৪ সংখ্যাটি ব্যবহার করবেন।

এই সংকেত পদ্ধতির অর্থ হলো, "প্রথম ২৪টি বিট হুবহু অপরিবর্তিত রাখুন, বাকি বিটগুলো ০ থেকে ২৫৫ পর্যন্ত যেকোনো মান হতে পারে।" উদাহরণস্বরূপ:

এগুলো ঠিক যেমন আছে তেমনই রাখুন শেষ গ্রুপের জন্য সম্ভাব্য মানগুলি
১৯৮.৫১.১০০ ০ - ২৫৫

লক্ষ্য করুন যে মাস্কটি তৃতীয় গ্রুপের শেষে করা হয়েছে। এটি বিষয়টিকে সুন্দর ও পরিপাটি করে তোলে, এবং মূলত 198.51.100.*-এর মতো একটি মাস্ক তৈরি করে। বেশিরভাগ ক্ষেত্রে, 8 (IPv4) এবং 16 (IPv6)-এর গুণিতক ব্যবহার করলে আপনি আপনার কাঙ্ক্ষিত মাস্কিং লেভেলটি পেয়ে যাবেন।

আইপিভি৪: ৮, ১৬, ২৪, ৩২

IPv6: 16, 32, 48, 64, 80, 96, 112, 128

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

এগুলো ঠিক যেমন আছে তেমনই রাখুন সম্ভাব্য মান
11000110.00110011.01100100.000000 (প্রথম ৩০ বিট) 000000 00 , 000000 01 , 000000 10 , অথবা 000000 11
১৯৮.৫১.১০০ ০, ১, ২ বা ৩

এই উদাহরণে, কনফিগারেশনটি <SourceAddress mask="30">198.51.100.1</SourceAddress> হিসেবে সেট করা থাকলে, নিম্নলিখিত আইপিগুলো অনুমোদিত হবে (অথবা আপনার নিয়ম অনুযায়ী প্রত্যাখ্যাত হবে):

  • ১৯৮.৫১.১০০.০
  • ১৯৮.৫১.১০০.১
  • ১৯৮.৫১.১০০.২
  • ১৯৮.৫১.১০০.৩

উপাদান রেফারেন্স

এলিমেন্ট রেফারেন্সটি অ্যাক্সেস কন্ট্রোল পলিসির উপাদান এবং অ্যাট্রিবিউটগুলো বর্ণনা করে।

<?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 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' সেট করেন, তখন পলিসিটি True-Client-IP হেডারটিকে উপেক্ষা করে এবং আপনার কনফিগার করা X-Forwarded-For ' মূল্যায়ন আচরণ অনুসরণ করে 'X-Forwarded-For' হেডারে থাকা আইপি অ্যাড্রেসগুলো মূল্যায়ন করে।

<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> উপাদান

আপনার সংজ্ঞায়িত করা উৎস ঠিকানার (SourceAddress) সাথে আইপি ঠিকানা মিলে গেলে যে পদক্ষেপটি নিতে হবে (অ্যাক্সেসের অনুমতি দেওয়া বা অস্বীকার করা)।

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

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

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

একটি ভেরিয়েবলের মাধ্যমে মাস্ক এবং/অথবা আইপি অ্যাড্রেস সেট করলে, আপনার এপিআই প্রক্সি পরিবর্তন ও পুনরায় ডিপ্লয় না করেই রানটাইমে মান পরিবর্তন করার সুবিধা পাওয়া যায়।

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

বৈশিষ্ট্য

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

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

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

নিম্নলিখিত CIDR নোটেশনের সমতুল্য:

১৯৮.৫১.১০০.১/২৪

বৈধ মান:

আইপিভি৪: ১-৩২

IPv6: 1-128

শূন্য (0) মান শুধুমাত্র আইপি 0.0.0.0-এর জন্য প্রযোজ্য, তাই এটি অবাস্তব।

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

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

mask="{kvm.mask.value}"

পূর্ণসংখ্যা প্রযোজ্য নয় প্রয়োজনীয়

<ValidateBasedOn> এলিমেন্ট

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

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

হেডারের সবচেয়ে বাম দিকের আইপি অ্যাড্রেসটি ক্লায়েন্টের এবং সবচেয়ে ডান দিকেরটি সেই সার্ভারের, যেটি বর্তমান সার্ভিসে অনুরোধটি পাঠিয়েছে। সবচেয়ে ডান দিকের বা শেষ আইপি অ্যাড্রেসটি হলো সেই অ্যাড্রেস, যা Edge সর্বশেষ এক্সটার্নাল 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) দ্বারা সংজ্ঞায়িত করা হয়। তথ্যের জন্য, পলিসি স্কিমাগুলো গিটহাবে পাওয়া যাবে।

ত্রুটির রেফারেন্স

এই বিভাগটি ফল্ট কোড এবং ত্রুটি বার্তাগুলি বর্ণনা করে যেগুলি ফেরত দেওয়া হয় এবং ত্রুটি ভেরিয়েবলগুলি যেগুলি এজ দ্বারা সেট করা হয় যখন এই নীতিটি একটি ত্রুটি ট্রিগার করে৷ এই তথ্যটি জানা গুরুত্বপূর্ণ যে আপনি ত্রুটিগুলি পরিচালনা করার জন্য ত্রুটির নিয়ম তৈরি করছেন কিনা। আরও জানতে, নীতিগত ত্রুটি এবং হ্যান্ডলিং ফল্ট সম্পর্কে আপনার যা জানা দরকার তা দেখুন৷

রানটাইম ত্রুটি

নীতি কার্যকর করার সময় এই ত্রুটিগুলি ঘটতে পারে৷

ফল্ট কোড HTTP স্থিতি কারণ ঠিক করুন
accesscontrol.IPDeniedAccess 403 ক্লায়েন্ট আইপি ঠিকানা, বা API অনুরোধে পাস করা একটি IP ঠিকানা, অ্যাক্সেস কন্ট্রোল নীতির <MatchRule> উপাদানের মধ্যে <SourceAddress> এলিমেন্টে উল্লেখিত একটি IP ঠিকানার সাথে মেলে এবং <MatchRule> উপাদানটির action অ্যাট্রিবিউট সেট করা আছে। DENY করতে

ফল্ট ভেরিয়েবল

রানটাইম ত্রুটি ঘটলে এই ভেরিয়েবলগুলি সেট করা হয়। আরও তথ্যের জন্য, নীতি ত্রুটির জন্য নির্দিষ্ট ভেরিয়েবল দেখুন।

ভেরিয়েবল যেখানে উদাহরণ
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>
,

আপনি Apigee Edge-এর ডকুমেন্টেশন দেখছেন।
Apigee X ডকুমেন্টেশন
.info- তে যান।

কী

অ্যাক্সেস কন্ট্রোল পলিসি আপনাকে নির্দিষ্ট আইপি অ্যাড্রেসের মাধ্যমে আপনার এপিআই-গুলিতে অ্যাক্সেস অনুমোদন বা অস্বীকার করার সুযোগ দেয়।

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

যদিও আপনি এই পলিসিটি এপিআই প্রক্সি ফ্লো-এর যেকোনো জায়গায় সংযুক্ত করতে পারেন, তবে সম্ভবত আপনি ফ্লো-এর শুরুতেই (রিকোয়েস্ট / প্রক্সিএন্ডপয়েন্ট / প্রিফ্লো) আইপি অ্যাড্রেসগুলো যাচাই করতে চাইবেন, এমনকি অথেনটিকেশন বা কোটা যাচাই করারও আগে।

নমুনা

নিম্নলিখিত IPv4 নমুনাগুলিতে মাস্ক ভ্যালুগুলি নির্দেশ করে যে, অ্যাক্সেস অনুমোদন বা প্রত্যাখ্যান করার সময় ম্যাচ রুলটি চারটি অক্টেটের (৮, ১৬, ২৪, ৩২ বিট) মধ্যে কোনটি বিবেচনা করবে। ডিফল্ট ভ্যালু হলো ৩২। আরও তথ্যের জন্য এলিমেন্ট রেফারেন্সে 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) ব্যবহার করছেন। আপনার এপিআই প্রক্সি আপডেট এবং পুনরায় স্থাপন না করেই রানটাইমে আইপি এবং মাস্কিং পরিবর্তন করার জন্য এটি একটি সুবিধাজনক পদ্ধতি। আপনি 'KeyValueMapOperations' পলিসি ব্যবহার করে kvm.mask.value এবং kvm.ip.value এর মান ধারণকারী ভ্যারিয়েবলগুলো পুনরুদ্ধার করতে পারেন (যদি ধরে নেওয়া হয় যে আপনার KVM পলিসিতে মাস্ক এবং আইপি-এর মান ধারণকারী ভ্যারিয়েবলগুলোর নাম আপনি এভাবেই রেখেছেন)। যদি আপনার পুনরুদ্ধার করা মান মাস্কের জন্য 24 এবং আইপি অ্যাড্রেসের জন্য 198.51.100.1 হয়, তাহলে '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.* থেকে আসা সমস্ত অনুরোধ প্রত্যাখ্যান করুন।

অন্য যেকোনো ক্লায়েন্ট ঠিকানা থেকে অনুরোধের অনুমতি দিন।

১৯৮.৫১.*.*

<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.*


ব্যবহারের নির্দেশাবলী

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

একটি অ্যাক্সেস কন্ট্রোল পলিসির কনফিগারেশন এবং বাস্তবায়নে নিম্নলিখিত বিষয়গুলো অন্তর্ভুক্ত থাকে:

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

নীতিমালা কীভাবে মূল্যায়ন করার জন্য আইপি অ্যাড্রেস নির্বাচন করে

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

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

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

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

২. এক্স-ফরোয়ার্ডেড-ফর হেডার

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

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

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

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

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

feature.enableMultipleXForwardCheckForACL প্রপার্টি পরিবর্তন করা

Edge Organization Administrators, Update organization properties API ব্যবহার করে feature.enableMultipleXForwardCheckForACL প্রপার্টিটি সেট করতে পারেন।

নিম্নলিখিত API উদাহরণটি Edge for Private Cloud-এ প্রপার্টিটি সেট করে। যদি আপনার অর্গানাইজেশনে অন্য কোনো প্রপার্টি সেট করা থাকে, তাহলে সেগুলোও অন্তর্ভুক্ত করতে ভুলবেন না। অন্যথায়, সেগুলি মুছে ফেলা হবে

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 for Private Cloud-এ, feature.enableMultipleXForwardCheckForACL প্রপার্টির মান পরিবর্তন করার পর, আপনাকে অবশ্যই আপনার মেসেজ প্রসেসরগুলো রিস্টার্ট করতে হবে, যেমনটি "Start/stop/restart individual components" অংশে বর্ণনা করা হয়েছে।

Apigee অ্যানালিটিক্সে X-Forwarded-For ডাইমেনশন

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

CIDR নোটেশন ব্যবহার করে আইপি মাস্কিং সম্পর্কে

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

আইপি অ্যাড্রেস হলো ডট (.) দিয়ে আলাদা করা সংখ্যার সমষ্টি। বাইনারিতে, প্রতিটি সমষ্টি একটি নির্দিষ্ট সংখ্যক বিটের (IPv4-এর জন্য ৮ এবং IPv6-এর জন্য ১৬) হয়ে থাকে। IPv4 অ্যাড্রেস 198.51.100.1 বাইনারিতে দেখতে এইরকম:

11000110.00110011.01100100.00000001

এটি ৮ বিটের ৪টি গ্রুপ, বা মোট ৩২ বিট। CIDR-এর মাধ্যমে, আপনি IP অ্যাড্রেসের সাথে একটি সংখ্যা (১-৩২) যোগ করে একটি রেঞ্জ নির্দেশ করতে পারেন, যেমন:

198.51.100.1/24

এক্ষেত্রে, এই পলিসিতে mask অ্যাট্রিবিউট ভ্যালু হিসেবে আপনি ২৪ সংখ্যাটি ব্যবহার করবেন।

এই সংকেত পদ্ধতির অর্থ হলো, "প্রথম ২৪টি বিট হুবহু অপরিবর্তিত রাখুন, বাকি বিটগুলো ০ থেকে ২৫৫ পর্যন্ত যেকোনো মান হতে পারে।" উদাহরণস্বরূপ:

এগুলো ঠিক যেমন আছে তেমনই রাখুন শেষ গ্রুপের জন্য সম্ভাব্য মানগুলি
১৯৮.৫১.১০০ ০ - ২৫৫

লক্ষ্য করুন যে মাস্কটি তৃতীয় গ্রুপের শেষে করা হয়েছে। এটি বিষয়টিকে সুন্দর ও পরিপাটি করে তোলে, এবং মূলত 198.51.100.*-এর মতো একটি মাস্ক তৈরি করে। বেশিরভাগ ক্ষেত্রে, 8 (IPv4) এবং 16 (IPv6)-এর গুণিতক ব্যবহার করলে আপনি আপনার কাঙ্ক্ষিত মাস্কিং লেভেলটি পেয়ে যাবেন।

আইপিভি৪: ৮, ১৬, ২৪, ৩২

IPv6: 16, 32, 48, 64, 80, 96, 112, 128

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

এগুলো ঠিক যেমন আছে তেমনই রাখুন সম্ভাব্য মান
11000110.00110011.01100100.000000 (প্রথম ৩০ বিট) 000000 00 , 000000 01 , 000000 10 , অথবা 000000 11
১৯৮.৫১.১০০ ০, ১, ২ বা ৩

এই উদাহরণে, কনফিগারেশনটি <SourceAddress mask="30">198.51.100.1</SourceAddress> হিসেবে সেট করা থাকলে, নিম্নলিখিত আইপিগুলো অনুমোদিত হবে (অথবা আপনার নিয়ম অনুযায়ী প্রত্যাখ্যাত হবে):

  • ১৯৮.৫১.১০০.০
  • ১৯৮.৫১.১০০.১
  • ১৯৮.৫১.১০০.২
  • ১৯৮.৫১.১০০.৩

উপাদান রেফারেন্স

এলিমেন্ট রেফারেন্সটি অ্যাক্সেস কন্ট্রোল পলিসির উপাদান এবং অ্যাট্রিবিউটগুলো বর্ণনা করে।

<?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 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' সেট করেন, তখন পলিসিটি True-Client-IP হেডারটিকে উপেক্ষা করে এবং আপনার কনফিগার করা X-Forwarded-For ' মূল্যায়ন আচরণ অনুসরণ করে 'X-Forwarded-For' হেডারে থাকা আইপি অ্যাড্রেসগুলো মূল্যায়ন করে।

<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> উপাদান

আপনার সংজ্ঞায়িত করা উৎস ঠিকানার (SourceAddress) সাথে আইপি ঠিকানা মিলে গেলে যে পদক্ষেপটি নিতে হবে (অ্যাক্সেসের অনুমতি দেওয়া বা অস্বীকার করা)।

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

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

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

একটি ভেরিয়েবলের মাধ্যমে মাস্ক এবং/অথবা আইপি অ্যাড্রেস সেট করলে, আপনার এপিআই প্রক্সি পরিবর্তন ও পুনরায় ডিপ্লয় না করেই রানটাইমে মান পরিবর্তন করার সুবিধা পাওয়া যায়।

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

বৈশিষ্ট্য

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

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

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

নিম্নলিখিত CIDR নোটেশনের সমতুল্য:

১৯৮.৫১.১০০.১/২৪

বৈধ মান:

আইপিভি৪: ১-৩২

IPv6: 1-128

শূন্য (0) মান শুধুমাত্র আইপি 0.0.0.0-এর জন্য প্রযোজ্য, তাই এটি অবাস্তব।

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

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

mask="{kvm.mask.value}"

পূর্ণসংখ্যা প্রযোজ্য নয় প্রয়োজনীয়

<ValidateBasedOn> এলিমেন্ট

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

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

হেডারের সবচেয়ে বাম দিকের আইপি অ্যাড্রেসটি ক্লায়েন্টের এবং সবচেয়ে ডান দিকেরটি সেই সার্ভারের, যেটি বর্তমান সার্ভিসে অনুরোধটি পাঠিয়েছে। সবচেয়ে ডান দিকের বা শেষ আইপি অ্যাড্রেসটি হলো সেই অ্যাড্রেস, যা Edge সর্বশেষ এক্সটার্নাল 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) দ্বারা সংজ্ঞায়িত করা হয়। তথ্যের জন্য, পলিসি স্কিমাগুলো গিটহাবে পাওয়া যাবে।

ত্রুটির রেফারেন্স

এই বিভাগটি ফল্ট কোড এবং ত্রুটি বার্তাগুলি বর্ণনা করে যেগুলি ফেরত দেওয়া হয় এবং ত্রুটি ভেরিয়েবলগুলি যেগুলি এজ দ্বারা সেট করা হয় যখন এই নীতিটি একটি ত্রুটি ট্রিগার করে৷ এই তথ্যটি জানা গুরুত্বপূর্ণ যে আপনি ত্রুটিগুলি পরিচালনা করার জন্য ত্রুটির নিয়ম তৈরি করছেন কিনা। আরও জানতে, নীতিগত ত্রুটি এবং হ্যান্ডলিং ফল্ট সম্পর্কে আপনার যা জানা দরকার তা দেখুন৷

রানটাইম ত্রুটি

নীতি কার্যকর করার সময় এই ত্রুটিগুলি ঘটতে পারে৷

ফল্ট কোড HTTP স্থিতি কারণ ঠিক করুন
accesscontrol.IPDeniedAccess 403 ক্লায়েন্ট আইপি ঠিকানা, বা API অনুরোধে পাস করা একটি IP ঠিকানা, অ্যাক্সেস কন্ট্রোল নীতির <MatchRule> উপাদানের মধ্যে <SourceAddress> এলিমেন্টে উল্লেখিত একটি IP ঠিকানার সাথে মেলে এবং <MatchRule> উপাদানটির action অ্যাট্রিবিউট সেট করা আছে। DENY করতে

ফল্ট ভেরিয়েবল

রানটাইম ত্রুটি ঘটলে এই ভেরিয়েবলগুলি সেট করা হয়। আরও তথ্যের জন্য, নীতি ত্রুটির জন্য নির্দিষ্ট ভেরিয়েবল দেখুন।

ভেরিয়েবল যেখানে উদাহরণ
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>