أنت تعرض مستندات Apigee Edge.
انتقل إلى
مستندات Apigee X. معلومات
المزايا
تتيح لك سياسة التحكم في الوصول السماح بالوصول إلى واجهات برمجة التطبيقات أو رفضه من خلال عنوان IP محدد .
فيديو: يمكنك مشاهدة فيديو قصير لمعرفة المزيد من المعلومات عن كيفية السماح أو الرفض الوصول إلى واجهات برمجة التطبيقات من خلال عناوين IP محددة.
يمكنك إرفاق هذه السياسة في أي مكان بمسار الخادم الوكيل لواجهة برمجة التطبيقات، إلا أنّك ستريد على الأرجح التحقق من عناوين IP في بداية التدفق ( الطلب / 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>
لنفترض أنك تستخدم خريطة القيم الرئيسية (KVM) لتخزين القيم المتعلقة بالإخفاء وعناوين IP.
يوفّر هذا أسلوبًا مفيدًا لتغيير عناوين IP وإخفاء معلوماتها أثناء بيئة التشغيل بدون الحاجة إلى تحديث.
وأعد نشر الخادم الوكيل لواجهة برمجة التطبيقات. يمكنك استخدام سياسة KeyValueMapOperations لاسترداد
المتغيرات التي تحتوي على قيم kvm.mask.value
kvm.ip.value
(على افتراض أنّ هذا هو ما سمّيته للمتغيّرات في سياسة KVM الخاصة بك.
تحتوي على قيم القناع وقيم 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.*
رفض جميع العناوين الأخرى
رفض عناوين IP متعددة
<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>
Allow: 198.51.*.* 192.0.*.* 203.0.*.*
رفض مجموعة فرعية من القائمة المسموح بها: 198.51.100.* 192.0.2.* 203.0.113.*
ملاحظات الاستخدام
بالإضافة إلى حماية واجهات برمجة التطبيقات من عناوين IP الضارة، تتيح سياسة "التحكُّم في الوصول" أيضًا التحكم في الوصول المشروع إلى بروتوكول الإنترنت (IP). على سبيل المثال، إذا كنت تريد فقط أجهزة الكمبيوتر ضمن التحكم في مؤسستك للوصول إلى واجهات برمجة التطبيقات المعروضة في بيئة الاختبار، يمكنك السماح نطاق عنوان IP لشبكتك الداخلية. يستطيع المطوّرون الذين يعملون من المنزل الوصول إلى واجهات برمجة التطبيقات هذه باستخدام شبكة ظاهرية خاصة (VPN).
يتضمن إعداد سياسة التحكم في الوصول وتنفيذها ما يلي:
- تحديد مجموعة من قواعد المطابقة يرتبط بها أحد إجراءَين (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
إذا لم يظهر العنوان True-Client-IP
، أو إذا تم ضبط سمة
عنصر <IgnoreTrueClientIPHeader> إلى
صحيح، تقيّم السياسة عناوين IP في عنوان X-Forwarded-For
.
يملأ Edge تلقائيًا عنوان X-Forwarded-For
.
بعنوان IP الذي تلقّاه من آخر عملية تأكيد اتصال لبروتوكول TCP الخارجية (مثل عنوان IP للعميل أو
الموجه). إذا كانت هناك عناوين IP متعددة في رأس الصفحة، فإن هذه العناوين
هي على الأرجح سلسلة الخوادم التي عالجت طلبًا. ومع ذلك، فإن قائمة العناوين
على عنوان IP مخادع. إذًا، كيف تعرف السياسة العناوين التي يجب
التقييم؟
تحدِّد إعدادات مؤسستك وضبط السياسة
تتناول X-Forwarded-For
العناوين التي يتم تقييمها من خلال السياسة.
تأكَّد أولاً من أنّ السمة feature.enableMultipleXForwardCheckForACL
في مؤسستك. يمكنك استخدام صفحة
يمكنك طلب واجهة برمجة التطبيقات الخاصة بالمؤسسة للتحقّق منها. بعد ذلك:
- إذا لم يظهر لك
feature.enableMultipleXForwardCheckForACL
في قائمة خصائص المؤسسة، فهذا يعني أنه تم تعيين الخاصية على false (الخيار الافتراضي). عند ضبط هذه السمة على "خطأ"، تقيّم السياسة العنوان الأخير في رأس الصفحة (يظهر في أداة التتبُّع)، وهي عنوان IP شبكة Edge التي تم تلقّيها من آخر عملية تأكيد اتصال خارجية لـ TCP. - إذا كان
feature.enableMultipleXForwardCheckForACL
في مؤسستك على "صحيح"، يجب ضبط الحقل <ValidateBasedOn> لتحديد عناوين IP التي ستقيّمها السياسة.
تغيير السمة feature.enableMultipleXForwardCheckForACL
يمكن لمشرفي المؤسسات في Edge استخدام
واجهة برمجة التطبيقات الخاصة بتعديل خصائص المؤسسة لإعداد
الموقع "feature.enableMultipleXForwardCheckForACL
".
يعمل مثال واجهة برمجة التطبيقات التالي على ضبط الخاصية في 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
)،
يجب إعادة تشغيل معالِجات الرسائل، كما هو موضح في
بدء/إيقاف/إعادة تشغيل مكوّنات فردية
تمت إعادة توجيه X-For باستخدام السمات في Apigee Analytics
يكتب Edge Analytics قيمة العنوان X-Forwarded-For
في
سمة x_forwarded_for_ip
لتحديد عنوان IP للعميل الذي
الطلب إلى Edge، استخدم القيم الموجودة في ax_true_client_ip
أو
ax_resolved_client_ip
أبعاد. عرض
تتيح لك المقاييس والسمات في "إحصاءات Google"
ومراجع الفلاتر لعرض المزيد
معلومات عن إخفاء عناوين 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، يمكنك الإشارة إلى نطاق بإضافة /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>
، سيتم السماح بعناوين 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 |
الاسم الداخلي للسياسة. يمكن لقيمة السمة يمكنك، إذا أردت، استخدام العنصر |
لا ينطبق | مطلوب |
continueOnError |
اضبط القيمة على يمكنك ضبط القيمة على |
خطأ | اختياري |
enabled |
اضبط القيمة على اضبط القيمة على |
صحيح | اختياري |
async |
تم إيقاف هذه السمة نهائيًا. |
خطأ | منهي العمل به |
<DisplayName> عنصر
استخدِمه مع السمة name
لتصنيف السياسة في
إدارة خادم وكيل لواجهة المستخدم باسم مختلف بلغة طبيعية.
<DisplayName>Policy Display Name</DisplayName>
تلقائي |
لا ينطبق إذا لم تستخدم هذا العنصر، سيتم ضبط قيمة السمة |
---|---|
التواجد في المنزل | اختياري |
النوع | سلسلة |
<IgnoreTrueClientIPHeader> عنصر
عند ضبط هذه السياسة على "صحيح"، تتجاهل السياسة عنوان True-Client-IP
.
ويقيّم عناوين IP في العنوان X-Forwarded-For
، مع اتّباع
X-forwarded-لسلوك التقييم الذي ضبطته.
<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">
تلقائي | لا ينطبق |
---|---|
التواجد في المنزل | اختياري |
النوع | لا ينطبق |
السمات
السمة | الوصف | النوع | تلقائي | التواجد في المنزل |
---|---|---|---|---|
noRuleMatchAction |
الإجراء الذي يجب اتخاذه (السماح بالوصول أو رفضه) إذا لم يتم حل قاعدة المطابقة المحدّدة
(غير متطابقة).
القيمة الصالحة: ALLOW أو DENY
|
سلسلة | سماح | مطلوب |
<IPRules>/<MatchRule> عنصر
الإجراء الذي يجب اتخاذه (السماح بالوصول أو رفضه) إذا كان عنوان IP يتطابق مع عناوين 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> عنصر
نطاق عنوان 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، الذي
يعني أنه يمكنك تعيين القيم باستخدام المتغيرات المتوفرة حاليًا في
مسار الخادم الوكيل لواجهة برمجة التطبيقات
على سبيل المثال، يمكنك تخزين عنوان IP في خريطة قيمة رئيسية (KVM) واستخدام دالة
سياسة KeyValueMapOperations لاسترداد عنوان IP وتعيينه لمتغير (مثل
kvm.ip.value
). يمكنك بعد ذلك استخدام هذا المتغير لعنوان IP:
<SourceAddress mask="24">{kvm.ip.value}</SourceAddress>
يمنحك تعيين القناع و/أو عنوان IP باستخدام متغير المرونة في تغيير القيم بدون الحاجة إلى تعديل الخادم الوكيل لواجهة برمجة التطبيقات وإعادة نشره.
تلقائي | لا ينطبق |
---|---|
التواجد في المنزل | اختياري |
النوع | سلسلة (عنوان IP واحد فقط) |
السمات
السمة | الوصف | النوع | تلقائي | التواجد في المنزل |
---|---|---|---|---|
كمامة |
السمة
يكافئ تدوين CIDR التالي: 198.51.100.1/24 قيم صالحة: IPv4: من 1 إلى 32 IPv6: من 1 إلى 128 القيمة صفر (0) صالحة فقط لعنوان IP 0.0.0.0، وبالتالي فهي غير عملية. ضبط القناع باستخدام متغيّر تتوافق السمة
|
عدد صحيح | لا ينطبق | مطلوب |
<ValidateBasedOn> عنصر
عندما يحتوي عنوان HTTP X-Forwarded-For
على عنوان IP متعدد
للعناوين، يمكنك استخدام عنصر ValidateBasedOn
هذا للتحكم في عناوين IP
التقييم.
استخدِم هذا المنهج لتقييم عناوين IP فقط في حال كنت متأكدًا من مدى صحتها.
عناوين IP التي تريد تقييمها. على سبيل المثال، إذا اخترت تقييم جميع
بالنسبة إلى عناوين IP في العنوان X-Forwarded-For
، يجب أن تتمكن من الوثوق في
و/أو صحة تلك العناوين، و/أو إعداد قواعد DENY أو ALLOW شاملة للسماح بإدخال
تستدعي عناوين IP الخادم الوكيل لواجهة برمجة التطبيقات.
ينتمي عنوان 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.
مرجع الخطأ
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 . |
build |
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>