> ## Documentation Index
> Fetch the complete documentation index at: https://docs.apinizer.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Login Log Konnektör Yapılandırması

> Login denetim kayıtlarının MongoDB'ye yazılması ve Elasticsearch, Kafka, Webhook vb. konnektörlerle harici sistemlere iletilmesi. API Manager (sistem kullanıcıları) ve API Portal (portal kullanıcıları) için yapılandırma, olay tipleri ve JSON formatı.

<Info>
  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.
</Info>

## 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ı           | Sistem Ayarları > Log Ayarları > Login Log |
| **API Portal**  | Portal 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ı

| Alan                    | Açıklama                                                                                     |
| ----------------------- | -------------------------------------------------------------------------------------------- |
| **Veritabanına Kaydet** | Aktif olduğunda login log kayıtları MongoDB `persistent_audit_events` koleksiyonuna yazılır. |
| **Connector Hedefleri** | Login 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ı](/tr/admin/audit-compliance/giris-kayitlari).

### 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.

<Info>
  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.
</Info>

### 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 |

<Warning>
  Çıkış (logout) olayı şu an için loglanmamaktadır.
</Warning>

### 1.5 Konnektöre Gönderilen JSON Formatı

```json theme={null}
{
  "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ş

```json theme={null}
{
  "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`

<img src="https://mintcdn.com/apinizer/1yFCZZQUbO1Sf_g6/images/portal/portal-login-log-settings.png?fit=max&auto=format&n=1yFCZZQUbO1Sf_g6&q=85&s=538e9f86b0c605a8e96feb75cd91f75b" alt="API Portal Ayarlarında Login Log sekmesi: veritabanına kaydet ve konnektörlere gönder" width="1000" data-path="images/portal/portal-login-log-settings.png" />

### 2.2 Ekran Alanları

| Alan                    | Açıklama                                                                               |
| ----------------------- | -------------------------------------------------------------------------------------- |
| **Veritabanına Kaydet** | Aktif olduğunda login log kayıtları MongoDB `portal_login_logs` koleksiyonuna yazılır. |
| **Connector Hedefleri** | Login loglarının gönderileceği harici sistem bağlantılarının listesi.                  |

<Info>
  Portal login log ayarları **portal başına bağımsızdır**. Her portala ayrı konnektör tanımlanabilir.
</Info>

Portal giriş kayıtlarının görüntülenmesi ve filtreleme için bkz. [API Portal Giriş Kayıtları](/tr/api-portal/giris-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

| Olay            | loginStatus → eventType     | Açıklama                       |
| --------------- | --------------------------- | ------------------------------ |
| Başarılı giriş  | `SUCCESS` → `LOGIN_SUCCESS` | Portal kullanıcısı giriş yaptı |
| Başarısız giriş | `FAILURE` → `LOGIN_FAILURE` | Hatalı kimlik bilgisi          |

### 2.5 Konnektöre Gönderilen JSON Formatı

```json theme={null}
{
  "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ı                                        |

<Info>
  **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ı](/tr/operations/yonetici-kilavuzlari/apinizer-log-tablolari-olusturma-komutlari#login-log).
</Info>

***

## 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.

<Warning>
  Hem `Veritabanına Kaydet` hem de tüm konnektörler pasif durumdaysa, login log kayıtları **kaybolur**. En az bir hedefin aktif olması önerilir.
</Warning>

***

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

| Bileşen        | Dosya                                | Açıklama                                                      |
| -------------- | ------------------------------------ | ------------------------------------------------------------- |
| Manager entity | `GeneralSettings.java`               | `saveLoginLogToDatabase`, `recipientLoginLogList` alanları    |
| Manager servis | `UserLoginService.logLoginAttempt()` | Login/failure olaylarını DB + konnektörlere yönlendirir       |
| Portal entity  | `PortalLoginLogSettings.java`        | Portal bazlı ayarlar, `portal_login_log_settings` koleksiyonu |
| Portal servis  | `PortalLoginLogService.save()`       | Portal login olaylarını DB + konnektörlere yönlendirir        |
| Event formatı  | `LoginLogConnectorEvent.java`        | Konnektöre gönderilen ortak JSON modeli                       |
| Enum           | `EnumLoginLogSource`                 | `API_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.
