خط مشی AccessControl

شما در حال مشاهده اسناد 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) را مشخص کنید.
  • ترتیب آزمایش قوانین را مشخص کنید.
  • تمام قوانین مسابقه به ترتیب داده شده اجرا می شوند. هنگامی که یک قانون مطابقت دارد، عمل مربوطه اجرا می شود و قوانین مطابقت زیر حذف می شوند.
    • اگر همان قانون با هر دو عمل 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

نام داخلی سیاست. مقدار مشخصه name می تواند شامل حروف، اعداد، فاصله، خط تیره، زیرخط و نقطه باشد. این مقدار نمی تواند بیش از 255 کاراکتر باشد.

در صورت تمایل، از عنصر <DisplayName> برای برچسب گذاری خط مشی در ویرایشگر پروکسی UI مدیریت با نامی به زبان طبیعی دیگر استفاده کنید.

N/A مورد نیاز
continueOnError

برای بازگرداندن خطا در صورت شکست خط مشی، روی false تنظیم کنید. این رفتار مورد انتظار برای اکثر سیاست ها است.

روی true تنظیم کنید تا اجرای جریان حتی پس از شکست خط مشی ادامه یابد.

نادرست اختیاری
enabled

برای اجرای خط مشی روی true تنظیم کنید.

برای خاموش کردن خط مشی، روی false تنظیم کنید. این سیاست حتی اگر به یک جریان وابسته باشد اجرا نخواهد شد.

درست است اختیاری
async

این ویژگی منسوخ شده است.

نادرست منسوخ شده است

عنصر <DisplayName>

علاوه بر ویژگی name برای برچسب‌گذاری خط‌مشی در ویرایشگر پروکسی رابط کاربری مدیریت با نامی متفاوت و به زبان طبیعی، از آن استفاده کنید.

<DisplayName>Policy Display Name</DisplayName>
پیش فرض

N/A

اگر این عنصر را حذف کنید، از مقدار ویژگی name خط مشی استفاده می شود.

حضور اختیاری
تایپ کنید رشته

عنصر <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)

صفات

صفت توضیحات تایپ کنید پیش فرض حضور
ماسک

ویژگی mask راهی برای نشان دادن محدوده آدرس های IP برای مجاز یا رد کردن است. ماسک معادل استفاده از نماد CIDR (مسیریابی بین دامنه‌ای بدون کلاس) است. به عنوان مثال:

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

معادل نماد CIDR زیر است:

198.51.100.1/24

مقادیر معتبر:

IPv4: 1-32

IPv6: 1-128

مقدار صفر (0) فقط برای IP 0.0.0.0 معتبر است، بنابراین غیرعملی است.

ماسک را با یک متغیر تنظیم کنید

ویژگی mask از الگوهای پیام نیز پشتیبانی می کند، به این معنی که می توانید مقدار را با متغیری که در حال حاضر در جریان پروکسی API موجود است، تنظیم کنید. به عنوان مثال، می توانید یک مقدار ماسک را در یک KVM ذخیره کنید و از خط مشی KeyValueMapOperations برای بازیابی ماسک و اختصاص آن به یک متغیر استفاده کنید. برای تنظیم IP mask با متغیر، از فرمت زیر استفاده کنید، با فرض اینکه متغیر kvm.mask.value نام دارد:

mask="{kvm.mask.value}"

عدد صحیح 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
حضور اختیاری
مقادیر معتبر

X_FORWARDED_FOR_ALL_IP (پیش‌فرض)

X_FORWARDED_FOR_FIRST_IP

X_FORWARDED_FOR_LAST_IP

طرحواره ها

هر نوع خط مشی توسط یک طرح XML (xsd.) تعریف می شود. برای مرجع، طرح‌های خط‌مشی در GitHub در دسترس هستند.

مرجع خطا

این بخش کدهای خطا و پیام‌های خطایی را که برگردانده می‌شوند و متغیرهای خطا را که توسط Edge تنظیم می‌شوند، هنگامی که این خط‌مشی خطا را راه‌اندازی می‌کند، توضیح می‌دهد. این اطلاعات برای دانستن اینکه آیا در حال توسعه قوانین خطا برای رسیدگی به خطاها هستید، مهم است. برای کسب اطلاعات بیشتر، آنچه را که باید در مورد خطاهای خط مشی و مدیریت خطاها بدانید را ببینید.

خطاهای زمان اجرا

این خطاها ممکن است هنگام اجرای سیاست رخ دهند.

کد خطا وضعیت HTTP علت رفع کنید
accesscontrol.IPDeniedAccess 403 آدرس IP مشتری، یا یک آدرس IP ارسال شده در درخواست API، با یک آدرس IP مشخص شده در عنصر <SourceAddress> در عنصر <MatchRule> سیاست کنترل دسترسی مطابقت دارد و ویژگی action عنصر <MatchRule> تنظیم شده است. DENY .

متغیرهای خطا

این متغیرها زمانی تنظیم می شوند که یک خطای زمان اجرا رخ دهد. برای اطلاعات بیشتر، متغیرهای مخصوص خطاهای خط مشی را ببینید.

متغیرها کجا مثال
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>