AccessControl politikası

Apigee Edge belgelerini görüntülüyorsunuz.
Apigee X belgelerine gidin.
bilgi

Ne?

Erişim kontrolü politikası, belirli IP adresleri tarafından API'lerinize erişime izin vermenizi veya erişimi reddetmenizi sağlar.

Video: Belirli IP adreslerinin API'lerinize erişmesine nasıl izin vereceğiniz veya erişimi nasıl engelleyeceğiniz hakkında daha fazla bilgi edinmek için kısa bir video izleyin.

Bu politikayı API proxy akışında herhangi bir yere ekleyebilirsiniz ancak büyük olasılıkla akışın başında ( Request / ProxyEndpoint / PreFlow) IP adreslerini kontrol etmek isteyeceksiniz. Bu kontrol, kimlik doğrulama veya kota kontrolünden önce yapılır.

Örnekler

Aşağıdaki IPv4 örneklerindeki maske değerleri, eşleşme kuralının erişime izin verirken veya erişimi reddederken dört sekizliden (8, 16, 24, 32 bit) hangilerini dikkate aldığını tanımlar. Varsayılan değer 32'dir. Daha fazla bilgi için öğe referansındaki mask özelliğine bakın.

198.51.100.1 adresini reddet

<AccessControl name="ACL">
  <IPRules noRuleMatchAction = "ALLOW">
    <MatchRule action = "DENY">
      <SourceAddress mask="32">198.51.100.1</SourceAddress>
    </MatchRule>
  </IPRules>
</AccessControl>

İstemci adresi 198.51.100.1'den gelen tüm istekleri reddet

Diğer tüm istemci adreslerinden gelen isteklere izin verilir.

Değişkenlerin kullanılmasını reddetme

<AccessControl name="ACL">
  <IPRules noRuleMatchAction = "ALLOW">
    <MatchRule action = "DENY">
      <SourceAddress mask="{kvm.mask.value}">{kvm.ip.value}</SourceAddress>
    </MatchRule>
    </IPRules>
</AccessControl>

Maskeleme ve IP'ler için değerleri depolamak üzere bir anahtar/değer eşlemesi (KVM) kullandığınızı varsayalım. Bu, API proxy'nizi güncellemeniz ve yeniden dağıtmanız gerekmeden çalışma zamanında IP'leri değiştirme ve maskeleme için kullanışlı bir yaklaşımdır. kvm.mask.value ve kvm.ip.value değerlerini içeren değişkenleri almak için KeyValueMapOperations politikasını kullanabilirsiniz (KVM'nizdeki maske ve IP değerlerini içeren KVM politikanızdaki değişkenlere bu adları verdiğinizi varsayarsak). Maske için 24, IP adresi için 198.51.100.1 değerlerini aldıysanız AccessControl politikası şu adresten gelen tüm istekleri reddeder: 198.51.100.*

Diğer tüm istemci adreslerine izin verilir.

198.51.100.* adresini reddet

<AccessControl name="ACL">
  <IPRules noRuleMatchAction = "ALLOW">
    <MatchRule action = "DENY">
      <SourceAddress mask="24">198.51.100.1</SourceAddress>
    </MatchRule>
    </IPRules>
</AccessControl>

İstemci adresi 198.51.100.* olan tüm istekleri reddet

Diğer tüm istemci adreslerinden gelen isteklere izin verilir.

198.51.*.*

<AccessControl name="ACL">
  <IPRules noRuleMatchAction = "ALLOW">
    <MatchRule action = "DENY">
       <SourceAddress mask="16">198.51.100.1</SourceAddress>
    </MatchRule>
  </IPRules>
</AccessControl>

İstemci adresi 198.51.*.*'dan gelen tüm istekleri reddet

Diğer tüm istemci adreslerinden gelen isteklere izin verilir.

198.51.100.* adresini reddet, 192.0.2.1 adresine izin ver

<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>

İstemci adresi 198.51.100.* olan tüm istekleri reddet ancak 192.0.2.1'e izin ver.

Diğer tüm istemci adreslerinden gelen isteklere izin verilir.

198.51.*.* adresine izin ver

<AccessControl name="ACL">
  <IPRules noRuleMatchAction = "DENY">
    <MatchRule action = "ALLOW">
      <SourceAddress mask="16">198.51.100.1</SourceAddress>
    </MatchRule>
  </IPRules>
</AccessControl>

198.51.*.* adresinden gelen tüm isteklere izin verin.

Diğer istemci adreslerinden gelen istekleri reddetme

Birden fazla IP'ye izin verme

<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>

İstemci adreslerinden gelen isteklere izin ver: 198.51.100.* 192.0.2.* 203.0.113.*

Diğer tüm adresleri reddedin.

Birden fazla IP'yi reddetme

<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>

İstemci adreslerinden gelen istekleri reddet: 198.51.100.* 192.0.2.* 203.0.113.*

Diğer tüm adreslere izin verin.

Birden fazla IP'ye izin verme, birden fazla IP'yi reddetme

<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.*.*

İzin verilenler listesinin bir alt kümesini reddetme: 198.51.100.* 192.0.2.* 203.0.113.*


Kullanım notları

Erişim denetimi politikası, API'lerinizi kötü amaçlı IP'lere karşı korumanın yanı sıra meşru IP erişimi üzerinde de kontrol sahibi olmanızı sağlar. Örneğin, yalnızca işletmenizin kontrolündeki bilgisayarların test ortamınızda kullanıma sunulan API'lere erişmesini istiyorsanız dahili ağınızın IP adresi aralığına izin verebilirsiniz. Evden çalışan geliştiriciler, VPN kullanarak bu API'lere erişebilir.

Erişim denetimi politikasının yapılandırılması ve uygulanması aşağıdaki adımları içerir:

  • Her biriyle ilişkili iki işlemden (İZİN VER veya REDDET) birini içeren bir grup eşleşme kuralı tanımlayın.
  • Her eşleşme kuralı için IP adresini (SourceAddress öğesi) belirtin.
  • Kuralların test edileceği sırayı belirtin.
  • Tüm eşleşme kuralları, belirtilen sırayla yürütülür. Bir kural eşleştiğinde ilgili işlem yürütülür ve sonraki eşleşme kuralları atlanır.
    • Aynı kural hem İZİN VER hem de REDDET işlemleriyle yapılandırılırsa sırayla ilk tanımlanan kural tetiklenir ve sonraki kural (diğer işlemle) atlanır.

Politika, hangi IP adresinin değerlendirileceğini nasıl seçer?

IP adresleri, bir istekte çeşitli kaynaklardan gelebilir. Örneğin, True-Client-IP ileti üstbilgisinde bir IP adresi, X-Forwarded-For üstbilgisinde ise bir veya daha fazla IP adresi bulunabilir. Bu bölümde, AccessControl politikasını değerlendirmesini istediğiniz tam IP adreslerini değerlendirecek şekilde nasıl yapılandıracağınız açıklanmaktadır.

AccessControl politikasının hangi IP adresinin değerlendirileceğine karar vermek için kullandığı mantık aşağıda verilmiştir:

1. True-Client-IP başlığı

Politika, önce True-Client-IP üstbilgisinde bir IP adresi olup olmadığını kontrol eder. Üstbilgi geçerli bir IP adresi içeriyorsa politika bu adresi değerlendirir.

2. X-Forwarded-For başlığı

True-Client-IP üstbilgisi yoksa veya <IgnoreTrueClientIPHeader> öğesini doğru olarak ayarladıysanız politika, X-Forwarded-For üstbilgisindeki IP adreslerini değerlendirir.

Edge, X-Forwarded-For üstbilgisini son harici TCP el sıkışmasından (ör. istemci IP'si veya yönlendirici) aldığı IP adresiyle otomatik olarak doldurur. Başlıkta birden fazla IP adresi varsa bu adresler, bir isteği işleyen sunucu zinciri olabilir. Ancak adres listesi, sahte bir IP adresi de içerebilir. Peki politika, hangi adreslerin değerlendirileceğini nasıl biliyor?

Politikanın hangi X-Forwarded-For adreslerini değerlendireceğini kuruluşunuzun yapılandırması ve politika yapılandırması belirler.

Öncelikle kuruluşunuzda feature.enableMultipleXForwardCheckForACL özelliğinin ayarlanıp ayarlanmadığını kontrol edin. Kontrol etmek için Get organization API'yi kullanabilirsiniz. Ardından:

  • Kuruluşunuzun mülk listesinde feature.enableMultipleXForwardCheckForACL simgesini görmüyorsanız ilgili mülk yanlış olarak ayarlanmıştır (varsayılan). Bu özellik false olarak ayarlandığında politika, üstbilgideki son adresi (izleme aracında görünür) değerlendirir. Bu adres, Edge'in son harici TCP el sıkışmasından aldığı IP adresidir.
  • Kuruluşunuzdaki feature.enableMultipleXForwardCheckForACL değeri true olarak ayarlanmışsa politikanın hangi IP adreslerini değerlendireceğini belirlemek için <ValidateBasedOn> öğesini yapılandırın.

feature.enableMultipleXForwardCheckForACL mülkünü değiştirme

Edge kuruluş yöneticileri, feature.enableMultipleXForwardCheckForACL özelliğini ayarlamak için Kuruluş özelliklerini güncelleme API'sini kullanabilir.

Aşağıdaki API örneği, Edge for Private Cloud'da özelliği ayarlar. Kuruluşunuzda başka özellikler ayarlanmışsa bunları da eklediğinizden emin olun. Aksi takdirde kaldırılırlar.

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>"

Özel bulut için Edge'de feature.enableMultipleXForwardCheckForACL özelliğinin değerini değiştirdikten sonra, Start/stop/restart individual components (Tek tek bileşenleri başlatma/durdurma/yeniden başlatma) bölümünde açıklandığı gibi ileti işlemcilerinizi yeniden başlatmanız gerekir.

Apigee Analytics'teki X-Forwarded-For boyutları

Edge Analytics, X-Forwarded-For üstbilgisinin değerini x_forwarded_for_ip boyutuna yazar. İsteği Edge'e gönderen istemci IP'sini belirlemek için ax_true_client_ip veya ax_resolved_client_ip boyutlarındaki değerleri kullanın. Daha fazla bilgi için Analytics metrikleri, boyutları ve filtreleri referansı başlıklı makaleyi inceleyin.

CIDR gösterimiyle IP maskeleme hakkında

CIDR gösterimi (Sınıfsız Alanlar Arası Yönlendirme), maskeleme yoluyla bir IP adresi aralığını belirtme yöntemidir. Hem IPv4 hem de IPv6 için geçerlidir. İşleyiş şekli şöyledir: Basitlik için örneklerimizde IPv4 kullanacağız.

IP adresleri, noktalarla ayrılmış sayı gruplarıdır. İkili sistemde her grup belirli sayıda bit (IPv4 için 8, IPv6 için 16) içerir. 198.51.100.1 IPv4 adresi ikili sistemde şu şekilde görünür:

11000110.00110011.01100100.00000001

Bu, 8 bitlik 4 grup veya toplam 32 bit anlamına gelir. CIDR ile, IP adresine /sayı (1-32) ekleyerek bir aralık belirtebilirsiniz. Örneğin:

198.51.100.1/24

Bu durumda, 24 sayısı bu politikadaki mask özelliği değeri için kullanacağınız sayıdır.

Bu gösterim, "İlk 24 biti olduğu gibi tutun, kalan bitler 0 ile 255 arasında herhangi bir değer olabilir." anlamına gelir. Örneğin:

Bunları olduğu gibi bırakın Son grup için olası değerler
198.51.100. 0 - 255

Maskenin üçüncü grubun sonunda gerçekleştiğine dikkat edin. Bu, işleri güzel ve düzenli hale getirir. Aslında 198.51.100.* gibi bir maske oluşturur. Çoğu durumda, 8'in (IPv4) ve 16'nın (IPv6) katlarını kullanmak istediğiniz maskeleme düzeyini sağlar:

IPv4: 8, 16, 24, 32

IPv6: 16, 32, 48, 64, 80, 96, 112, 128

Ancak daha ayrıntılı kontrol için başka sayılar da kullanabilirsiniz. Bu işlem biraz ikili hesaplama gerektirir. 198.51.100.1/30 örneğinde olduğu gibi 30 maskesi kullanılan bir örneği aşağıda bulabilirsiniz. Burada son 1, ikili sistemde 00000001'dir:

Bunları olduğu gibi bırakın Olası değerler
11000110.00110011.01100100.000000 (ilk 30 bit) 00000000, 00000001, 00000010 veya 00000011
198.51.100. 0, 1, 2 veya 3

Bu örnekte, yapılandırma <SourceAddress mask="30">198.51.100.1</SourceAddress> olarak ayarlandığında aşağıdaki IP'lere izin verilir (veya kurallarınıza bağlı olarak erişim engellenir):

  • 198.51.100.0
  • 198.51.100.1
  • 198.51.100.2
  • 198.51.100.3

Öğe referansı

Öğe referansı, erişim denetimi politikasının öğelerini ve özelliklerini açıklar.

<?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> özellikleri

<AccessControl async="false" continueOnError="false" enabled="true" name="Access-Control-1"> 

Aşağıdaki tabloda tüm politika üst öğelerinde ortak olan özellikler açıklanmaktadır:

Özellik Açıklama Varsayılan Varlık
name

Politikanın dahili adı. name özelliğinin değeri Harf, sayı, boşluk, kısa çizgi, alt çizgi ve nokta içermelidir. Bu değer, 255 karakteri aşmalıdır.

İsteğe bağlı olarak, politikayı<DisplayName> yönetim arayüzü proxy düzenleyicisinde farklı bir doğal dil adı kullanabilir.

Yok Zorunlu
continueOnError

Bir politika başarısız olduğunda hata döndürmesi için false olarak ayarlayın. Bu beklenen bir durumdur çoğu politika için geçerli olur.

Akış yürütmenin bir politikadan sonra bile devam etmesi için true olarak ayarlayın başarısız olur.

false İsteğe bağlı
enabled

Politikayı uygulamak için true olarak ayarlayın.

Politikayı devre dışı bırakmak için false değerine ayarlayın. Bu politika, bir akışa bağlı kalsa bile uygulanır.

true İsteğe bağlı
async

Bu özelliğin desteği sonlandırıldı.

false Kullanımdan kaldırıldı

&lt;DisplayName&gt; öğe

Politikayı name özelliğine ek olarak farklı bir doğal dil adına sahip yönetim arayüzü proxy düzenleyicisi.

<DisplayName>Policy Display Name</DisplayName>
Varsayılan

Yok

Bu öğeyi çıkarırsanız politikanın name özelliğinin değeri: kullanılır.

Varlık İsteğe bağlı
Tür Dize

<IgnoreTrueClientIPHeader> öğesi

Bu politika doğru olarak ayarlandığında True-Client-IP üstbilgisini yoksayar ve yapılandırdığınız X-Forwarded-For değerlendirme davranışına uygun olarak X-Forwarded-For üstbilgisindeki IP adreslerini değerlendirir.

<AccessControl async="false" continueOnError="false" enabled="true" name="Access-Control-1">
    <DisplayName>Access Control-1</DisplayName>
    <IgnoreTrueClientIPHeader>true</IgnoreTrueClientIPHeader>
    ...
</AccessControl>
Varsayılan yanlış
Varlık İsteğe bağlı
Tür Boole

<IPRules> öğesi

IP adreslerine izin veren veya IP adreslerini reddeden kuralları içeren üst öğe. noRuleMatchAction özelliği, eşleştirme kurallarınızın kapsamına girmeyen IP adreslerinin nasıl ele alınacağını tanımlamanıza olanak tanır.

<IPRules noRuleMatchAction = "ALLOW">
Varsayılan Yok
Varlık İsteğe bağlı
Tür Yok

Özellikler

Özellik Açıklama Tür Varsayılan Varlık
noRuleMatchAction
Belirtilen eşleşme kuralı çözümlenmezse (eşleşme yok) yapılacak işlem (erişime izin ver veya erişimi reddet).
Geçerli değer: ALLOW veya DENY
Dize İZİN VER Zorunlu

<IPRules>/<MatchRule> öğesi

IP adresi, tanımladığınız SourceAddress'lerle eşleşirse yapılacak işlem (erişime izin verme veya erişimi reddetme).

<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>
Varsayılan Yok
Varlık İsteğe bağlı
Tür Yok

Özellikler

Özellik Açıklama Tür Varsayılan Varlık
işlem

Belirtilen eşleşme kuralı çözümlenmezse (eşleşme yok) yapılacak işlem (erişime izin ver veya erişimi reddet).

Geçerli değer: ALLOW veya DENY

Dize İZİN VER Zorunlu

<IPRules>/<MatchRule>/<SourceAddress> öğesi

Bir istemcinin IP adresi aralığı.

Geçerli değer: Geçerli IP adresi (noktalı ondalık gösterim). Joker karakter davranışı için mask özelliğini kullanın.

<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>

Önceki örnekte gösterildiği gibi, SourceAddress öğesi mask özelliği veya IP adresi için mesaj şablonlarını da destekler. Bu, değerleri şu anda API proxy akışında bulunan değişkenleri kullanarak ayarlayabileceğiniz anlamına gelir.

Örneğin, bir IP adresini anahtar/değer eşlemesinde (KVM) saklayabilir ve KeyValueMapOperations politikası ile IP adresini alıp bir değişkene (ör. kvm.ip.value) atayabilirsiniz. Ardından, bu değişkeni IP adresi için kullanabilirsiniz:

<SourceAddress mask="24">{kvm.ip.value}</SourceAddress>

Maskeyi ve/veya IP adresini bir değişkenle ayarlamak, API proxy'nizi değiştirip yeniden dağıtmak zorunda kalmadan değerleri çalışma zamanında değiştirme esnekliği sağlar.

Varsayılan Yok
Varlık İsteğe bağlı
Tür Dize (yalnızca tek IP adresi)

Özellikler

Özellik Açıklama Tür Varsayılan Varlık
maske

mask özelliği, izin verilecek veya reddedilecek IP adresi aralığını belirtmek için kullanılır. Maske, CIDR gösterimi (Sınıfsız Alanlar Arası Yönlendirme) kullanmaya eşdeğerdir. Örneğin:

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

aşağıdaki CIDR gösterimine eşdeğerdir:

198.51.100.1/24

Geçerli değerler:

IPv4: 1-32

IPv6: 1-128

Sıfır (0) değeri yalnızca 0.0.0.0 IP'si için geçerlidir ve bu nedenle pratik değildir.

Maskeyi bir değişkenle ayarlama

mask özelliği, mesaj şablonlarını da destekler. Bu sayede, değeri şu anda API proxy akışında bulunan bir değişkenle ayarlayabilirsiniz. Örneğin, bir KVM'de maske değeri depolayabilir ve maskeyi alıp bir değişkene atamak için KeyValueMapOperations politikasını kullanabilirsiniz. Değişkenle IP maskesi ayarlamak için aşağıdaki biçimi kullanın. Değişkenin kvm.mask.value olarak adlandırıldığını varsayıyoruz:

mask="{kvm.mask.value}"

Tamsayı Yok Zorunlu

<ValidateBasedOn> öğesi

X-Forwarded-For HTTP üstbilgisi birden fazla IP adresi içerdiğinde, hangi IP adreslerinin değerlendirileceğini kontrol etmek için bu ValidateBasedOn öğesini kullanın.

Bu yaklaşımı, değerlendirmek istediğiniz IP adreslerinin geçerliliğinden eminseniz kullanın. Örneğin, X-Forwarded-For üstbilgisindeki tüm IP adreslerini değerlendirmeyi seçerseniz bu adreslerin geçerliliğine güvenebilmeniz ve/veya yalnızca güvenilen IP'lerin API proxy'nizi çağırmasına izin vermek için kapsamlı DENY (REDDET) veya ALLOW (İZİN VER) kuralları oluşturmanız gerekir.

Başlıktaki en soldaki IP adresi istemciye, en sağdaki ise isteği mevcut hizmete yönlendiren sunucuya aittir. En sağdaki veya son IP adresi, Edge'in son harici TCP el sıkışmasından aldığı adrestir.

Bu öğeye girdiğiniz değer, üstbilgideki tüm IP adreslerinin (varsayılan), yalnızca ilk IP adresinin veya yalnızca son IP adresinin kontrol edilip edilmeyeceğini belirlemenize olanak tanır.

<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>
Varsayılan X_FORWARDED_FOR_ALL_IP
Varlık İsteğe bağlı
Geçerli değerler

X_FORWARDED_FOR_ALL_IP (varsayılan)

X_FORWARDED_FOR_FIRST_IP

X_FORWARDED_FOR_LAST_IP

Şemalar

Her politika türü bir XML şeması (.xsd) ile tanımlanır. Referans olarak, politika şemaları GitHub'da mevcuttur.

Hata referansı

Bu bölümde, bu politika bir hatayı tetiklediğinde döndürülen hata kodları ve hata mesajlarının yanı sıra Edge tarafından ayarlanan hata değişkenleri açıklanmaktadır. Hata kuralları geliştirirken bu bilgilerin farkında olmanız önemlidir. hoşuma gitmesi için bir fırsattır. Daha fazla bilgi için Bilmeniz gerekenler Politika hataları ve Kullanım sorun.

Çalışma zamanı hataları

Bu hatalar, politika yürütüldüğünde ortaya çıkabilir.

Hata kodu HTTP durumu Neden Düzelt
accesscontrol.IPDeniedAccess 403 İstemci IP adresi veya iletilen IP adresi API isteğinde, <SourceAddress> Erişim Denetimi Politikası'nın <MatchRule> öğesi veaction <MatchRule> öğesi, DENY olarak ayarlandı.

Hata değişkenleri

Bu değişkenler, çalışma zamanı hatası oluştuğunda ayarlanır. Daha fazla bilgi için Politika hatalarına özel değişkenler bölümüne bakın.

Değişkenler Konum Örnek
fault.name="fault_name" fault_name, yukarıdaki Çalışma zamanı hataları tablosunda listelendiği gibi hatanın adıdır. Hata adı, hata kodunun son kısmıdır. fault.name Matches "IPDeniedAccess"
acl.policy_name.failed policy_name, hataya neden olan politikanın kullanıcı tarafından belirtilen adıdır. acl.AC-AllowAccess.failed = true

Örnek hata yanıtı

{
   "fault":{
     "faultstring":"Access Denied for client ip : 52.211.243.3"
      "detail":{
         "errorcode":"accesscontrol.IPDeniedAccess"
      }
   }
}

Örnek hata kuralı

<FaultRule name="IPDeniedAccess">
    <Step>
        <Name>AM-IPDeniedAccess</Name>
        <Condition>(fault.name Matches "IPDeniedAccess") </Condition>
    </Step>
    <Condition>(acl.failed = true) </Condition>
</FaultRule>