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?

  • WS-Trust 1.3 uyumlu Security Token Service çağrılarını merkezi politikayla yönettiği için SOAP servislerinin kimlik doğrulamasını standartlaştırır.
  • Ortam bazlı kullanıcı adı/parola havuzlarını koşullara göre eşleştirerek operasyonel esneklik sağlar.
  • WS-Addressing üst bilgilerini (Action, To, ReplyTo vb.) tek noktadan yapılandırarak servis sağlayıcı çalışmalarını hızlandırır.
  • Token önbellekleme ve zaman damgası ayarlarıyla gereksiz STS trafiğini azaltır, gecikmeleri düşürür.

Ç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ü: WS Security STS Token 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. WS Security STS Token Doğrulaması: configureIssueToken ayarına göre ya tanımlı STS servis uç noktasına WS-Trust Issue isteği gönderilir ya da apiEndPointURL üzerinden harici token alınır; kullanıcı bilgileri ve WS-Addressing üst bilgileri isteğe enjekte edilir.
  4. Karar Verme:
    • Eşleşme Var: Token alınır, önbellek süresi dolmadıysa cache’den kullanılır, SOAP isteğine eklenir.
    • Eşleşme Yok: Token üretilemez; isteğin SOAP başlıkları değiştirilmez.
  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

  • Konfigürasyon Modu Seçimi: configureIssueToken ile STS tokenını Apinizer üzerinden üretme veya harici bir Endpoint çağırma seçeneklerini sunar.
  • SOAP Versiyon Desteği: SOAP 1.1 ve SOAP 1.2 arasında seçim yaparak servis uyumluluğunu garanti eder.
  • Token Servis Parametreleri: Token servis adı, port adı, WS-Trust 1.3 URL ve AppliesTo URL alanlarıyla STS entegrasyonunu detaylı yönetir.
  • 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

  • Token Önbellekleme ve Yenileme: tokenCachePeriod ve expirationPeriod ile token yenileme eşiğini belirleyip gereksiz STS çağrılarını engeller.
  • WS-Addressing Ayar Motoru: WSA Action, To, ReplyTo ve MessageId alanlarını app-soap-api-method-wsa-settings bileşeni üzerinden detaylı olarak yönetir.
  • Koşullu Kimlik Bilgisi Havuzu: Birden fazla kullanıcı adı/parolayı Query Builder koşulları ve ortam etiketleriyle ilişkilendirerek yanlış ortamda yanlış kimlik bilgisi kullanımını önler.
  • Export/Import Özelliği: Politika yapılandırmasını ZIP dosyası olarak export etme. Farklı ortamlara (Geliştirme, Test, Canlı Ortam) 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ç
Kurumsal SOAP Kimlik DoğrulamaKurumsal CRM, STS üzerinden token istemeden erişim reddediyorconfigureIssueToken=true, token servis bilgileri ve PasswordDigest seçimiSOAP isteği STS tokenı içerir, 200 döner
Ortam Bazlı STS AyırımıTest ve Canlı Ortam için farklı STS kullanıcıları varHer ortam için ayrı kullanıcı kaydı, Query Builder ile Header=X-Environment koşuluİstek doğru kimlik bilgisiyle STS’ye gider, erişim sağlanır
Harici STS DelegasyonuApinizer dışındaki STS’ye yönlendirme gerekiyorconfigureIssueToken=false, apiEndPointURL olarak harici URL girilirPolitika dış servis çağrısı yapar, tokenı SOAP başlığına ekler
WS-Addressing ZorunluluğuServis sağlayıcı WSA Action header’ı bekliyorWSA ayarlarında Action, To ve MessageId alanları doldurulurSTS isteği WSA ile uyumlu olur, entegrasyon hatasız tamamlanır
Token Önbellekleme İhtiyacıYüksek trafikli servis her çağrıda STS’e gitmemelitokenCachePeriod=300, expirationPeriod=5Token 5 dakika tekrar kullanılır, performans artar.
Çoklu Kimlik SağlayıcıPartner bazlı farklı kullanıcı bilgileri varKoşullu kullanıcı kaydı, partner header’ına göre seçimPartner’e göre doğru kimlik bilgisi kullanılır, yanlış token engellenir

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 WS Security Token Politikası Oluşturma

WS Security Token Politikası WS Security Token Politikası Detay

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 → WS Security Token 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_WSSTS
- 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: “Kurumsal STS token yönetimi”
- Maks. 1000 karakter.
- Politikanın amacını açıklayın.
Adım 3: STS Token Servis Yapılandırması- configureIssueToken açık ise Token Servis Adı, Port Adı, WS-Trust 1.3 URL ve AppliesTo URL alanlarını zorunlu doldurun.
- connectionTimeout ve tokenCachePeriod için saniye cinsinden değer girin (tokenCachePeriod ≥1).
- wsaMustUnderstand gerekiyorsa uygun değeri seçin.
Adım 4: Kimlik Bilgisi ve Parola Yönetimi- passwordType olarak PasswordText veya PasswordDigest seçin (PasswordDigest seçilince Nonce/Created otomatik aktif olur).
- STS kullanıcı listesinde her kayıt için Query Builder koşullarını ve ortam listesini belirleyin.
- Güvenlik için parolaları yalnızca gerekli ortamlarla eşleştirin.
Adım 5: WSA ve Zaman Damgası Ayarları- app-soap-api-method-wsa-settings bileşeninde WSA Action, To, ReplyTo vb. alanları doldurun.
- createdDateFormat ve expiresDateFormat alanlarını kurum standartlarına göre güncelleyin.
- expirationPeriod (dakika) ile token geçerlilik süresini tanımlayı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

Detaylar için bakabilirsiniz: Koşullar (Conditions)
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 STS kullanıcı kaydı 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
Eşzamanlı STS Yenileme Planı- Token süresi dolmadan expirationPeriod değeriyle yenileme pencereyi belirleyin.
- tokenCachePeriod ile cache süresini aşmadan yeni Issue isteği tetikleyin.
- Yoğun trafikte STS servisinin throttling limitlerini aşmamak için gecikme ekleyin.
Çoklu Koşullu Kimlik Havuzu- Query Builder’da partner, ortam veya IP koşulları oluşturun.
- Her koşul için farklı kullanıcı/parola eşleyin.
- Koşul uyuşmadığında varsayılan kaydın kullanılacağını unutmayın.
WSA Varsayılanlarının Otomasyonu- wsaAddDefaultAction ve wsaAddDefaultTo alanlarını aktif ederek boş Action/To değerlerini otomatik üretin.
- wsaGenerateMessageId kullanarak her çağrıda benzersiz MessageId oluşturun.
- Fault senaryolarında wsaFaultTo adresini doldurun.

Best Practices

Yapılması Gerekenler ve En İyi Uygulamalar

KategoriAçıklama / Öneriler
STS Endpoint TasarımıKötü: Tek bir STS URL’sini tüm ortamlarla paylaşmak
İyi: Ortam başına farklı URL tanımlamak
En İyi: configureIssueToken modunu ortam bazlı koşulla yönetmek
Kimlik Bilgisi YönetimiKötü: Parolaları manuel güncellemek
İyi: Ortam bazlı kullanıcı kayıtları oluşturmak
En İyi: Query Builder ile partner veya tenant bazlı koşullandırmak
WS-Addressing KullanımıKötü: Tüm çağrılarda varsayılan WSA değerlerini kullanmak
İyi: Zorunlu alanları doldurmak
En İyi: Servis gereksinimlerine göre Action/To/ReplyTo’yu dinamik planlamak
Token ÖnbelleklemeKötü: tokenCachePeriod=0 değerini bırakmak
İyi: STS limitlerine göre temel cache süresi tanımlamak
En İyi: Cache süresini expirationPeriod ile uyumlu tutup periyodik izlemek
Hata Mesajı YönetimiKötü: Genel 500 mesajı döndürmek
İyi: 403 ve 401 için açık mesajlar vermek
En İyi: Özel hata kodlarıyla tüketiciye yönlendirme yapmak.

Güvenlik En İyi Uygulamaları

Güvenlik AlanıAçıklama / Uyarılar
Kimlik Bilgisi SaklamaParolaları yalnızca politika ekranında tutun, dış sistemlerde kopyalamayın.
Şifreleme StandartlarıPasswordDigest tercih ederek replay saldırılarına karşı korunma sağlayın.
WS-Addressing DoğruluğuYanlış Action/To değerleri SOAP servisinde yetkisiz kanal açabilir, doğrulayın.
Token SüresiexpirationPeriod değerini gereksiz uzun tutmayın, çalınan token riskini artırır.
Hata Mesajı İçeriğiHata mesajlarında kullanıcı/parola bilgisi veya STS URL’si paylaşmayın.

Kaçınılması Gerekenler

KategoriAçıklama / Uyarılar
Hard-coded STS ParolalarıNeden kaçınılmalı: Kaynak kod sızıntısında kimlik bilgileri ifşa olur.
Alternatif: Parolaları yalnızca politika ekranında yönetin.
Sıfır Cache SüresiNeden kaçınılmalı: Her istekte STS çağrısı yaparak gecikme ve throttling riskini arttırır.
Alternatif: İhtiyaca göre tokenCachePeriod tanımlayın.
WSA Alanlarını Boş BırakmakNeden kaçınılmalı: Bazı servisler header eksikliği nedeniyle 500 döner.
Alternatif: Gereken WSA alanlarını servis dokümantasyonuna göre doldurun.
Tek Ortam Kimlik BilgisiNeden kaçınılmalı: Yanlış ortamda yanlış kimlik bilgisi kullanılabilir.
Alternatif: Her ortam için ayrı kullanıcı oluşturun, Query Builder ile koşullandırın.

Performans İpuçları

KriterÖneri / Etki
STS Çağrı FrekansıÖneri: tokenCachePeriod ≥ 120 saniye seçin.
Etki: STS trafik yükü ve gecikmeler azalır.
Bağlantı ZamanaşımıÖneri: connectionTimeout değerini STS SLA’sına göre ayarlayın.
Etki: Gereksiz bekleme olmadan hızlı hata tespiti yapılır.
Koşul DeğerlendirmeÖneri: Query Builder koşullarını minimal tutun.
Etki: Politika değerlendirme süresi kısalır.
WSA OtomasyonuÖneri: Gerekmeyen WSA alanlarını devre dışı bırakın.
Etki: Header serileştirme maliyeti düşer.
Token Yenileme PenceresiÖneri: expirationPeriod ile tokenCachePeriod arasında 1-2 dakikalık tampon bırakın.
Etki: Token yenileme çakışmaları azalır.

Sık Sorulan Sorular (SSS)

KategoriSoruCevap
GenelWS Security STS Token Politikası hangi API tipleriyle uyumlu?SOAP tabanlı ve WS-Trust 1.3 destekli servislerle uyumlu çalışır. REST çağrıları için uygun değildir.
GenelAynı politikayı birden fazla API Proxy (API Vekil Sunucusu) ile paylaşabilir miyim?Evet, global politika olarak deploy edildiğinde tüm uygun API Proxy (API Vekil Sunucusu) örnekleri tarafından kullanılabilir.
TeknikconfigureIssueToken=false ne yapar?Apinizer’da Issue isteği oluşturmak yerine tanımlı harici STS Endpoint’ine doğrudan SOAP çağrısı yapar.
TeknikPasswordDigest seçince Nonce/Created neden kilitleniyor?WS-Security standartları gereği Digest hesaplaması için Nonce ve Created alanları zorunludur, sistem otomatik olarak aktif eder.
KullanımOrtam bazlı kullanıcıyı nasıl seçerim?STS kullanıcı listesinde environmentIdList alanında ilgili ortamları seçin, gerekirse Query Builder ile ek koşul ekleyin.
KullanımToken süresi dolmadan yenilenmesini sağlayabilir miyim?expirationPeriod değerini gerçek süreye göre belirleyip tokenCachePeriod’u daha kısa tutarak token yenilemeyi kontrol edebilirsiniz.