Token Servisi (Token Service)
Apinizer, yetkilendirme yapmanın yanı sıra bir kimlik sağlayıcı servis gibi de çalışabilmektedir. İstemciler, kimlik bilgileri ile Apinizer'ın token oluşturan servisini kullanılarak token üretebilirler. Üretilen token'ları mesajın içerisinde göndererek kendi kimlik bilgileri yerine bu token'lar aracılığı ile kimlik doğrulama ve yetkilendirme yapılmasını sağlayabilirler.
Apinizer iki ayrı düzlemde çalışır ve token uç noktaları API Gateway'e aittir:
- API Manager (yönetim/kontrol düzlemi). Tüm yapılandırmanın yapıldığı yönetimsel bileşen — API proxy'leri, kimlik bilgileri, politikalar, ayarlar. Management API ve APIops uç noktaları burada çalışır. Manager dışarıya açılmaz; yalnızca yöneticiler yapılandırma değişikliği için kullanır ve istek sıcak yolunda (hot path) değildir.
- API Gateway (veri düzlemi). Her API isteğini işleyen yüksek performanslı çalışma zamanı. Token uç noktaları burada çalışır, Manager'da değil. İstemci erişimine açıktır: istemci token almak için bunları çağırır, sonra o token ile proxy'lenen API'lere erişir. Gateway üretim trafiğini taşıdığından genellikle bir yük dengeleyici (load balancer) arkasına konur ve yatay ölçeklenir.
Kısaca: yapılandırma değişiklikleri Manager'a (APIops) gider; token alma ve API erişimi Gateway'e (token API) gider. İkisi bilinçli olarak ayrılmıştır — Manager özel ve yönetimsel kalır, token API ise istemciler tarafından erişilebilir.
Apinizer ile OAuth2 veya JWT token üretebilir, bu token'lar ile API Proxy'lerinizde güvenlik kontrolü yapabilirsiniz.
İstemci ile Apinizer arasındaki veri akışı aşağıdaki görselde basit olarak verilmiştir:
Apinizer, OAuth2 kimlik doğrulaması için üretilen token'ları kendi veri tabanında saklar ve performans için ayrıca önbelleğine alır.
JWT kimlik doğrulamasında ise Apinizer token doğrulaması için herhangi bir token depolama alanına ihtiyaç duymaz. Bunun yerine her ortam içerisindeki Worker'a ait RSA anahtarını saklar. JWT token'ın üretildiği RSA anahtarının kontrolü ile token doğrulanmış olur. Bu kontrol sadece token'ın Apinizer tarafından üretildiğini ve verilerin bozulmadığını ve değiştirilmediğini (üretildiği gibi olduğunu) doğrular. Politika bu doğrulamanın yanı sıra mesajın geldiği API Proxy bilgisine göre token içindeki "claim" değerlerini de kontrol eder.
Apinizer yeni bir yaklaşım ile anahtar değerin istemciye verilerek değil API çağrımı yaparak JWT token üretilmesini tercih eder.
JWT token değerinin üretimi için çoğu zaman anahtar değeri paylaşılsa da Apinizer bu noktada yeni bir yaklaşım ile API çağrımı yaparak JWT token üretmeyi tercih eder. Böylece anahtar kontrolü ve paylaşımı yerine token üretimini ve anahtar yönetimini istemciler için de kolay bir hale getirir. Bu yaklaşımda JWT token üretim API'sinde OAuth2'de istenen standart parametreler istenir ve benzer şekilde işlenir.
Jwt ile token alma ve Oauth2 ile token alma panelinin açıklamasını görüntülemek için Token Alma Yöntemleri sayfasını ziyaret edebilirsiniz.
JWT veya OAuth2 ile token alırken "Manage From This Policy"(Bu Politikadan Yönet) seçiliyse, CORS ve XFF ayarları API Proxy'nin "Settings" sekmesinden yapılandırdığınız bilgiler geçerli olacaktır.
Ancak bu seçenek işaretli değilse, "Credentials"(Kimlik Bilgileri) üzerinden yönetiliyorsa "Gateway Environments"(Ağ Geçidi Ortamı) içindeki Worker'a eklediğiniz CORS ve XFF ayarları geçerli olur. Bkz.
İlgili Sayfalar
- Token Sorgulama, İptali ve Keşif — Token geçerlilik sorgulama, iptal ve Discovery uç noktaları
- Gateway Token Uç Noktaları — Formal API referansı
- Token Alma Yöntemleri — OAuth2 ve JWT token alma örnekleri