أنت الآن بصدد الاطّلاع على مستندات Apigee Edge.
انتقِل إلى
مستندات Apigee X. info
![]()
الأدوات المستخدمة
تتيح لك سياسة "التحكّم في الوصول" السماح بالوصول إلى واجهات برمجة التطبيقات أو رفضه من خلال عناوين IP محددة.
فيديو: شاهِد فيديو قصيرًا لمعرفة المزيد حول كيفية السماح أو عدم السماح بالوصول إلى واجهات برمجة التطبيقات من خلال عناوين IP محدّدة.
على الرغم من أنّه يمكنك إرفاق هذه السياسة في أي مكان في مسار خادم وكيل واجهة برمجة التطبيقات، من المرجّح أنّك تريد التحقّق من عناوين IP في بداية المسار ( الطلب / ProxyEndpoint / PreFlow)، حتى قبل المصادقة أو التحقّق من الحصة.
نماذج
تحدّد قيم القناع في عيّنات IPv4 التالية أيًّا من وحدات الأوكتت الأربع (8 أو 16 أو 24 أو 32 بت) التي تأخذها قاعدة المطابقة في الاعتبار عند السماح بالوصول أو رفضه. القيمة التلقائية هي 32. يمكنك الاطّلاع على السمة mask في مرجع العناصر للحصول على مزيد من المعلومات.
Deny 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.*
وسيتم السماح بجميع عناوين العملاء الأخرى.
Deny 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
السماح بالطلبات من أي عنوان عميل آخر
Allow 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 متعددة أو رفضها
<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.
يتضمّن إعداد سياسة "التحكّم في الوصول" وتنفيذها ما يلي:
- حدِّد مجموعة من قواعد المطابقة مع أحد الإجراءَين (السماح أو الرفض) المرتبطَين بكل قاعدة.
- لكل قاعدة مطابقة، حدِّد عنوان 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 في مؤسستك. يمكنك استخدام واجهة برمجة التطبيقات
Get organization للتحقّق من ذلك. بعد ذلك:
- إذا لم يظهر
feature.enableMultipleXForwardCheckForACLفي قائمة المواقع الخاصة بمؤسستك، يعني ذلك أنّ قيمة الموقع مضبوطة على false (القيمة التلقائية). عند ضبط هذه السمة على "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-Forwarded-For في إحصاءات Apigee
تسجّل 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 للإصدار 4 من بروتوكول الإنترنت و16 للإصدار 6 من بروتوكول الإنترنت). يبدو عنوان 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 بت) | 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-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">
| تلقائي | لا ينطبق |
|---|---|
| التواجد في المنزل | اختياري |
| النوع | لا ينطبق |
السمات
| السمة | الوصف | النوع | تلقائي | التواجد في المنزل |
|---|---|---|---|---|
| noRuleMatchAction |
الإجراء الذي يجب اتّخاذه (السماح بالوصول أو رفضه) في حال عدم حلّ قاعدة المطابقة المحدّدة (عدم التطابق).
القيمة الصالحة: ALLOW أو DENY
|
سلسلة | سماح | مطلوب |
العنصر <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>| تلقائي | لا ينطبق |
|---|---|
| التواجد في المنزل | اختياري |
| النوع | لا ينطبق |
السمات
| السمة | الوصف | النوع | تلقائي | التواجد في المنزل |
|---|---|---|---|---|
| إجراء |
الإجراء الذي يجب اتّخاذه (السماح بالوصول أو رفضه) في حال عدم حلّ قاعدة المطابقة المحدّدة (عدم التطابق) القيمة الصالحة: 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، عليك أن تكون قادرًا على الوثوق بصحة هذه العناوين، و/أو إعداد قواعد شاملة للرفض أو السماح لكي تتمكّن عناوين IP الموثوق بها فقط من استدعاء خادم وكيل لواجهة برمجة التطبيقات.
يعود عنوان 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.
مرجع الخطأ
يصف هذا القسم رموز الخطأ ورسائل الخطأ التي يتم عرضها ومتغيرات الأخطاء التي تم ضبطها من خلال Edge عندما تؤدي هذه السياسة إلى ظهور خطأ. من المهم معرفة هذه المعلومات إذا كنت تضع قواعد خطأ التعامل مع الأخطاء. للحصول على مزيد من المعلومات، يمكنك الاطّلاع على ما تحتاج إلى معرفته حول أخطاء السياسة والتعامل مع المعالجة والأخطاء.
أخطاء بيئة التشغيل
يمكن أن تحدث هذه الأخطاء عند تنفيذ السياسة.
| رمز الخطأ | رموز حالة HTTP | السبب | إصلاح |
|---|---|---|---|
accesscontrol.IPDeniedAccess |
403 | عنوان IP للعميل أو عنوان IP تم تمريره
في طلب واجهة برمجة التطبيقات، تتطابق مع عنوان IP المحدد في العنصر <SourceAddress> داخل
العنصر <MatchRule> من "سياسة التحكم في الوصول"، والسمة action
تم ضبط العنصر <MatchRule> على DENY. |
build |
متغيّرات الأخطاء
يتم ضبط هذه المتغيّرات عند حدوث خطأ في بيئة التشغيل. ولمزيد من المعلومات، يُرجى الاطّلاع على المتغيّرات الخاصة بأخطاء السياسات.
| المتغيرات | المكان | مثال |
|---|---|---|
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>