# Onox SSO Plugin for Roundcube

ONOXSOFT panelinden Roundcube'a single-click login sağlayan plugin.

## Kurulum

```bash
# AlmaLinux 9 / Rocky 9 örneği
sudo cp -r roundcube-onox-sso /usr/share/roundcubemail/plugins/onox_sso
sudo chown -R apache:apache /usr/share/roundcubemail/plugins/onox_sso

# config.inc.php'ye ekle
sudo tee -a /etc/roundcubemail/config.inc.php <<EOF
\$config['plugins'][] = 'onox_sso';
\$config['onox_sso_redis_url'] = 'tcp://127.0.0.1:6379';
EOF

# Apache reload
sudo systemctl reload httpd
```

## Akış

1. Müşteri panel'de "Webmail Aç" butonuna tıklar
2. Panel `WebmailSsoService::generateLoginToken()` çağrılır
3. 32-hex token üretilir, Redis'e 5dk TTL ile yazılır:
   ```
   onox:webmail-sso:{token} → {"email":"user@domain.com","password":"...","expires_at":...}
   ```
4. Roundcube URL: `https://webmail.example.com/?_user=user@domain.com&_token={token}`
5. Plugin URL'yi yakalar → Redis'ten token doğrular + siler (single-use) → login flow başlat
6. 5 dakika içinde tıklanmazsa token expire olur

## Güvenlik

- **Single-use**: token tüketildikten sonra silinir, replay yapılamaz
- **5dk TTL**: çalınsa bile kısa pencere
- **Token regex**: 32 hex karakter zorunlu, brute-force ekonomik değil
- **Redis localhost**: production'da firewall sadece localhost'a açar

## Gereksinimler

- PHP Redis extension (`php-redis`)
- Roundcube 1.5+
- Aynı sunucuda Redis (veya açık IP/port + auth)
