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?

  • Plain Text Authentication başlığı taşıyan istekleri değerlendirerek, API Proxy (API Vekil Sunucusu) katmanında merkezi kimlik doğrulaması sağlar.
  • Kurumsal kimlik servisleri (Database, LDAP, API, Secret Manager) ile entegre olup erişim politikasını kod değişikliği olmaksızın yönetilebilir hale getirir.
  • Rol tabanlı yetkilendirme ve header enjeksiyonu ile uygulama katmanına gerekli kullanıcı/rol bilgisini güvenli şekilde aktarır.
  • Hata mesajı özelleştirmesi ve koşul bazlı etkinleştirme sayesinde farklı endpoint veya ortam senaryoları için esnek davranış sunar.

Ç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ü: Plain Text Authentication 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. Kimlik Bilgisi Doğrulama: Authorization header’daki Plain Text kimlik bilgisi çözülür, seçilen kimlik sağlayıcı (Database/LDAP/API/Secret Manager) üzerinden kullanıcı adı ve opsiyonel olarak parola kontrol edilir; gerekirse kayıtlı IP adresi eşleştirilir.
  4. Karar Verme:
    • Eşleşme Var: Kullanıcı yetkilendirme kurallarıyla uyuşur, isteğe kullanıcı/rol header’ları eklenir, backend’e yönlendirilir.
    • Eşleşme Yok: Yetkilendirme başarısız olur, politika hata mesajı tetiklenir, isteğe izin verilmez.
  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

  • Kimlik Sağlayıcı Esnekliği: Database, LDAP, harici API veya Secret Manager tabanlı kimlik servisleriyle çalışır; seçilen kaynak değiştiğinde politika otomatik güncellenir.
  • Kimlik Bilgisi Değişkenleri Yönetimi: Kullanıcı adı ve parola için proje değişkenlerini bağlayarak gizli değerleri merkezi olarak yönetir.
  • Header Yönetimi: Doğrulanan kullanıcıyı X-Authenticated-UserId gibi özelleştirilebilir başlıklara ekler veya upstream’e geçmeden Authorization header’ını temizler.
  • 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

  • Rol Bazlı Yetkilendirme: Rol gruplarını seçerek ALL/ANY mantığıyla kullanıcı erişimini sınırlar, isteğe rol listesi header’ı ekler.
  • Metot Bazında Yetki Kuralları: API metodları bazında rol setleri ve yetkilendirme tipi tanımlayarak hassas endpoint’lere daha sıkı kontrol uygular.
  • Secret Manager Entegrasyonu: Secret Manager seçildiğinde IP kontrolü ve otomatik değişken eşleşmesiyle sıfır kodlu güvenlik sağlar.
  • 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ç
Üretim LDAP DoğrulamasıKurumsal LDAP ile giriş yapan kullanıcıları doğrulama ihtiyacıAuthentication provider olarak LDAP seçilir, checkPassword aktif edilir, roller LDAP üzerinden çekilir.Geçerli kullanıcı/şifre kombinasyonu olmayan istekler 401 döner, başarılı olanlar yetkili ise 200 alır.
Secret Manager ile Makine HesaplarıMakine-makine entegrasyonunda paylaşılan sırlar Secret Manager’da saklanıyorenumPolicyAuthenticationType SECRET_MANAGER, username/password değişkenleri otomatik çekilir, checkClientIpAddress aktif edilir.Yanlış IP’den gelen veya eşlenmemiş sır kullanan istekler 403 ile reddedilir.
Database Kullanıcı HavuzuUygulama veritabanında tutulan kullanıcı listesiyle doğrulamaDatabase provider seçilir, rol tabloları bağlanır, addRolesToHeader aktif edilir.Backend servisleri header üstünden rol bilgisine erişerek yetkilendirme yapar.
Harici API ile Kimlik KontrolüKimlik doğrulaması üçüncü taraf REST servisine devredilmişAPI provider seçilir, servis endpoint’i tanımlanır, başarısız cevaplar için özel hata mesajı düzenlenir.Harici API “fail” dönerse politika 401 yanıtlar, başarılı ise header’lara kullanıcı ID eklenir.
Rol Bazlı Yetki ModülüBelirli endpoint’lere sadece belirtilen roller erişsinAuthorization modülü açılır, rol setleri ve ALL şartı atanır, yetkisiz mesaj özelleştirilir.Gerekli role sahip olmayan kullanıcılara 403 ve özel mesaj döner.
Metot Özel Yetki/admin/* metodları sadece belirli role açıkMethod Access aktif edilir, ilgili API metodlarına rol listesi bağlanır.Sadece tanımlanan rol listesine sahip kullanıcılar metodu çağırabilir.
API Proxy Grubunda Standartlaştırma (opsiyonel)Aynı güvenlik politikasını çoklu API Proxy üzerinde uygulamaPolitika Policy Group’a eklenir, Proxy Group’a bağlanır, merkezi deploy yapılır.Tüm bağlı API Proxy örnekleri aynı Plain Text Authentication kuralını kullanır.

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 Plain Text Authentication Politikası Oluşturma

Plain Text Authentication Politikası

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 → Plain Text Authentication 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_PlainTextAuth
- 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: “Üretim servisi için Plain Text Authentication kuralı”
- Maks. 1000 karakter.
- Politikanın amacını açıklayın.
Adım 3: Kimlik Sağlayıcıyı SeçmeIdentity Role Group:
- -Select butonuyla Database, LDAP, Secret Manager veya harici API sağlayıcısını seçin.
- Seçimi temizlemek için çarpı butonunu kullanın.
- Secret Manager seçildiğinde politika otomatik olarak bu kaynağa bağlanır.
Adım 4: Kimlik Bilgisi Değişkenlerini AtamaUsername Variable: Proje değişkenlerinden kullanıcı adı girdisini bağlayın. Güncelle veya farklı değişken seç seçenekleriyle değişiklik yapın.

Password Variable: checkPassword işaretliyse zorunlu olur; seçilen değişken gizli değeri tutar.
Adım 5: İstek İşleme SeçenekleriCheck Password: Kapalıysa sadece kullanıcı adı doğrulanır, parolaya bakılmaz.

Check Client IP Address: Secret Manager senaryolarında IP eşlemesini zorlar.

Clear Authorization Header: Doğrulama sonrası Authorization header’ını target servise iletmeden temizler.

Add User To Header: Kullanıcı adını X-Authenticated-UserId (değiştirilebilir) başlığıyla iletir.
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 kimlik sağlayıcı seçilmiş.

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
Secret Manager Tabanlı Doğrulama- Secret Manager seçildiğinde kimlik bilgileri otomatik eşlenir.
- checkClientIpAddress ile token başına IP sınırı uygulanır.
- Şifre rotasyonu yapıldığında politika otomatik güncellenir.
Hybrid Yetkilendirme Yapısı- Authentication kaynağı ile Authorization kaynağı farklı seçilebilir (ör: LDAP + Database).
- Ayrı provider seçimi Authorization Configuration bileşeninden yapılır.
- Roller MultiSelect ile tanımlanır, ALL/ANY seçicisi uygulanır.
Metot Bazlı Kısıtlama Motoru- enableMethodAccess aktif edildiğinde API metodları listelenir.
- Her metod için rol listesi ve yetkilendirme tipi atanır.
- Reverse Proxy dışındaki API Proxy modlarında istek bazlı kurallar uygulanır.

Best Practices

Yapılması Gerekenler ve En İyi Uygulamalar

KategoriAçıklama / Öneriler
Kimlik Sağlayıcı SeçimiKötü: Tüm politikaları tek bir Secret Manager hesabına bağlamak.
İyi: Uygulama tipine göre Secret Manager veya LDAP seçmek.
En İyi: Her ortam için ayrı provider kullanıp erişim izinlerini kısıtlamak.
Değişken YönetimiKötü: Username/password değişkenlerini manuel eşlemek.
İyi: Varsayılan proje değişkenlerini kullanmak.
En İyi: Secret Manager senaryosunda değişkenleri per API Proxy olacak şekilde versiyonlamak.
Header KullanımıKötü: Kullanıcı bilgilerini varsayılan header adlarında bırakmak.
İyi: Header adını tüketici uygulamalara göre güncellemek.
En İyi: Rol ve kullanıcı header’larını TLS altındaki güvenli kanalda taşımak, log’larda maskelemek.
Authorization KurgusuKötü: Rol tablosunu boş bırakıp sadece kimlik doğrulamaya güvenmek.
İyi: Temel rol setlerini ALL kuralıyla tanımlamak.
En İyi: Method Access’i aktif edip hassas metotlara ayrı rol listesi atamak.
Politika Yaşam DöngüsüKötü: Üretim değişikliklerini direkt canlıda yapmak.
İyi: Test ortamında aynı politikayı localize edip denemek.
En İyi: Export/Import ile sürüm oluşturup Deploy sonrası kullanım raporlarını izlemek.

Güvenlik En İyi Uygulamaları

Güvenlik AlanıAçıklama / Uyarılar
Credential YönetimiKimlik bilgilerini sadece Secret Manager veya şifreli değişkenlerde saklayın; politika ekranına düz metin değer girmeyin.
Header Hijacking ÖnlemleriaddUserToHeader aktifse backend tarafında header doğrulaması yapın, client manipülasyonuna karşı reverse proxy’de header overwrite’i kapatın.
Yetkilendirme KonsolidasyonuAuthorization modülü açıldığında roller ve method kuralları güncel tutulmazsa %100 yetki dışı erişim riski doğar; düzenli audit yapın.
IP KısıtlamasıSecret Manager IP doğrulaması sadece güvenilen kaynak IP’lerini kabul eder; değişiklik öncesi whitelist güncelleyin.
Hata Mesajı Hijyeni401/403 cevaplarında kullanıcıya spesifik bilgi vermeyin; hata mesajlarını genel bırakın, ayrıntıyı loglarda tutun.

Kaçınılması Gerekenler

KategoriAçıklama / Uyarılar
Yanlış Provider SeçimiNeden kaçınılmalı: LDAP yerine Database seçmek kimlik verisindeki field farklarından dolayı başarısız doğrulama üretir.
Alternatif: Provider seçmeden önce kullanıcı kaynağını doğrulayın.
Değişkensiz Parola KontrolüNeden kaçınılmalı: checkPassword açıkken parola değişkeni boş ise politika her isteği reddeder.
Alternatif: Parola değişkenini zorunlu alan kontrolüyle eşleştirin.
Header Temizlemeyi AtlamakNeden kaçınılmalı: Authorization header’ın backend’e iletilmesi güvenlik açığı yaratabilir.
Alternatif: clearAuth seçeneğini aktif kullanın.
Global Değişiklikleri Doğrudan Deploy EtmekNeden kaçınılmalı: Çoklu API Proxy aynı anda etkilenir, servis kesintisi doğabilir.
Alternatif: Önce lokalize edip test edin, sonra global politikayı güncelleyin.

Performans İpuçları

KriterÖneri / Etki
Kimlik Kaynağı Yanıt SüresiÖneri: LDAP/Database sorgularında indeksleri optimize edin.
Etki: Doğrulama süresi kısalır, Gateway bekleme süresi azalır.
Secret Manager ÇağrılarıÖneri: Secret Manager yanıtlarını Cache mekanizmasıyla kısa süreli saklayın.
Etki: Tekrarlayan kimlik doğrulamalarında latency düşer.
Harici API KullanımıÖneri: Harici kimlik API’sine Timeout ve Retry limitleri ekleyin.
Etki: Uzun süren çağrılar Gateway thread’lerini bloke etmez.
Rol Listesi BoyutuÖneri: Gereksiz rol atamalarını azaltın, MultiSelect listesini temiz tutun.
Etki: Authorization kontrolü daha hızlı çalışır, hafıza kullanımı azalır.
Method Access YoğunluğuÖneri: Sık kullanılan endpoint’ler için method bazlı kuralları gruplayın, gerekmeyen metodlarda kapatın.
Etki: Policy değerlendirme süresi kısalır, CPU yükü düşer.

Sık Sorulan Sorular (SSS)

KategoriSoruCevap
GenelPlain Text Authentication politikası hangi senaryolarda tercih edilmeli?Basit kullanıcı adı/parola doğrulamasının yeterli olduğu, uygulama katmanına minimum değişiklikle güvenlik eklemek istediğiniz tüm API Proxy akışlarında kullanılabilir.
GenelclearAuth seçeneği ne işe yarar?Doğrulama tamamlandıktan sonra Authorization header’ını backend’e iletmeden temizler; böylece hassas bilgiler servisler arasında dolaşmaz.
TeknikParola kontrolünü kapatırsam ne olur?Gateway sadece kullanıcı adını doğrular; parola doğrulanmadığı için hesap kilidi veya brute-force kontrolleri devre dışı kalabilir.
TeknikSecret Manager senaryosunda IP denetimi nasıl çalışır?Token veya değişkenle birlikte kayıtlı IP listesi kontrol edilir; IP eşleşmezse politika 403 döndürür.
KullanımKullanıcı bilgisi header adını değiştirebilir miyim?addUserToHeader etkinleştirildiğinde userHeaderName alanından istediğiniz header adını belirleyebilirsiniz.
KullanımRol bazlı yetkilendirmeyi aktif ettiğimde mevcut API Proxy’lere etkisi ne olur?Politika bağlı olduğu tüm API Proxy akışlarında gelen isteğin rol listesini kontrol eder; koşullara uymayan istekler 403 döner, loglarda detay görülür.