Sponsor Onayı (Personel Onayı)
Sponsor Onayı yöntemi, misafirin internet erişimi için bir şirket çalışanının (sponsor) onayını gerektiren iki taraflı bir kimlik doğrulama akışıdır. Kurumsal ofisler, devlet binaları ve yüksek güvenlikli ortamlar için tasarlanmıştır. Her erişim talebi tam denetim kaydıyla saklanır.
Nasıl Çalışır?
Misafir talep gönderir → Sponsor e-posta alır → Onaylar/Reddeder → Misafir bağlanır
- Misafir captive portal'a adını, ziyaret amacını ve onay alacağı sponsor'un kurumsal e-posta adresini girer.
- AnchorSpot, sponsor'a tek kullanımlık onay/red bağlantıları içeren bir e-posta gönderir (24 saat geçerli).
- Misafir portal'da bekler; portal arka planda kararı sorgular.
- Sponsor onaylarsa misafir otomatik olarak internete bağlanır. Reddederse misafir bilgilendirme mesajı görür.
API Akışı
1. Sponsor Talebi Oluşturma
curl -X POST https://<portal-host>/api/v1/portal/auth/sponsor/request \
-H "Content-Type: application/json" \
-d '{
"guest_name": "Ahmet Yılmaz",
"sponsor_email": "mehmet.kaya@sirket.com",
"reason": "Proje toplantısı — 3. kat, 10:00",
"mac": "aa:bb:cc:dd:ee:ff",
"ssid": "Misafir-WiFi"
}'
Başarılı yanıt:
{
"status": "pending",
"request_id": "req_7f3a9c12e4b8",
"expires_at": "2026-06-09T10:30:00Z"
}
2. Karar Sorgulama (Polling)
Misafir tarafı, portal'ın arka planda düzenli aralıklarla çağırdığı endpoint:
curl https://<portal-host>/api/v1/portal/auth/sponsor/poll/req_7f3a9c12e4b8
Olası yanıtlar:
{ "status": "pending" }
{ "status": "approved", "redirect_url": "https://..." }
{ "status": "rejected", "message": "Sponsor talebinizi reddetti." }
{ "status": "expired", "message": "Talep süresi doldu, lütfen tekrar deneyin." }
:::info Polling Aralığı Portal, karar sorgusunu her 5 saniyede bir yapar. Onay veya red alındığında polling otomatik durur. :::
3. Sponsor Talep Üstlenme (Claim)
Sponsor e-postadaki bağlantıya tıkladığında sistem aşağıdaki endpoint'i çağırır:
# Onaylama
curl -X POST https://<portal-host>/api/v1/portal/auth/sponsor/claim/req_7f3a9c12e4b8 \
-H "Content-Type: application/json" \
-d '{ "action": "approve", "token": "<one-time-token>" }'
# Reddetme
curl -X POST https://<portal-host>/api/v1/portal/auth/sponsor/claim/req_7f3a9c12e4b8 \
-H "Content-Type: application/json" \
-d '{ "action": "reject", "token": "<one-time-token>", "reason": "Tanımıyorum" }'
Tek kullanımlık token, e-postadaki bağlantıya gömülüdür ve 24 saat geçerlidir.
Sponsor E-posta İçeriği
Sponsor'a gönderilen e-postada şu bilgiler bulunur:
- Misafirin adı ve soyadı
- Ziyaret nedeni
- Talep zamanı ve sona eriş süresi
- Onayla ve Reddet tek tıklık bağlantıları
Konsol'dan e-posta şablonu özelleştirilebilir (Ayarlar → Kimlik Doğrulama → Sponsor → E-posta Şablonu).
:::tip Kurumsal Özelleştirme Sponsor e-postasına şirket logosu ve renk teması eklenebilir. Böylece çalışanlar e-postanın güvenilirliğinden emin olur ve kimlik avı riskini azaltır. :::
Denetim İzi (Audit Trail)
Her sponsor talebi üç aşamalı tam denetim kaydıyla tutulur:
| Aşama | Olay | Kaydedilen Veriler |
|---|---|---|
submit | Misafir talep oluşturdu | Misafir adı, sponsor e-posta, MAC, SSID, IP, zaman damgası |
decide | Sponsor onayladı / reddetti | Sponsor IP adresi, karar, gerekçe, zaman damgası |
claim | Misafir bağlantı kurdu | Oturum ID, tahsis edilen IP, başlangıç zamanı |
Denetim kayıtlarına Raporlar → Sponsor Talepleri ekranından erişilir.
TC Kimlik Numarası Bağlama (İsteğe Bağlı)
5651 uyumluluğu gerektiren ortamlarda misafirin TCKN'si sponsor talebine eklenebilir:
{
"guest_name": "Ahmet Yılmaz",
"sponsor_email": "mehmet.kaya@sirket.com",
"reason": "Toplantı",
"tckn": "12345678901",
"mac": "aa:bb:cc:dd:ee:ff"
}
TCKN aktarıldığında algoritmik checksum doğrulaması yapılır; denetim kaydında maskelenerek saklanır.
Idempotent Tasarım
Ağ hatası durumunda talep endpoint'i güvenle yeniden çağrılabilir. Aynı (mac, ssid, sponsor_email) kombinasyonuna ait aktif bekleyen bir talep varsa, yeni bir talep oluşturulmaz; mevcut request_id döndürülür:
{
"status": "pending",
"request_id": "req_7f3a9c12e4b8",
"message": "Mevcut aktif talep döndürüldü."
}
Konfigürasyon
Ayarlar → Kimlik Doğrulama → Sponsor bölümünden:
| Parametre | Açıklama | Varsayılan |
|---|---|---|
SPONSOR_TOKEN_TTL_HOURS | Onay bağlantısı geçerlilik süresi | 24 |
SPONSOR_POLL_INTERVAL_SEC | Portal polling aralığı | 5 |
SPONSOR_REQUIRE_TCKN | TCKN zorunlu kılınsın mı | false |
SPONSOR_EMAIL_FROM | Gönderen e-posta adresi | noreply@... |
SPONSOR_MAX_PENDING_PER_MAC | Bir MAC için eş zamanlı max bekleyen talep | 1 |
:::warning Güvenlik Notu
Sponsor onay bağlantıları yalnızca bir kez kullanılabilir. Bağlantı tıklandıktan sonra token geçersiz hale gelir. Aynı bağlantının ikinci kez kullanılması 410 Gone yanıtı döndürür.
:::
Kullanım Senaryoları
- Kurumsal ofisler — Ziyaretçi kabul sürecini dijitalleştirir; güvenlik görevlisi araya girmeden çalışan onayı yeterlidir.
- Devlet binaları — Kimlik doğrulama ve denetim kaydı yasal gereklilikleri karşılar.
- Hastaneler — Hasta ziyaretçileri için bölüm personelinin onayı zorunlu tutulabilir.
Sorun Giderme
Sponsor E-postası Gelmiyor
- SMTP konfigürasyonunu kontrol edin (
NAC_SMTP_*değişkenleri). - Sponsor'un kurumsal posta kutusunda spam filtresi olup olmadığını kontrol edin.
sponsor_emailalanının geçerli bir kurumsal e-posta olduğundan emin olun (ücretsiz posta servislerini kısıtlamak için konsol'da e-posta domain izin listesi tanımlanabilir).
Talep Zaman Aşımına Uğradı
Talep expired durumuna geçtiyse misafirin yeni bir talep oluşturması gerekir. SPONSOR_TOKEN_TTL_HOURS değeri artırılarak bu sorun azaltılabilir; ancak güvenlik açısından 24 saatin üzerine çıkılması önerilmez.