شما در حال مشاهده اسناد Apigee Edge هستید.
به مستندات Apigee X بروید . اطلاعات
چی
خط مشی کنترل دسترسی به شما امکان می دهد دسترسی به API های خود را با آدرس های IP خاص مجاز یا رد کنید.
ویدئو: برای کسب اطلاعات بیشتر درباره نحوه اجازه یا رد دسترسی به API های خود توسط آدرس های IP خاص، یک ویدیوی کوتاه تماشا کنید.
در حالی که میتوانید این خطمشی را در هر جایی از جریان پروکسی API پیوست کنید، به احتمال زیاد میخواهید آدرسهای IP را در ابتدای جریان (Request / ProxyEndpoint / PreFlow)، حتی قبل از احراز هویت یا بررسی سهمیه بررسی کنید.
نمونه ها
مقادیر ماسک در نمونههای IPv4 زیر مشخص میکند که قانون تطبیق کدام یک از چهار اکتت (8، 16، 24، 32 بیت) را هنگام اجازه یا رد دسترسی در نظر میگیرد. مقدار پیش فرض 32 است. برای اطلاعات بیشتر به ویژگی mask
در مرجع Element مراجعه کنید.
انکار 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) برای ذخیره مقادیر ماسکینگ و IP استفاده می کنید. این یک رویکرد مفید برای تغییر IP و پوشاندن در طول زمان اجرا بدون نیاز به به روز رسانی و استقرار مجدد پروکسی API شما است. می توانید از خط مشی KeyValueMapOperations برای بازیابی متغیرهای حاوی مقادیر kvm.mask.value
و kvm.ip.value
استفاده کنید (با فرض اینکه نام متغیرهایی را در خط مشی KVM خود نام گذاری کرده اید که حاوی مقادیر mask و مقادیر IP از KVM هستند. ). اگر مقادیری که بازیابی کردید 24
برای ماسک و 198.51.100.1
برای آدرس IP بود، خط مشی 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.*.*
درخواستهای هر آدرس مشتری دیگر را رد کنید.
چندین IP را مجاز کنید
<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.*
همه آدرسهای دیگر را مجاز کنید.
چندین IP را مجاز کنید، چندین IP را رد کنید
<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 های مخرب، به شما امکان کنترل دسترسی قانونی به IP را نیز می دهد. برای مثال، اگر میخواهید فقط رایانههای تحت کنترل شرکت شما به APIهای در معرض محیط آزمایشی شما دسترسی داشته باشند، میتوانید محدوده آدرس IP را برای شبکه داخلی خود مجاز کنید. توسعه دهندگانی که از خانه کار می کنند می توانند با استفاده از VPN به این API ها دسترسی داشته باشند.
پیکربندی و اجرای یک سیاست کنترل دسترسی شامل موارد زیر است:
- مجموعه ای از قوانین تطبیق را با یکی از دو عمل (ALLOW یا DENY) مرتبط با هر کدام تعریف کنید.
- برای هر قانون مطابقت، آدرس IP (عنصر SourceAddress) را مشخص کنید.
- ببینید چگونه این خطمشی انتخاب میکند که کدام آدرس IP را ارزیابی کند تا مشخص شود کدام آدرس(های) IP در پیامی که در حال پیکربندی قوانین برای مدیریت هستید.
- برای هر آدرس IP یک ماسک پیکربندی کنید. شما دسترسی را بر اساس مقدار ماسک در آدرس IP مجاز یا رد می کنید. درباره پوشش IP با نماد CIDR مراجعه کنید.
- ترتیب آزمایش قوانین را مشخص کنید.
- تمام قوانین مسابقه به ترتیب داده شده اجرا می شوند. هنگامی که یک قانون مطابقت دارد، عمل مربوطه اجرا می شود و قوانین مطابقت زیر حذف می شوند.
- اگر همان قانون با هر دو عمل ALLOW و DENY پیکربندی شود، قانونی که ابتدا به ترتیب تعریف شده است راه اندازی می شود و قانون بعدی (با عملکرد دیگر) رد می شود.
خط مشی چگونه آدرس IP را برای ارزیابی انتخاب می کند
آدرس های IP می توانند از منابع مختلفی در یک درخواست آمده باشند. به عنوان مثال، هدر پیام True-Client-IP
ممکن است حاوی یک آدرس IP باشد و سربرگ X-Forwarded-For
ممکن است حاوی یک یا چند آدرس IP باشد. این بخش نحوه پیکربندی خط مشی AccessControl را برای ارزیابی آدرس(های) IP دقیقی که می خواهید ارزیابی کند، شرح می دهد.
در زیر منطقی است که خط مشی AccessControl استفاده می کند تا تصمیم بگیرد کدام آدرس IP را ارزیابی کند:
1. هدر True-Client-IP
این خط مشی ابتدا یک آدرس IP را در هدر True-Client-IP
بررسی می کند. اگر هدر حاوی یک آدرس IP معتبر باشد، خط مشی آن آدرس را ارزیابی می کند.
2. X-Forwarded-For header
اگر سرصفحه True-Client-IP
وجود نداشته باشد، یا اگر عنصر <IgnoreTrueClientIPHeader> را روی true تنظیم کرده باشید، این خط مشی آدرس(های) IP را در هدر X-Forwarded-For
ارزیابی می کند.
Edge به طور خودکار هدر X-Forwarded-For
با آدرس IP که از آخرین دست دادن خارجی TCP دریافت کرده است (مانند IP مشتری یا روتر) پر می کند. اگر چندین آدرس IP در هدر وجود داشته باشد، آن آدرس ها احتمالاً زنجیره ای از سرورهایی هستند که یک درخواست را پردازش می کنند. با این حال، لیست آدرس ها همچنین می تواند حاوی یک آدرس IP جعلی باشد. بنابراین چگونه سیاست می داند که کدام آدرس ها را ارزیابی کند؟
پیکربندی سازمان شما و پیکربندی خط مشی تعیین می کند که خط مشی کدام آدرس(های) X-Forwarded-For
ارزیابی می کند.
ابتدا بررسی کنید که آیا feature.enableMultipleXForwardCheckForACL
در سازمان شما تنظیم شده است یا خیر. برای بررسی می توانید از Get Organization API استفاده کنید. سپس:
- اگر
feature.enableMultipleXForwardCheckForACL
در لیست ویژگی های سازمان خود نمی بینید، به این معنی است که ویژگی روی false تنظیم شده است (پیش فرض). با تنظیم این ویژگی روی false، خطمشی آخرین آدرس را در هدر (قابل مشاهده در ابزار Trace ) ارزیابی میکند، که آدرس IP Edge دریافت شده از آخرین دست دادن TCP خارجی است. - اگر
feature.enableMultipleXForwardCheckForACL
در سازمان شما روی true تنظیم شده است، عنصر <ValidateBasedOn> را پیکربندی کنید تا مشخص شود که خط مشی کدام آدرس IP را ارزیابی می کند.
تغییر feature.enableMultipleXForwardCheckForACL
مدیران Edge Organization می توانند از Update Organization Properties API برای تنظیم feature.enableMultipleXForwardCheckForACL
استفاده کنند.
مثال API زیر ویژگی را در Edge برای 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 اجزای جداگانه توضیح داده شده است.
ابعاد X-Forwarded-For در تجزیه و تحلیل Apigee
Edge Analytics مقدار هدر X-Forwarded-For
را در بعد x_forwarded_for_ip
می نویسد. برای تعیین IP مشتری که درخواست Edge را داده است، از مقادیر موجود در ابعاد ax_true_client_ip
یا ax_resolved_client_ip
استفاده کنید. برای اطلاعات بیشتر به مرجع معیارها، ابعاد و فیلترهای Analytics مراجعه کنید.
درباره پوشش IP با نماد CIDR
نشانه گذاری CIDR (مسیریابی بین دامنه ای بدون کلاس) راهی برای نشان دادن طیف وسیعی از آدرس های IP از طریق پوشاندن است. این برای هر دو IPv4 و IPv6 اعمال می شود. در اینجا نحوه عملکرد آن آمده است. ما برای سادگی از IPv4 در مثال های خود استفاده خواهیم کرد.
آدرس های IP گروهی از اعداد هستند که با نقطه از هم جدا شده اند. در اصطلاح دودویی، هر گروه تعداد بیت خاصی است (8 برای IPv4 و 16 برای IPv6). آدرس IPv4 198.51.100.1 به صورت باینری به نظر می رسد:
11000110.00110011.01100100.00000001
این 4 گروه 8 بیتی یا 32 بیت کل است. با CIDR، می توانید یک محدوده را با افزودن یک عدد / (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 بیت اول) | 000000 00 ، 000000 01 ، 000000 10 ، یا 000000 11 |
198.51.100. | 0، 1، 2 یا 3 |
در این مثال، با پیکربندی تنظیم شده روی <SourceAddress mask="30">198.51.100.1</SourceAddress>
، IP های زیر مجاز خواهند بود (یا بسته به قوانین شما رد می شوند):
- 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 | نام داخلی سیاست. مقدار مشخصه در صورت تمایل، از عنصر | N/A | مورد نیاز |
continueOnError | برای بازگرداندن خطا در صورت شکست خط مشی، روی روی | نادرست | اختیاری |
enabled | برای اجرای خط مشی روی برای خاموش کردن خط مشی، روی | درست است | اختیاری |
async | این ویژگی منسوخ شده است. | نادرست | منسوخ شده است |
عنصر <DisplayName>
علاوه بر ویژگی name
برای برچسبگذاری خطمشی در ویرایشگر پروکسی رابط کاربری مدیریت با نامی متفاوت و به زبان طبیعی، از آن استفاده کنید.
<DisplayName>Policy Display Name</DisplayName>
پیش فرض | N/A اگر این عنصر را حذف کنید، از مقدار ویژگی |
---|---|
حضور | اختیاری |
تایپ کنید | رشته |
عنصر <IgnoreTrueClientIPHeader>
وقتی این را روی درست تنظیم میکنید، خطمشی هدر True-Client-IP
نادیده میگیرد و آدرسهای 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>
عنصر والد حاوی قوانینی است که آدرس های IP را مجاز یا رد می کند. ویژگی noRuleMatchAction
به شما این امکان را می دهد که نحوه مدیریت آدرس های IP را که تحت قوانین تطبیق شما قرار نمی گیرند، تعریف کنید.
<IPRules noRuleMatchAction = "ALLOW">
پیش فرض | N/A |
---|---|
حضور | اختیاری |
تایپ کنید | N/A |
صفات
صفت | توضیحات | تایپ کنید | پیش فرض | حضور |
---|---|---|---|---|
noRuleMatchAction | اقدامی که باید انجام شود (اجازه یا رد دسترسی) در صورتی که قانون تطابق مشخص شده حل نشده باشد (بی همتا). مقدار معتبر: ALLOW یا DENY | رشته | اجازه دهید | مورد نیاز |
عنصر <IPRules>/<MatchRule>
اقدامی برای انجام (اجازه یا رد دسترسی) در صورتی که آدرس IP با آدرس(های) منبعی که تعریف کرده اید مطابقت داشته باشد.
<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 |
صفات
صفت | توضیحات | تایپ کنید | پیش فرض | حضور |
---|---|---|---|---|
اقدام | اقدامی که باید انجام شود (اجازه یا رد دسترسی) در صورتی که قانون تطابق مشخص شده حل نشده باشد (بی همتا). مقدار معتبر: ALLOW یا DENY | رشته | اجازه دهید | مورد نیاز |
عنصر <IPRules>/<MatchRule>/<SourceAddress>
محدوده آدرس IP یک مشتری.
مقدار معتبر: آدرس IP معتبر (نقطه اعشاری نقطهدار). برای رفتار عام، از ویژگی 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 پشتیبانی می کند، به این معنی که می توانید مقادیر را با استفاده از متغیرهایی که در حال حاضر در جریان پروکسی API موجود هستند، تنظیم کنید.
به عنوان مثال، می توانید یک آدرس IP را در یک نقشه ارزش کلید (KVM) ذخیره کنید و از خط مشی KeyValueMapOperations برای بازیابی آدرس IP و اختصاص آن به یک متغیر (مانند kvm.ip.value
) استفاده کنید. سپس می توانید از آن متغیر برای آدرس IP استفاده کنید:
<SourceAddress mask="24"> {kvm.ip.value} </SourceAddress>
تنظیم ماسک و/یا آدرس IP با یک متغیر به شما این امکان را میدهد که مقادیر را در زمان اجرا بدون نیاز به تغییر و استقرار مجدد پروکسی API خود تغییر دهید.
پیش فرض | N/A |
---|---|
حضور | اختیاری |
تایپ کنید | رشته (فقط یک آدرس IP) |
صفات
صفت | توضیحات | تایپ کنید | پیش فرض | حضور |
---|---|---|---|---|
ماسک | ویژگی معادل نماد CIDR زیر است: 198.51.100.1/24 مقادیر معتبر: IPv4: 1-32 IPv6: 1-128 مقدار صفر (0) فقط برای IP 0.0.0.0 معتبر است، بنابراین غیرعملی است. ماسک را با یک متغیر تنظیم کنید ویژگی | عدد صحیح | N/A | مورد نیاز |
عنصر <ValidateBasedOn>
هنگامی که هدر X-Forwarded-For
HTTP حاوی چندین آدرس IP است، از این عنصر ValidateBasedOn
برای کنترل اینکه کدام آدرس های IP ارزیابی می شوند استفاده کنید.
تنها در صورتی از این رویکرد برای ارزیابی آدرس های IP استفاده کنید که در مورد اعتبار آدرس های IP که می خواهید ارزیابی کنید مطمئن هستید. به عنوان مثال، اگر شما انتخاب میکنید که تمام آدرسهای IP را در هدر X-Forwarded-For
ارزیابی کنید، باید بتوانید به اعتبار آن آدرسها اعتماد کنید و/یا قوانین جامع DENY یا ALLOW را تنظیم کنید تا فقط IPهای مورد اعتماد با شما تماس بگیرند. پروکسی API.
سمت چپ ترین آدرس IP در هدر متعلق به مشتری است و سمت راست سروری است که درخواست را به سرویس فعلی ارسال می کند. سمت راست ترین یا آخرین آدرس IP، آدرسی است که Edge از آخرین دست دادن TCP خارجی دریافت شده است.
مقداری که در این عنصر وارد میکنید به شما امکان میدهد تعیین کنید که آیا تمام آدرسهای IP در هدر (پیشفرض)، فقط اولین آدرس IP یا فقط آخرین آدرس IP را بررسی کنید.
<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 |
---|---|
حضور | اختیاری |
مقادیر معتبر | |
طرحواره ها
هر نوع خط مشی توسط یک طرح XML (xsd.) تعریف می شود. برای مرجع، طرحهای خطمشی در GitHub در دسترس هستند.
مرجع خطا
این بخش کدهای خطا و پیامهای خطایی را که برگردانده میشوند و متغیرهای خطا را که توسط Edge تنظیم میشوند، هنگامی که این خطمشی خطا را راهاندازی میکند، توضیح میدهد. این اطلاعات برای دانستن اینکه آیا در حال توسعه قوانین خطا برای رسیدگی به خطاها هستید، مهم است. برای کسب اطلاعات بیشتر، آنچه را که باید در مورد خطاهای خط مشی و مدیریت خطاها بدانید را ببینید.
خطاهای زمان اجرا
این خطاها ممکن است هنگام اجرای سیاست رخ دهند.
کد خطا | وضعیت HTTP | علت | رفع کنید |
---|---|---|---|
accesscontrol.IPDeniedAccess | 403 | آدرس IP مشتری، یا یک آدرس IP ارسال شده در درخواست API، با یک آدرس IP مشخص شده در عنصر <SourceAddress> در عنصر <MatchRule> سیاست کنترل دسترسی مطابقت دارد و ویژگی action عنصر <MatchRule> تنظیم شده است. DENY . | build |
متغیرهای خطا
این متغیرها زمانی تنظیم می شوند که یک خطای زمان اجرا رخ دهد. برای اطلاعات بیشتر، متغیرهای مخصوص خطاهای خط مشی را ببینید.
متغیرها | کجا | مثال |
---|---|---|
fault.name=" fault_name " | fault_name نام خطا است، همانطور که در جدول خطاهای Runtime در بالا ذکر شده است. نام خطا آخرین قسمت کد خطا است. | 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>