Kimlik Doğrulama
Identity Intelligence, çağrının nereden kaynaklandığına göre iki kimlik doğrulama yolu kullanır. Tarayıcı asla bir secret tutmaz; bunun yerine publishable key'inizle üretilmiş kısa ömürlü, imzalı bir SDK session token üzerinden çalışır. Sunucunuz, doğrudan analiz ve sorgular için Bearer secret key kullanır.
| Yol | Kimlik bilgisi | Kullanan |
|---|---|---|
| Web SDK oturumu | init'te publishable key (mk_live_pk_…) → imzalı session token | /identity/sdk/* (tarayıcı) |
| Sunucu tarafı | Bearer erişim token'ı (at_live_…) | /identity/* (backend'iniz) |
| Public | yok | /identity/.well-known/jwks.json, /identity/sdk/compatibility |
Tüm örnekler için temel URL: https://api-gateway.lunixi.com/api/v1.
Web SDK: publishable key → session token
Tarayıcı SDK'sı iki aşamada doğrulanır ve secret key tarayıcıya asla girmez.
Aşama 1 — bir oturum üret (backend'iniz). Backend'iniz POST /identity/sdk/init çağrısını Authorization header'ında publishable key ile yapar. Publishable key bir SDK config alanı değildir — yalnızca bu sunucu tarafı init çağrısında bulunur. Yanıt, bir imzalı SDK session token artı bir endpoint haritasıdır. Oturum allowedOrigin'e bağlıdır.
curl -X POST "https://api-gateway.lunixi.com/api/v1/identity/sdk/init" \
-H "Authorization: PublishableKey mk_live_pk_xxxxxxxxxxxx" \
-H "Content-Type: application/json" \
-d '{ "allowedOrigin": "https://shop.example.com" }'Aşama 2 — session token ile çağır (tarayıcı). Sonraki her SDK çağrısı (analyze-sync, event, events/batch) session token'ı Authorization: Bearer <token> olarak taşır. Token yalnızca header'dadır — istek gövdesinde token veya session-proof alanı yoktur. Bir çağrı yenilenmiş token döndürürse SDK otomatik olarak ona geçer (rotate).
Bu çağrıları elle nadiren yazarsınız — Web SDK oturumu ve header'ları sizin için yönetir. Aşama 1'deki oturumu ona, aşağıdaki bootstrap desenlerinden biriyle beslersiniz.
Bootstrap desenleri
SDK'nın aşama-1 oturumunu, bir anahtarı asla görmeden nasıl aldığı:
| Desen | Alan | Ne zaman kullanılır |
|---|---|---|
| Callback | sessionBootstrap(fn) | SDK, backend'inizden oturumu çeken ve döndüren async fonksiyonunuzu çağırır. En esneği. |
| URL | sessionBootstrapUrl | SDK, sizin sunduğunuz bir backend URL'sinden (POST /identity/sdk/init'in ince bir proxy'si) oturumu çeker. En basiti. |
| Önceden alınmış | sessionData | Oturumu sunucu tarafında zaten aldınız (ör. sayfaya enjekte ettiniz) ve nesneyi doğrudan SDK'ya verirsiniz. |
Publishable key yalnızca oturum üretmeyi yetkilendirir — snapshot okuyamaz. Secret key'i sunucu tarafında tutun. Oturumlar origin-bound'dur: allowedOrigin varsayılan olarak window.location.origin'dir ve bir origin için üretilen token başka bir origin'den reddedilir.
Sunucu tarafı: Bearer secret key
Backend analizi ve sorgular için erişim token'ınızı (at_live_…) Bearer olarak gönderin. Tenant token'dan türetilir — her çağrı otomatik olarak token'ın basıldığı merchant'a scope edilir ve sonuçlar merchant-scoped ve redakte edilmiştir.
curl -X POST "https://api-gateway.lunixi.com/api/v1/identity/live-sessions/analyze-sync" \
-H "Authorization: Bearer at_live_5f3e2b1a..." \
-H "Content-Type: application/json" \
-d '{
"subjectType": "customer",
"subjectId": "cus_8f2a9c",
"productContext": "checkout"
}'Secret key bir tarayıcıya, mobil uygulamaya veya public bir repository'ye asla gönderilmemelidir. Sızarsa, merchant panelinden iptal edin ve yenisini üretin.
Hangi endpoint hangi modeli kullanır
| Endpoint grubu | Auth | Notlar |
|---|---|---|
POST /identity/sdk/init | Publishable key | Origin-bound; session token üretir |
POST /identity/sdk/live-sessions/analyze-sync | İmzalı SDK token | Header'da Bearer session token |
POST /identity/sdk/live-sessions/event, /events/batch | İmzalı SDK token | Tarayıcıdan event ingest |
POST /identity/sdk/compatibility | Public | Auth yok — yetenek yoklaması |
POST /identity/live-sessions/analyze, /analyze-sync | Bearer secret key | Async (traceId) veya senkron snapshot |
POST /identity/live-sessions/event, /events/batch | Bearer secret key | Sunucu tarafı event ingest |
GET /identity/live-sessions* (list, :traceId, timeline, related, links) | Bearer secret key | Merchant-scoped sorgular |
.../mobile-threat/*, .../pos-threat/*, /identity/mobile-apps | Bearer secret key | Enrollment-gated yüzeyler |
GET /identity/.well-known/jwks.json | Public | İmzalı identity assertion'ları doğrulayın — bkz. Assertion & JWKS |
Sonraki adımlar
- Web SDK — client API'si ve her bootstrap/config alanı.
- Sunucu API & Sorgular — backend'inizden analiz edin ve oturumları okuyun.
- Assertion & JWKS — inkâr edilemez (non-repudiable) bir identity assertion'ı doğrulama.