Ana içeriğe atla
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:
KaynakKimlerAyar Ekranı
API ManagerYönetici / sistem kullanıcılarıSistem Ayarları > Log Ayarları > Login Log
API PortalPortal son kullanıcıları (geliştiriciler)Portal Ayarları > Login Log sekmesi
Her iki katman için de:
  • Log kaydının MongoDB’ye yazılıp yazılmayacağı ayarlanabilir.
  • Logların harici bir sisteme (konnektör) gönderilebilmesi için bir veya daha fazla bağlantı hedefi tanımlanabilir.

1. API Manager – Sistem Kullanıcısı Login Log

1.1 Nerede Yapılandırılır?

Sistem Ayarları → Log Ayarları → Login Log

1.2 Ekran Alanları

AlanAçıklama
Veritabanına KaydetAktif olduğunda login log kayıtları MongoDB persistent_audit_events koleksiyonuna yazılır.
Connector HedefleriLogin loglarının gönderileceği harici sistem bağlantılarının listesi.
Yönetim Konsolu giriş kayıtlarının görüntülenmesi için bkz. Giriş Kayıtları.

1.3 Konnektör Ekleme

  1. Login Log bölümündeki konnektör tablosunun sağ üst köşesindeki + butonuna tıklayın.
  2. Açılan pencerede ortam (environment) için daha önce tanımlanmış bir bağlantı yapılandırması (ConnectionConfig) seçin.
  3. Bağlantıyı Aktif/Pasif hale getirmek için toggle’ı kullanın.
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

OlayeventTypeAçıklama
Başarılı girişLOGIN_SUCCESSKullanıcı adı ve parola doğrulandı
Başarısız girişLOGIN_FAILUREHatalı kimlik bilgisi veya kilitli hesap
Çıkış (logout) olayı şu an için loglanmamaktadır.

1.5 Konnektöre Gönderilen JSON Formatı

{
  "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
}

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 API Portal Ayarlarında Login Log sekmesi: veritabanına kaydet ve konnektörlere gönder

2.2 Ekran Alanları

AlanAçıklama
Veritabanına KaydetAktif olduğunda login log kayıtları MongoDB portal_login_logs koleksiyonuna yazılır.
Connector HedefleriLogin loglarının gönderileceği harici sistem bağlantılarının listesi.
Portal login log ayarları portal başına bağımsızdır. Her portala ayrı konnektör tanımlanabilir.
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:
  1. Login Log sekmesindeki konnektör tablosunun + butonuna tıklayın.
  2. Uygun bağlantı yapılandırmasını seçin ve kaydedin.

2.4 Tetiklenen Olaylar

OlayloginStatus → eventTypeAçıklama
Başarılı girişSUCCESSLOGIN_SUCCESSPortal kullanıcısı giriş yaptı
Başarısız girişFAILURELOGIN_FAILUREHatalı kimlik bilgisi

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 TipiKullanım Amacı
ElasticsearchMerkezi log arama ve dashboarding (Kibana vb.)
Kafka / RabbitMQ / ActiveMQGerçek zamanlı event streaming / SIEM entegrasyonu
WebhookHerhangi bir REST endpoint’e HTTP POST
DatabaseHarici ilişkisel veritabanı (JDBC)
Syslog / GraylogGeleneksel syslog altyapısı

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ını Kapatma

Veritabanına Kaydet toggle’ı pasif yapıldığında Apinizer login log kayıtlarını MongoDB’ye yazmaz. Bu durumda loglar yalnızca tanımlı konnektörlere iletilir.
Hem Veritabanına Kaydet hem de tüm konnektörler pasif durumdaysa, login log kayıtları kaybolur. En az bir hedefin aktif olması önerilir.

6. İlgili Teknik Bileşenler (Geliştirici Referansı)

BileşenDosyaAçıklama
Manager entityGeneralSettings.javasaveLoginLogToDatabase, recipientLoginLogList alanları
Manager servisUserLoginService.logLoginAttempt()Login/failure olaylarını DB + konnektörlere yönlendirir
Portal entityPortalLoginLogSettings.javaPortal bazlı ayarlar, portal_login_log_settings koleksiyonu
Portal servisPortalLoginLogService.save()Portal login olaylarını DB + konnektörlere yönlendirir
Event formatıLoginLogConnectorEvent.javaKonnektöre gönderilen ortak JSON modeli
EnumEnumLoginLogSourceAPI_MANAGER / API_PORTAL

7. Bilinen Kısıtlar / Roadmap

  • Logout olayı loglanmıyor: Şu an için LOGIN_SUCCESS ve LOGIN_FAILURE event tipleri desteklenmektedir. Kullanıcı çıkışı (LOGOUT) henüz loglanmamaktadır.
  • Portal logout: Portal kullanıcısı çıkış yaptığında bu olay da loglanmamaktadır.
  • Kaynak kodu: UserLoginService.logout() ve portal logout akışı güncellenerek LOGOUT event tipi eklenebilir.