আপনি Apigee Edge ডকুমেন্টেশন দেখছেন।
Apigee X ডকুমেন্টেশনে যান । তথ্য
IPDeniedAccess
ত্রুটি কোড
accesscontrol.IPDeniedAccess
ত্রুটি প্রতিক্রিয়া বডি
{ "fault": { "faultstring": "Access Denied for client ip : client_IP", "detail": { "errorcode": "accesscontrol.IPDeniedAccess" } } }
উদাহরণ ত্রুটি বার্তা
{
"fault": {
"faultstring": "Access Denied for client ip : 104.132.196.83",
"detail": {
"errorcode": "accesscontrol.IPDeniedAccess"
}
}
}
কারণ
এই ত্রুটিটি ঘটে যদি ক্লায়েন্টের আইপি ঠিকানা, বা API অনুরোধের অংশ হিসাবে পাস করা কোনো আইপি ঠিকানা, অ্যাক্সেস কন্ট্রোল নীতির <MatchRule>
উপাদানের মধ্যে <SourceAddress>
উপাদানে উল্লেখিত যেকোনো IP ঠিকানার সাথে মেলে এবং action
<MatchRule>
উপাদানটির বৈশিষ্ট্য DENY
এ সেট করা হয়েছে।
উদাহরণস্বরূপ, ধরা যাক <SourceAddress>
নীচে দেখানো হিসাবে সংজ্ঞায়িত করা হয়েছে:
<SourceAddress mask="32">104.132.196.83</SourceAddress>
যদি উপরের IP ঠিকানাটি ক্লায়েন্ট সিস্টেমের IP ঠিকানার সাথে মিলে যায় (ভেরিয়েবল proxy.client.ip
দ্বারা নির্দেশিত), অথবা API অনুরোধের অংশ হিসাবে পাস করা IP ঠিকানাগুলির মধ্যে একটি, ত্রুটি ঘটবে।
রোগ নির্ণয়
একটি নির্দিষ্ট API অনুরোধের জন্য অস্বীকৃত আইপি ঠিকানা(গুলি) সনাক্ত করুন৷ আপনি ত্রুটি প্রতিক্রিয়ার
faultstring
উপাদানটিতে এই তথ্যটি খুঁজে পেতে পারেন।উদাহরণস্বরূপ, নিম্নলিখিত
faultstring
-এ, IP ঠিকানা হল104.132.196.83:
"faultstring": "Access Denied for client ip : 104.132.196.83"
ব্যর্থ API প্রক্সিতে সমস্ত অ্যাক্সেস কন্ট্রোল নীতিগুলি পরীক্ষা করুন এবং নির্দিষ্ট নীতি নির্ধারণ করুন যেখানে
<SourceAddress>
উপাদানে উল্লেখিত IP ঠিকানা(গুলি)faultstring
চিহ্নিত IP ঠিকানা(গুলি) এর সাথে মেলে (উপরের ধাপ 1)।উদাহরণ স্বরূপ, নিম্নলিখিত নীতি
<SourceAddress>
IP-কে104.132.196.83,
যাfaultstring
এর সাথে মিলে যায়:<?xml version="1.0" encoding="UTF-8" standalone="yes"?> <AccessControl async="false" continueOnError="false" enabled="true" name="Access-Control"> <DisplayName>Access-Control</DisplayName> <Properties/> <IPRules noRuleMatchAction="ALLOW"> <MatchRule action="DENY"> <SourceAddress mask="32">104.132.196.83</SourceAddress> </MatchRule> </IPRules> </AccessControl>
যে IP ঠিকানা(গুলি) থেকে API অনুরোধ করা হয়েছিল তা নির্ধারণ করুন। এটি একাধিক উপায়ে করা যেতে পারে:
UI ট্রেস ব্যবহার করে
- ব্যর্থ API অনুরোধের জন্য ট্রেস ক্যাপচার.
- ডান হাতের প্যানেল থেকে ব্যর্থ হওয়া নির্দিষ্ট অ্যাক্সেস কন্ট্রোল নীতি নির্বাচন করুন।
একটি নমুনা ট্রেসের নিম্নলিখিত স্ক্রিনশটে দেখানো হিসাবে ভেরিয়েবল
proxy.client.ip
এর মান পরীক্ষা করুন।যদি
proxy.client.ip
তালিকাভুক্ত না থাকে, তাহলে X-Forwarded-For বা True-Client-IP মেসেজ হেডারের মান পরীক্ষা করুন।
কাস্টম রিপোর্ট ব্যবহার করে
API প্রক্সির মধ্যে অ্যাক্সেস কন্ট্রোল পলিসি কার্যকর করার সময় একটি 403 স্ট্যাটাস কোড নিক্ষেপ করা হয়েছে কিনা তা নির্ধারণ করতে আপনি কাস্টম রিপোর্ট তৈরি করতে পারেন এবং ক্লায়েন্ট আইপি ঠিকানাও নির্ধারণ করতে পারেন। এটি বিশেষভাবে উপযোগী যদি সমস্যাটি অতীতে ঘটে থাকে বা সমস্যাটি মাঝে মাঝে হয় এবং আপনি UI-তে ট্রেস ক্যাপচার করতে অক্ষম হন।
কাস্টম রিপোর্ট কিভাবে তৈরি করতে হয় তা বোঝার জন্য কাস্টম রিপোর্ট তৈরি এবং পরিচালনা করুন । কাস্টম রিপোর্টে, বেছে নিন:
একটি মেট্রিক হিসাবে ট্রাফিকের সমষ্টি , এবং
প্রক্সি , রেসপন্স স্ট্যাটাস কোড , প্রক্সি ক্লায়েন্ট আইপি এবং এক্স-ফরওয়ার্ড-ফর ডাইমেনশন হিসাবে।
এটি আপনাকে ক্লায়েন্ট আইপি বা আইপি ঠিকানাগুলি নির্ধারণ করতে সহায়তা করবে যা ত্রুটির দিকে পরিচালিত করে।
যদি ক্লায়েন্ট আইপি ঠিকানা (ভেরিয়েবল
proxy.client.ip
দ্বারা নির্দেশিত), বা API অনুরোধের অংশ হিসাবে পাস করা কোনো IP ঠিকানা,<MatchRule>
উপাদানের মধ্যে<SourceAddress>
উপাদানে উল্লেখিত IP ঠিকানা(গুলি) এর সাথে মেলে অ্যাক্সেস কন্ট্রোল পলিসি, যেখানেaction
অ্যাট্রিবিউটটিDENY
তে সেট করা হয়েছে, তারপর এটিই ত্রুটির কারণ।উপরে দেখানো উদাহরণে, রেফারেন্স ভেরিয়েবল
proxy.client.ip
এ সেট করা মান (উপরের ট্রেসের স্ক্রিনশটে দেখা গেছে) অ্যাক্সেস কন্ট্রোল নীতির<SourceAddress>
উপাদানে সংজ্ঞায়িত IP ঠিকানার সাথে মেলে, এইভাবে ত্রুটিটি ট্রিগার করে। প্রতিক্রিয়া:"faultstring": "Access Denied for client ip : 104.132.196.83"
রেজোলিউশন
যদি অ্যাক্সেস কন্ট্রোল নীতিটি faultstring
এ তালিকাভুক্ত নির্দিষ্ট আইপি ঠিকানা(গুলি) থেকে আসা API অনুরোধগুলিতে অ্যাক্সেস অস্বীকার করার উদ্দেশ্যে হয়, তাহলে ত্রুটি বার্তা প্রত্যাশিত। এই ক্ষেত্রে, কোন অতিরিক্ত পদক্ষেপের প্রয়োজন নেই।
যাইহোক, যদি আপনি নির্ধারণ করেন যে নির্দিষ্ট IP ঠিকানা(গুলি) নির্দিষ্ট API প্রক্সির জন্য API অনুরোধগুলিতে অ্যাক্সেস দেওয়া যেতে পারে, তাহলে সেই IP ঠিকানাগুলি(গুলি) অ্যাক্সেসের অনুমতি দেওয়ার জন্য অ্যাক্সেস কন্ট্রোল নীতি পরিবর্তন করুন৷ বিকল্পভাবে, আপনি API প্রক্সি থেকে অ্যাক্সেস কন্ট্রোল নীতি সরাতে পারেন যদি আপনি কোনো আইপি ঠিকানা(গুলি) অ্যাক্সেস অস্বীকার করতে না চান।
এখানে একটি উদাহরণ রয়েছে যা দেখায় যে কীভাবে একটি নির্দিষ্ট আইপি ঠিকানা 104.132.196.83
অ্যাক্সেসের অনুমতি দেওয়া যায় এবং বাকিগুলির জন্য অ্যাক্সেস অস্বীকার করা যায়:
<AccessControl name="ACL">
<IPRules noRuleMatchAction = "DENY">
<MatchRule action = "ALLOW">
<SourceAddress mask="32">104.132.196.83</SourceAddress>
</MatchRule>
</IPRules>
</AccessControl>