Ana içeriğe atla
Bu doküman spesifik bir politikanın detaylı kullanımını anlatır. Eğer Apinizer politika yapısını ilk kez kullanıyorsanız veya politikaların genel çalışma prensiplerini öğrenmek istiyorsanız, öncelikle Politika Nedir? sayfasını okumanızı öneririz.

Genel Bakış

Amacı Nedir?

  • API Proxy (API Vekil Sunucusu) üzerinden geçen isteğin içeriğinin değiştirilmediğini garanti altına almak için dijital imzayı doğrular.
  • İsteğin gerçekten yetkili istemciden geldiğini kanıtlamak için imza üretiminde kullanılan anahtar veya sertifikayı kontrol eder.
  • Çoklu imza tanımı sayesinde farklı endpoint veya payload türleri için ayrı doğrulama kuralları uygulamaya imkan tanır.
  • İmza doğrulama algoritmasını dinamik olarak belirleyerek farklı imza formatlarıyla uyumluluk sağlar.

Çalışma Prensibi

  1. İstek Gelişi: API Gateway’e gelen her HTTP/HTTPS isteği için, istemin kaynak IP adresi tespit edilir.
  2. Politika Kontrolü: Dijital İmza Doğrulama politikası aktif ise, sistem aşağıdaki sırayla kontrol yapar:
    • Condition (koşul) tanımlı mı? Varsa koşul sağlanıyor mu?
    • Politika aktif mi (active=true)?
    • Variable kullanılıyor mu yoksa Apinizer default mı?
  3. Dijital İmza Doğrulama Kontrolü: Tanımlı her doğrulama girdisi için istekteki imza değişkeni alınır, seçilen algoritma (belirtilmiş veya değişkenden okunan) ile kaynak veri çözümlenir ve seçilen anahtar/sertifika ile imza doğrulanır. Girdi BASE64 veya HEX kodlamasına göre çözülür.
  4. Karar Verme:
    • Eşleşme Var: Tüm tanımlar için imza doğrulanır, istek işleme akışına devam eder.
    • Eşleşme Yok: Herhangi bir tanım başarısız olursa istek durdurulur, yapılandırılan hata mesajı döndürülür.
  5. Hata İşleme: Politika kuralına uymayan istekler için özelleştirilebilir HTTP durum kodu ve hata mesajı döndürülür.

Özellikler ve Yetenekler

Temel Özellikler

  • Çoklu İmza Tanımı Yönetimi: Farklı payload veya endpoint kombinasyonları için birden fazla dijital imza doğrulama girdisi tanımlanabilir; her girdi bağımsız parametrelerle çalışır.
  • Dinamik Algoritma Seçimi: İmza algoritması sabit değer olarak belirlenebilir veya istekteki değişkenlerden otomatik alınarak farklı imzalama stratejilerine uyum sağlanır.
  • Gizli Anahtar ve Sertifika Entegrasyonu: Secret Manager’dan Crypto Key veya sertifika seçilerek merkezi anahtar yönetimiyle uyumlu güvenlik sağlar.
  • Aktif/Pasif Durum Kontrolü: Politikanın aktif veya pasif durumunu kolayca değiştirme (active/passive toggle). Pasif durumda politika uygulanmaz ancak yapılandırması saklanır.
  • Koşul Bazlı Uygulama: Query Builder ile karmaşık koşullar oluşturarak politikanın ne zaman uygulanacağını belirleme (örn: sadece belirli endpoint’lere veya header değerlerine göre).

İleri Düzey Özellikler

  • Değişken Bazlı İmza Çözümleme: İmza ve kaynak veri, global değişken deposundan seçilerek runtime sırasında parametrik doğrulama yapılmasını sağlar.
  • Algoritma Keşfi: FIND modu, imza algoritmasını istek içeriğinden okuyarak aynı politika ile çok sayıda istemciyi destekler.
  • Revoked Sertifika Uyarısı: Liste ekranında iptal edilmiş sertifikalar kırmızı renkle belirtilir, geçersiz sertifikaların tekrar kullanılmasını engeller.
  • Export/Import Özelliği: Politika yapılandırmasını ZIP dosyası olarak export etme. Farklı ortamlara (Development, Test, Production) import etme. Versiyon kontrolü ve yedekleme imkanı.
  • Policy Group ve Proxy Group Desteği: Birden fazla politikayı Policy Group içinde yönetme. Proxy Group’lara toplu politika atama. Merkezi güncelleme ve deploy işlemleri.
  • Deploy ve Versiyonlama: Politika değişikliklerini canlı ortama deploy etme. Hangi API Proxy’lerde kullanıldığını görme (Policy Usage). Proxy Group ve Policy Group kullanım raporları.

Kullanım Senaryoları

SenaryoDurumÇözüm (Politika Uygulaması)Beklenen Davranış / Sonuç
REST JSON İsteği İmza DoğrulamaMobil uygulama istekleri JSON gövdesi ve Base64 imza taşıyorsourceVar=body.json, signatureVar=header.X-Signature, inputEncodingType=BASE64, signatureAlgorithm=SHA256withRSA, Crypto Key seçiliİstek yalnızca imza eşleşirse devam eder, aksi halde 403 döner
XML Doküman İmzalama KontrolüBPM sistemi SOAP/XML ile imzalı içerik gönderiyorsourceVar=body.xml, signatureVar=body.signature, inputEncodingType=HEXADECIMAL, signatureAlgorithm=SHA1withDSA, Sertifika seçiliXML dokümanı değiştirilirse politika isteği reddeder
Algoritmayı Header’dan AlmaBirden fazla algoritma kullanan müşteriler aynı endpoint’i çağırıyorsourceOfAlgorithm=FIND, signatureAlgorithmVar=header.X-Signature-Alg, signatureVar=header.X-Signature, sourceVar=body.rawHeader’da bildirilen algoritma ile imza doğrulanır, eksik/yanlışsa hata üretilir
Revoked Sertifika Denetimiİptal edilmiş sertifika ile imzalanan isteği engellemeSertifika listesinde revoked olarak işaretli kaydı seçmeden önce uyarı notu eklenir, güncel sertifika zorunlu kılınırİptal edilmiş sertifika ile gelen istekler 403 Forbidden döner
Çoklu Bölüm İmzalamaAynı istekte hem payload hem metadata imzalanıyorİki ayrı doğrulama tanımı oluşturulur; her biri farklı sourceVar ve signatureVar kullanırHer iki imza da doğrulanırsa istek geçer, biri hatalıysa engellenir
Harici Anahtar RotasyonuAnahtar rotasyon sürecinde eski ve yeni anahtarlar aynı anda kullanılacakİki tanım eklenir; biri eski Crypto Key, diğeri yeni Crypto Key ileGeçiş sürecinde her iki anahtar da kabul edilir, rotasyon sonrası eski tanım silinir
Performans İzleme (opsiyonel)Yoğun trafik altında doğrulama süresi ölçülmek isteniyorCondition ile belirli Header değerlerine sahip isteklerde politika aktif, Logging ile süre tutulurKritik işlemlerde doğrulama sürer, gereksiz isteklere uygulanmaz

Politika Parametrelerini Yapılandırma

Bu adımda, kullanıcı yeni bir politika oluşturabilir ya da mevcut politika parametrelerini yapılandırarak erişim kurallarını belirleyebilir. Tanımlanan parametreler, politikanın çalışma şeklini (örneğin hangi IP’lerin izinli olacağı, coğrafi kısıtlamalar, koşullu aktivasyonlar vb.) doğrudan etkiler. Bu sayede politika hem kuruma özel gereksinimlere göre özelleştirilebilir hem de merkezi olarak yönetilebilir.

Yeni Dijital İmza Doğrulama Politikası Oluşturma

Dijital İmza Doğrulama Politikası Yapılandırma

Yapılandırma Adımları

AdımAçıklama / İşlem
Adım 1: Oluşturma Sayfasına Gitme- Sol menüden Development → Global Settings → Global Policies → Dijital İmza Doğrulama Politikası bölümüne gidin.
- Sağ üstteki [+ Create] butonuna tıklayın.
Adım 2: Temel Bilgileri GirmePolicy Status (Politika Durumu): Aktif/Pasif durumu gösterir. Yeni politikalar varsayılan olarak aktiftir.

Name (İsim) Zorunlu:
Örnek: Production_DigitalSignVerify
- Benzersiz isim girin, boşlukla başlamaz.
- Sistem otomatik kontrol eder. Yeşil tik: kullanılabilir. Kırmızı çarpı: mevcut isim.

Description (Açıklama):
Örnek: “Mobil imzalı JSON isteği doğrulaması”
- Maks. 1000 karakter.
- Politikanın amacını açıklayın.
Adım 3: Dijital İmza Tanımlarını Oluşturma[+ Add Verification] ile modal açın.
- Signature Var: İmzanın bulunduğu değişkeni seçin.
- Source Var: İmzanın üretildiği ham veriyi temsil eden değişkeni seçin.
- Input Encoding Type: İmzanın BASE64 veya HEX olduğunu belirtin.
- Açıklama girerek tanımı gruplayın.
Adım 4: Algoritma ve Anahtar YapılandırmasıModal içinde Source of Algorithm alanını belirleyin.
- SPECIFY seçilirse algoritmayı listeden seçin.
- FIND seçilirse Signature Algorithm Var ile algoritmayı istekteki değişkenden okuyun.
- Key or Certificate bölümünde Crypto Key veya Sertifika modunu seçin; gerekirse yeni anahtar/sertifika oluşturma diyaloglarını kullanın.
Adım 5: Çoklu Tanım ve Öncelik Yönetimi- Birden fazla imza tanımı ekleyin.
- Tanımlar listedeki sırayla değerlendirilir.
- Her tanım için düzenleme/silme işlemleri aynı modal üzerinden yapılır.
- Öneri: Farklı endpoint’ler için anlamlı açıklamalar kullanın
Adım 6: Koşul Tanımlama (İsteğe Bağlı)- Condition sekmesine geçin.
- Koşullar, politikanın hangi durumda aktif olacağını belirler.

Örnekler:
- Ortam bazlı: Header = X-Environment, Operator = Equals, Value = production
- API Key bazlı: Header = X-API-Key, Starts With = PROD-
- Endpoint bazlı: Path = /api/admin/*

Koşul tanımlamazsa politika her zaman aktif

Adım 7: Hata Mesajı Özelleştirme (İsteğe Bağlı)- Error Message Customization sekmesine gidin.
- Erişim reddedildiğinde dönecek mesajı özelleştirin.

Varsayılan:
{ "statusCode": 403, "message": "[Default hata mesajı]" }

Özel:
{ "statusCode": 403, "errorCode": "[CUSTOM_ERROR_CODE]", "message": "[Özel mesaj]" }
Adım 8: Kaydetme- Sağ üstteki [Save] butonuna tıklayın.

Kontrol Listesi:
- Benzersiz isim
- Zorunlu alanlar dolu
- En az bir imza tanımı mevcut

Sonuç:
- Politika listeye eklenir.
- API’lere bağlanabilir.
- Global politikaysa otomatik uygulanır.
Koşullar ve Hata Mesajı Özelleştirme panellerinin açıklaması için Politika Nedir? sayfasındaki Koşullar ve Hata Mesajı Özelleştirme (Error Message Customization) bölümlerini inceleyebilirsiniz.

Politikayı Silme

Bu politikanın silme adımları ve kullanımdayken uygulanacak işlemler için Politika Yönetimi sayfasındaki Akıştan Politika Kaldırma bölümüne bakabilirsiniz.

Politikayı Dışa/İçe Aktarma

Bu politikanın dışa aktarma (Export) ve içe aktarma (Import) adımları için Export/Import sayfasına bakabilirsiniz.

Politikayı API’ye Bağlama

Bu politikanın API’lere nasıl bağlanacağına ilişkin süreç için Politika Yönetimi sayfasındaki Politikayı API’ye Bağlama bölümüne bakabilirsiniz.

İleri Düzey Özellikler

ÖzellikAçıklama ve Adımlar
Runtime Algoritma Seçimi- Source of Algorithm alanını FIND olarak ayarlayın.
- Algoritma değerini taşıyan değişkeni Signature Algorithm Var olarak seçin.
- Değişkenin istekte zorunlu olarak gönderildiğinden emin olun ve eksik durumda hata mesajı tanımlayın.
Anahtar/Sertifika Rotasyonu- Yeni ve eski anahtarlar için iki ayrı imza tanımı oluşturun.
- Condition sekmesinde tarih veya header bazlı kural tanımlayarak geçiş sürecini yönetin.
- Rotasyon tamamlandığında eski tanımı silerek politika listesini sadeleştirin.
Çoklu Payload Doğrulama- Her payload bölümü için ayrı sourceVar ve signatureVar seçin.
- Tanımları anlamlı açıklamalarla belgeleyin.
- Tanımların sırasını kontrol ederek kritik kontrolleri üstte konumlandırın.

Best Practices

Yapılması Gerekenler ve En İyi Uygulamalar

KategoriAçıklama / Öneriler
İsimlendirme StratejisiKötü: policy1
İyi: DigitalSignVerify_Prod
En İyi: DSV-Prod-CustomerPayload
Değişken KullanımıKötü: Hard-coded header isimleri
İyi: Önceden tanımlı değişkenleri kullanmak
En İyi: Dinamik değişkenleri Query Builder koşullarıyla doğrulamak
Algoritma YönetimiKötü: Tüm istemcilerde aynı algoritmayı varsaymak
İyi: Ana kullanılan algoritmayı SPECIFY ile tanımlamak
En İyi: FIND modu ile istemci bazlı algoritmaları desteklemek
Anahtar/Sertifika GüncellemeKötü: Sertifikayı manuel değiştirmek
İyi: Yeni sertifikayı tanımlayıp eskisini silmek
En İyi: Rotasyon sürecinde iki tanımı paralel çalıştırıp geçişten sonra temizlik yapmak
Hata Mesajı YönetimiKötü: Varsayılan mesajı olduğu gibi bırakmak
İyi: Hata kodunu belirtmek
En İyi: İzlenebilirlik için errorCode ve hedef log referansını eklemek

Güvenlik En İyi Uygulamaları

Güvenlik AlanıAçıklama / Uyarılar
Anahtar GizliliğiCrypto Key referanslarını sadece yetkili projelerle paylaşın; gereksiz erişimleri engelleyin.
Sertifika GeçerliliğiRevoked sertifikaları tekrar kullanmayın; liste ekranındaki kırmızı uyarılara dikkat edin.
Hata Mesajı İçeriğiSaldırganlara bilgi vermemek için hata mesajında algoritma veya anahtar detaylarını paylaşmayın.
Kayıt ve İzlemeBaşarısız doğrulama denemelerini SIEM sistemine yönlendirerek olası saldırıları erken tespit edin.
Koşullu AktifleştirmeKritik endpoint’ler için ek Condition kriterleri tanımlayarak gereksiz doğrulama yükünü azaltın, istek yüzeyini sınırlayın.

Kaçınılması Gerekenler

KategoriAçıklama / Uyarılar
Eksik İmza TanımıNeden kaçınılmalı: Tanım olmadan politika devreye girmez.
Alternatif: En az bir tanımı zorunlu alanları doldurarak ekleyin.
Yanlış Encoding SeçimiNeden kaçınılmalı: Base64/HEX uyumsuzluğu doğrulamayı bozar.
Alternatif: İmza sağlayıcısından alınan bilgiye göre encoding seçin.
Revoked Sertifika KullanımıNeden kaçınılmalı: Güvenlik riski oluşturur ve doğrulama başarısız olur.
Alternatif: Geçerli sertifikayı Secret Manager’dan seçin.
Koşulsuz Global EtkiNeden kaçınılmalı: Tüm trafiği gereksiz doğrulamaya zorlayarak performansı düşürür.
Alternatif: Condition ile sadece kritik endpoint veya istemcileri hedefleyin.

Performans İpuçları

KriterÖneri / Etki
Tanım SayısıÖneri: Benzer imza gereksinimlerini tek tanımda birleştirin.
Etki: Her istekte yapılan doğrulama sayısı azalır.
Algoritma KaynağıÖneri: Sabit algoritma kullanabiliyorsanız SPECIFY seçin.
Etki: FIND modundaki ek değişken çözümlemesini ortadan kaldırır.
Condition KullanımıÖneri: Sadece imzalanmış isteklerin geleceği endpoint’leri koşul ile hedefleyin.
Etki: Gereksiz doğrulama maliyetini düşürür.
Anahtar YönetimiÖneri: Aynı anahtarı birden fazla tanımda tekrar etmeyin, ortak senaryoları gruplayın.
Etki: Bellek kullanımını ve lookup süresini azaltır.
İzlemeÖneri: Başarısız doğrulama sayısını metrik olarak toplayın.
Etki: Performans anomalilerini ve saldırı girişimlerini erken tespit edersiniz.

Sık Sorulan Sorular (SSS)

KategoriSoruCevap
GenelFarklı endpoint’lerde farklı imza kuralları uygulayabilir miyim?Evet, her endpoint için ayrı Condition tanımlayıp uygun imza tanımlarını ekleyebilirsiniz.
GenelPolitika pasif olduğunda kayıtlı tanımlar silinir mi?Hayır, pasif moda alınca yapılandırma korunur ve yeniden etkinleştirildiğinde aynı ayarlarla çalışır.
Teknikİmza algoritmasını runtime’da belirleyemezsem ne olur?FIND seçili ancak değişken boşsa doğrulama başarısız olur ve özelleştirilmiş hata mesajı döner; SPECIFY moduna geçebilirsiniz.
TeknikSertifika yenilendiğinde politikayı nasıl güncellerim?Yeni sertifikayı Secret Manager’a ekleyip tanımda sertifika referansını güncelleyin veya paralel tanım ekleyerek kesintisiz geçiş yapın.
KullanımAynı politika hem global hem local kullanılabilir mi?Global politikayı localize ederek kopyalayabilirsiniz; local kopya sadece seçili API’de görünür.
Kullanımİmza başarılı olsa bile özel HTTP kodu döndürebilir miyim?Evet, Error Message Customization sekmesinde varsayılan yanıtı değiştirerek farklı statusCode veya payload tanımlayabilirsiniz.