AccessControl politikası

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

Ne

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

Video: API'lerinize belirli IP adresleri tarafından erişilmesine izin verme veya erişimi reddetme hakkında daha fazla bilgi edinmek için kısa videoyu izleyin.

Bu politikayı API proxy akışının herhangi bir yerine ekleyebilirsiniz ancak kimlik doğrulama veya kota kontrolünden önce bile IP adreslerini büyük olasılıkla akışın başında ( İstek / ProxyEndpoint / PreFlow) kontrol etmek istersiniz.

Sana Özel

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

Reddet 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 istemci adresinden gelen tüm istekleri reddet

Diğer istemci adreslerinden gelen isteklere izin verin.

Değişkenleri kullanarak 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 için anahtar/değer eşlemesi (KVM) kullandığınızı varsayalım. Bu, çalışma zamanında API proxy'nizi güncellemek ve yeniden dağıtmak zorunda kalmadan IP'leri değiştirmek ve maskelemek 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 KeyValueMapoperas politikasını kullanabilirsiniz (KVM politikanızda, KVM'nizdeki maske ve IP değerlerinin değerlerini içeren değişkenleri sizin adlandırdığınızı varsayarak). Aldığınız değerler maske için 24 ve IP adresi için 198.51.100.1 ise AccessControl politikası 198.51.100 adresinden gelen tüm istekleri reddeder.*

Diğer tüm istemci adreslerine izin verilir.

Reddet 198.51.100.*

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

Şu istemci adresinden gelen tüm istekleri reddet: 198.51.100.*

Diğer istemci adreslerinden gelen isteklere izin verin.

198.51.*.*

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

Şu istemci adresinden gelen tüm istekleri reddet: 198.51.*.*

Diğer istemci adreslerinden gelen isteklere izin verin.

Reddet 198.51.100.*, izin 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>

Şu istemci adresinden gelen tüm istekleri reddedin: 198.51.100.*, ancak 192.0.2.1'e izin verin.

Diğer istemci adreslerinden gelen isteklere izin verin.

198.51.*.* işlemine izin ver

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

Şu adresten gelen tüm isteklere izin ver: 198.51.*.*

Diğer istemci adreslerinden gelen istekleri reddedin.

Birden çok IP'ye izin ver

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

Şu istemci adreslerinden gelen isteklere izin ver: 198.51.100.* 192.0.2.* 203.0.113.*

Diğer tüm adresleri reddet.

Birden çok IP'yi reddet

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

Şu istemci adreslerinden gelen istekleri reddetme: 198.51.100.* 192.0.2.* 203.0.113.*

Diğer tüm adreslere izin verin.

Birden çok IP'ye izin ver, birden çok IP'yi reddet

<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 reddet: 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 geçerli IP erişimi üzerinde kontrol sahibi olmanızı da sağlar. Örneğin, test ortamınızda gösterilen API'lere yalnızca kuruluşunuzun kontrolü altındaki bilgisayarların 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 yürütülmesi aşağıdakileri içerir:

  • Her biriyle ilişkili iki işlemden birinin (İZİN VER veya REDDET) olduğu bir eşleşme kuralları grubu 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ı verilen sırada yürütülür. Bir kural eşleştiğinde ilgili işlem yürütülür ve aşağıdaki eşleşme kuralları atlanır.
    • Aynı kural hem İZİN VER hem de REDDET işlemleriyle yapılandırılmışsa ilk sırada tanımlanan kural tetiklenir ve sonraki kural (diğer işlemle) atlanır.

Politika değerlendirilecek IP adresini nasıl seçer?

Bir istekteki IP adresleri çeşitli kaynaklardan gelebilir. Örneğin, True-Client-IP ileti üstbilgisi bir IP adresi, X-Forwarded-For üstbilgisi ise bir veya daha fazla IP adresi içerebilir. Bu bölümde, değerlendirmesini istediğiniz tam IP adreslerini değerlendirmek için AccessControl politikasını 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 açıklanmıştır:

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

Politika ilk olarak True-Client-IP üstbilgisinde bir IP adresi olup olmadığını kontrol eder. Başlık geçerli bir IP adresi içeriyorsa politika bu adresi değerlendirir.

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

True-Client-IP üst bilgisi yoksa veya <IgnoreTrueClientIPHeader> öğesini true olarak ayarladıysanız politika, X-Forwarded-For üst bilgisindeki IP adreslerini değerlendirir.

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

Kuruluş yapılandırmanız ve politika yapılandırmanız, politikanın hangi X-Forwarded-For adreslerini değerlendireceğini belirler.

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

  • Kuruluşunuzun özellikler listesinde feature.enableMultipleXForwardCheckForACL öğesini görmüyorsanız bu özellik, false (varsayılan) olarak ayarlanmıştır. Bu özellik Yanlış değerine ayarlandığında politika, başlıktaki son adresi (İzleme aracında görünür) değerlendirir. Bu, Edge'in son harici TCP el sıkışmasından aldığı IP adresidir.
  • Kuruluşunuzdaki feature.enableMultipleXForwardCheckForACL doğru değerine ayarlanırsa politikanın hangi IP adreslerini değerlendirdiğini belirlemek için <ValidateBasedOn> öğesini yapılandırın.

feature.enableMultipleXForwardCheckForACL özelliğini 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'daki özelliği ayarlar. Kuruluşunuzda ayarlanmış başka mülkler varsa bunları da eklediğinizden emin olun. Aksi takdirde söz konusu bağlantılar kaldırılır.

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

Private Cloud için Edge'de, feature.enableMultipleXForwardCheckForACL özelliğinin değerini değiştirdikten sonra Bileşenleri ayrı ayrı başlatma/durdurma/yeniden başlatma bölümünde açıklandığı gibi mesaj işlemcilerinizi yeniden başlatmanız gerekir.

Apigee analizindeki X-Forwarded-For boyutları

Edge Analytics, X-Forwarded-For başlığının değerini x_forwarded_for_ip boyutuna yazar. Edge'e istekte bulunan 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österimi ile IP maskeleme hakkında

CIDR gösterimi (Sınıfsız Alanlar Arası Yönlendirme), maskeleme yoluyla bir IP adresi aralığını belirtmenin bir yoludur. Hem IPv4 hem de IPv6 için geçerlidir. İşleyişi aşağıdaki gibidir. Kolaylık sağlaması açısından, örneklerimizde IPv4 kullanacağız.

IP adresleri noktalarla ayrılmış sayı gruplarıdır. İkili program terimlerinde, her grup belirli bir bit sayısıdır (IPv4 için 8 ve IPv6 için 16). 198.51.100.1 IPv4 adresi ikili programda şöyle görünür:

11000110.00110011.01100100.00000001

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

198.51.100.1/24

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

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

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

Maske, üçüncü grubun sonunda olduğuna dikkat edin. Böylece her şey derli toplu hale gelir ve şöyle bir maske oluşturabilirsiniz: 198.51.100.*. Çoğu durumda 8'in (IPv4) ve 16'nın (IPv6) katlarını kullandığınızda istediğiniz maskeleme düzeyini elde edersiniz:

IPv4: 8, 16, 24, 32

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

Bununla birlikte, biraz ikili hesaplama gerektiren daha ayrıntılı kontrol için diğer sayıları kullanabilirsiniz. Aşağıda, 30'luk bir maskenin kullanıldığı 198.51.100.1/30 örneği verilmiştir. Buradaki son 1, ikili programda 00000001'dir:

Bunları olduğu gibi tut 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 reddedilir):

  • 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çerebilir. Bu değer 255 karakterden uzun olamaz.

İsteğe bağlı olarak, politikayı yönetim kullanıcı arayüzü proxy düzenleyicisinde farklı bir doğal dil adıyla etiketlemek için <DisplayName> öğesini kullanın.

Yok Gerekli
continueOnError

Bir politika başarısız olduğunda hata döndürülmesi için false olarak ayarlayın. Bu, çoğu politika için beklenen davranıştır.

Bir politika başarısız olduktan sonra bile akış yürütülmesinin devam etmesi için true değerine ayarlayın.

false İsteğe bağlı
enabled

Politikayı uygulamak için true değerine ayarlayın.

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

true İsteğe bağlı
async

Bu özellik kullanımdan kaldırıldı.

false Kullanımdan kaldırıldı

<DisplayName> öğesi

Politikayı, yönetim kullanıcı arayüzü proxy düzenleyicisinde farklı bir doğal dil adıyla etiketlemek için name özelliğine ek olarak kullanın.

<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

Bunu Doğru değerine ayarladığınızda politika, True-Client-IP üst bilgisini yok sayar ve yapılandırdığınız X-Forwarded-For değerlendirme davranışına göre 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 false
Varlık İsteğe bağlı
Tür Boole

<IPRules> öğesi

IP adreslerine izin veren veya bunları reddeden kuralları içeren üst öğe. noRuleMatchAction özelliği, eşleştirme kurallarınızın kapsamına girmeyen IP adreslerinin nasıl işleneceğini tanımlamanızı sağlar.

<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şmez) yapılacak işlem (erişime izin verme veya erişimi reddetme).
Geçerli değer: ALLOW veya DENY
Dize İZİN VER Gerekli

<IPRules>/<MatchRule> öğesi

IP adresi, tanımladığınız KaynakAdresler ile 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şmez) yapılacak işlem (erişime izin verme veya erişimi reddetme).

Geçerli değer: ALLOW veya DENY

Dize İZİN VER Gerekli

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

Bir istemcinin IP adresi aralığıdır.

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. Diğer bir deyişle, değerleri şu anda API proxy akışında bulunan değişkenleri kullanarak ayarlayabilirsiniz.

Örneğin, bir IP adresini anahtar/değer eşlemesinde (KVM) depolayabilir ve IP adresini alıp bir değişkene (kvm.ip.value gibi) atamak için KeyValueMapTransactions politikasını kullanabilirsiniz. Daha sonra bu değişkeni IP adresi için kullanabilirsiniz:

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

Maske ve/veya IP adresini bir değişkenle ayarlamak, API proxy'nizi değiştirmek ve 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ı belirtmenin bir yoludur. 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 IP 0.0.0.0 için geçerlidir, bu nedenle pratik değildir.

Maskeyi bir değişkenle ayarlama

mask özelliği, Mesaj şablonlarını da destekler. Böylece, değeri şu anda API proxy akışında bulunan bir değişkenle ayarlayabilirsiniz. Örneğin, bir maske değerini KVM'de depolayabilir ve maskeyi alıp bir değişkene atamak için KeyValueMapTransactions politikasını kullanabilirsiniz. IP maskesini değişkenle ayarlamak için, değişkenin kvm.mask.value olduğunu varsayarak aşağıdaki biçimi kullanın:

mask="{kvm.mask.value}"

Tamsayı Yok Gerekli

<ValidateBasedOn> öğesi

X-Forwarded-For HTTP üst bilgisi 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ı, yalnızca değerlendirmek istediğiniz IP adreslerinin geçerliliğinden eminseniz IP adreslerini değerlendirmek için 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 API proxy'nizi yalnızca güvenilir IP'lerin çağırmasına izin vermek için kapsamlı REDDET veya İZİN VER kuralları oluşturmanız gerekir.

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

Bu öğeye girdiğiniz değer, başlıktaki tüm IP adreslerini (varsayılan), yalnızca ilk IP adresini mi yoksa yalnızca son IP adresini mi kontrol edeceğinizi belirlemenizi sağlar.

<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 olması açısından, GitHub'da politika şemalarını kullanabilirsiniz.

Hata referansı

Bu bölümde, bu politika bir hatayı tetiklediğinde Edge tarafından ayarlanan hata kodları ile hata mesajları ve döndürülen hata mesajları ile Edge tarafından ayarlanan hata değişkenleri açıklanmaktadır. Bu bilgiyi, hataları ele almak için hata kuralları geliştirip geliştirmediğinizi bilmeniz önemlidir. Daha fazla bilgi için Politika hataları hakkında bilmeniz gerekenler ve Hataları işleme bölümlerine bakın.

Çalışma zamanı hataları

Politika yürütüldüğünde bu hatalar ortaya çıkabilir.

Hata kodu HTTP durumu Neden Düzelt
accesscontrol.IPDeniedAccess 403 İstemci IP adresi veya API isteğinde iletilen IP adresi, Erişim Denetimi Politikası'nın <MatchRule> öğesindeki <SourceAddress> öğesinde belirtilen bir IP adresiyle eşleşir ve <MatchRule> öğesinin action özelliği DENY olarak ayarlanır.

Hata değişkenleri

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

Değişkenler Konum Örnek
fault.name="fault_name" fault_name, yukarıdaki Çalışma zamanı hataları tablosunda listelenen 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

Hata yanıtı örneği

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

Hata kuralı örneği

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