Login Log Konnektör Yapılandırması
Bu özellik, kullanıcı giriş/çıkış olaylarının harici sistemlere (Elasticsearch, Kafka, Webhook vb.) konnektörler aracılığıyla iletilmesini sağlar. Kapsam API Manager (sistem kullanıcıları) ve API Portal (portal kullanıcıları) içindir.
Genel Bakış
Apinizer, kullanıcı giriş/çıkış olaylarını iki farklı katmanda izler:
| Kaynak | Kimler | Ayar Ekranı |
|---|---|---|
| API Manager | Yönetici / sistem kullanıcıları | SIEM ve Log Yönlendirme sayfası — SESSION hattı |
| API Portal | Portal son kullanıcıları (geliştiriciler) | Portal Ayarları > Login Log sekmesi |
Her iki katmanda da giriş kayıtları her zaman Apinizer veritabanına yazılır ve bu davranış kapatılamaz; buna ek olarak loglar harici bir sisteme (konnektör) de gönderilebilir — bunun için bir veya daha fazla bağlantı hedefi tanımlanır.
API Manager giriş kayıtlarının konnektör yapılandırması SIEM ve Log Yönlendirme sayfasına taşındı. Hedefler, olay tipi ve kapsam filtreleri, gizlilik profili ile boyut politikası oradan SESSION hattı üzerinden yönetilir. Bu sayfadaki olay tipleri ve JSON biçimi geçerliliğini korur.
1. API Manager – Sistem Kullanıcısı Login Log
1.1 Nerede Yapılandırılır?
Yönetim → Sistem Ayarları → SIEM ve Log Yönlendirme → Hedefler sekmesinde bir hedef tanımlanır ve hedefin Hat Kuralları bölümünde SESSION hattı açılır. Hattın yerel saklaması ve yetkisi Hatlar sekmesindeki SESSION satırından görüntülenir.
1.2 Ayarlar
| Ayar | Açıklama |
|---|---|
| Yerel saklama | Giriş kayıtları her zaman Apinizer veritabanına yazılır ve bu davranış kapatılamaz. |
| Hedefler | Giriş kayıtlarının gönderileceği bağlantıların listesi. SESSION hattı için kural tanımlanan her hedef bu kayıtları alır. |
| Kurallar | Olay tipi, sonuç ve kapsam filtreleriyle hangi giriş olaylarının gönderileceği belirlenir. Kurallar yalnızca hattın yetkisi ACTIVE olduğunda uygulanır. |
Yönetim Konsolu giriş kayıtlarının görüntülenmesi için bkz. Giriş Kayıtları.
1.3 Hedef Ekleme
- SIEM ve Log Yönlendirme sayfasının Hedefler sekmesinde Hedef Ekle butonuna tıklayın.
- Açılan pencerede ortam (environment) için daha önce tanımlanmış bir bağlantı yapılandırmasını konnektör olarak seçin.
- Hat Kuralları bölümünde
SESSIONiçin Bu hattı bu hedefe gönder anahtarını açın. - Hedefi Etkin bırakın ve kaydedin.
Konnektörler ortam (environment) bazlı tanımlanır. Bir bağlantı yapılandırması önce Bağlantı Yapılandırması ekranında oluşturulmuş ve ilgili ortama atanmış olmalıdır.
1.4 Tetiklenen Olaylar
| Olay | eventType | Açıklama |
|---|---|---|
| Başarılı giriş | LOGIN_SUCCESS | Kullanıcı adı ve parola doğrulandı |
| Başarısız giriş | LOGIN_FAILURE | Hatalı kimlik bilgisi veya kilitli hesap |
| Çıkış | LOGOUT | Kullanıcı Yönetim Konsolu'ndan çıkış yaptı |
| Token yenileme (proje değişimi) | TOKEN_REFRESH_SUCCESS | Oturum token'ı farklı bir proje için yenilendi |
| Token yenileme reddi | TOKEN_REFRESH_FAILURE | Kullanıcının istenen projede yetkisi yok (reasonCode=NO_PROJECT_PERMISSION) |
| Hesap kilitlendi | ACCOUNT_LOCKED | Çok sayıda başarısız denemeden sonra hesap kilitlendi |
| Parola değişti | PASSWORD_CHANGED | Kullanıcının parolası — kullanıcının kendisi ya da bir yönetici tarafından — değiştirildi |
| Parola değişikliği zorunlu | PASSWORD_CHANGE_REQUIRED | Kullanıcı, başka bir işlem yapmadan önce değiştirmesi gereken bir parolayla giriş yaptı |
| Parola politikası ihlali | PASSWORD_POLICY_VIOLATION | Bir parola, yapılandırılmış parola politikasına uymadığı için reddedildi |
Her olay ayrıca userAgent taşır; başarısız olaylarda makine tarafından okunabilir bir reasonCode bulunur. Alan ve neden kodu listesi için Giriş Kayıtları sayfasına bakın.
1.5 Konnektöre Gönderilen JSON Formatı
Aşağıdaki biçim LEGACY_RAW yük profilinin çıktısıdır; alan listesi dondurulmuştur ve değişmez. Kanonik zarf, ortak aktör/hedef blokları ve alan bazlı gizlilik uygulaması için hedefi APINIZER_JSON_V2 profiline geçirebilirsiniz; bkz. SIEM ve Log Yönlendirme.
{
"source": "API_MANAGER",
"principal": "kullanici.adi",
"email": null,
"displayName": null,
"eventDate": "2026-03-31T10:00:00Z",
"eventType": "LOGIN_SUCCESS",
"remoteAddress": "1.2.3.4",
"message": null,
"errorType": null,
"portalId": null,
"accountId": null
}
Graylog konnektörleri aynı olayı GELF mesajı olarak alır; kısa mesaj (short message)
LogLogin değeridir. Mesaja Ekle (Append to Message) açıkken yukarıdaki JSON gövdesi
GELF full_message alanına yazılır; Özniteliklere Ekle (Append to Attributes) açıkken
dolu olan her alan (source, principal, email, displayName, eventDate, eventType,
remoteAddress, message, errorType, portalId, accountId, userAgent, reasonCode,
targetProjectId) ayrı bir GELF additional field olarak gönderilir. Değeri null olan
alanlar additional field listesine eklenmez.
1.6 Örnek Başarısız Giriş
{
"source": "API_MANAGER",
"principal": "kullanici.adi",
"email": null,
"displayName": null,
"eventDate": "2026-03-31T10:01:00Z",
"eventType": "LOGIN_FAILURE",
"remoteAddress": "1.2.3.4",
"message": "Bad credentials",
"errorType": "org.springframework.security.authentication.BadCredentialsException",
"portalId": null,
"accountId": null
}
2. API Portal – Portal Kullanıcısı Login Log
2.1 Nerede Yapılandırılır?
Portal Yönetimi → [Portal Seçin] → Ayarlar → Login Log sekmesi

2.2 Ekran Alanları
| Alan | Açıklama |
|---|---|
| Connector Hedefleri | Login loglarının gönderileceği harici sistem bağlantılarının listesi. |
Portal login log kayıtları her zaman MongoDB portal_login_logs koleksiyonuna yazılır; bu davranış kapatılamaz. Portal login log ayarları portal başına bağımsızdır — her portala ayrı konnektör tanımlanabilir.
Bu konnektör listesi yalnızca SESSION hattının SIEM yetkisi LEGACY iken kullanılır. Bir yönetici SIEM ve Log Yönlendirme ekranından SESSION'ı ACTIVE'e çevirdiğinde, portal giriş/çıkış olayları — tüm portallar için birden — bunun yerine orada tanımlı kural ve hedeflerle iletilir ve bu liste artık kullanılmaz.
Portal giriş kayıtlarının görüntülenmesi ve filtreleme için bkz. API Portal Giriş Kayıtları.
2.3 Konnektör Ekleme
Adımlar API Manager ile aynıdır:
- Login Log sekmesindeki konnektör tablosunun
+butonuna tıklayın. - Uygun bağlantı yapılandırmasını seçin ve kaydedin.
2.4 Tetiklenen Olaylar
Portal on olay tipi üretir. İlk ikisi için konnektöre gönderilen eventType, mevcut konnektörlerin zaten beklediği değere çevrilir; diğer tüm tipler kendi adıyla, değiştirilmeden gönderilir:
| Olay | Konnektöre gönderilen eventType | Açıklama |
|---|---|---|
| Başarılı giriş | LOGIN_SUCCESS | Portal kullanıcısı giriş yaptı |
| Başarısız giriş | LOGIN_FAILURE | Hatalı kimlik bilgisi ya da girişin başka bir nedenle reddedilmesi (onay bekleyen, onaylanmamış, devre dışı, reddedilmiş ya da başka bir portala ait bir hesap) |
| Çıkış | PORTAL_LOGOUT | Portal kullanıcısı çıkış yaptı |
| Hesap kilitlendi | PORTAL_ACCOUNT_LOCKED | Hesap, çok sayıda başarısız giriş denemesinden sonra kilitlendi |
| Parola değişti | PORTAL_PASSWORD_CHANGED | Hesabın parolası değiştirildi — self-servis, yönetici tarafından, sıfırlama bağlantısıyla veya zorunlu/süresi dolmuş bir parolanın değiştirilmesi gerektiği için |
| Parola değişikliği zorunlu | PORTAL_PASSWORD_CHANGE_REQUIRED | Hesabın kullanılmadan önce parolasını değiştirmesi gerekiyor |
| Parola sıfırlama talep edildi | PORTAL_PASSWORD_RESET_REQUESTED | Hesap sahibi parola sıfırlama talep etti |
| Parola politikası ihlali | PORTAL_PASSWORD_POLICY_VIOLATION | Bir parola, portalin yapılandırılmış parola politikasına uymadığı için reddedildi |
| Hesap devre dışı bırakıldı | PORTAL_ACCOUNT_DISABLED | Hesap devre dışı bırakıldı — bugün yalnız inaktif-hesap görevi tarafından |
| Hesap kilidi açıldı | PORTAL_ACCOUNT_UNLOCKED | Bir yönetici hesabın kilidini açtı |
2.5 Konnektöre Gönderilen JSON Formatı
{
"source": "API_PORTAL",
"principal": null,
"email": "kullanici@example.com",
"displayName": "Ad Soyad",
"eventDate": "2026-03-31T10:05:00Z",
"eventType": "LOGIN_SUCCESS",
"remoteAddress": "5.6.7.8",
"message": null,
"errorType": null,
"portalId": "portal-abc123",
"accountId": "account-xyz789"
}
3. Desteklenen Konnektör Tipleri
Tüm Apinizer konnektör tipleri login log için kullanılabilir. Yaygın kullanım senaryoları:
| Konnektör Tipi | Kullanım Amacı |
|---|---|
| Elasticsearch | Merkezi log arama ve dashboarding (Kibana vb.) |
| Kafka / RabbitMQ / ActiveMQ | Gerçek zamanlı event streaming / SIEM entegrasyonu |
| Webhook | Herhangi bir REST endpoint'e HTTP POST |
| Database | Harici ilişkisel veritabanı (JDBC), log_LoginLog tablosuna yazar |
| Syslog / Graylog | Geleneksel syslog altyapısı |
Database konnektör tipi seçildiğinde login log kayıtları log_LoginLog tablosuna yazılır. Bu tablo otomatik oluşturulmaz — konnektörü etkinleştirmeden önce manuel olarak oluşturmanız gerekir. Desteklenen her veritabanı tipi (Oracle, MySQL/MariaDB, PostgreSQL, SQL Server) için CREATE TABLE komutları için bakınız: Apinizer Log Tabloları Oluşturma Komutları.
4. Birden Fazla Konnektör
Her iki kaynak (Manager ve Portal) için de birden fazla konnektör tanımlanabilir. Her konnektör bağımsız olarak Aktif/Pasif yapılabilir.
Bir konnektör pasif durumdayken log kaydı oluşsa dahi o konnektöre gönderim yapılmaz.
5. Veritabanı Kaydı
Login log kayıtları her iki katmanda da her zaman Apinizer veritabanına yazılır — Yönetim Konsolu kayıtları persistent_audit_event'e, portal kayıtları portal_login_logs'a. İkisi de kapatılamaz; yukarıda tanımlanan konnektör hedefleri, veritabanı yazımına ek olarak giden ikinci bir kopyadır, onun yerine geçmez.
6. Bilinen Kısıtlar / Roadmap
Şu anda bilinen bir kısıt yoktur.