Risk Snapshot'ı
analyze (veya analyze-sync) çağrısının her biri tek bir nesne döndürür: IdentityDecisionSnapshot. Bu düz ve açıklanabilir bir kayıttır — kanonik bir verdict, üstte dört skor, aile bazlı sinyal alanları ve verdict'in neden öyle çıktığını söyleyen bir bulgu yüzeyi. Identity bağımsız bir kanıt sağlayıcıdır (evidence provider): snapshot riski tanımlar, riske göre aksiyon almaz.
Snapshot tek bir verdict alanı taşır — identityRiskLevel. Bu, identity'nin oturuma dair kendi kanıt-derece değerlendirmesidir; bir fraud ya da ödeme aksiyonu DEĞİLDİR. block/allow alanı yoktur: seviyeyi, skorları ve bulguları okur, kararı siz verirsiniz. Snapshot'ı kendi kurallarınıza, Fraud Detection mantığına ya da checkout'unuza besleyin.
Yanıt zarfı
Gateway yanıtları tek bir zarfı paylaşır — { success, message, code, data, meta }. Snapshot her zaman data içindedir:
{
"success": true,
"message": "Analysis complete",
"code": "IDENTITY_ANALYZED",
"data": { /* IdentityDecisionSnapshot — aşağıdaki her şey */ },
"meta": { "traceId": "trc_01HV3K9X..." }
}Kanonik verdict
identityRiskLevel, oturumu özetleyen tek enum'dur. Identity'nin kendi kanıtından derecelenir — onu onaylama ya da reddetme talimatı olarak okumayın.
| Alan | Tip | Anlamı |
|---|---|---|
identityRiskLevel | clean | low | medium | high | critical | Identity'nin oturum için kanıt-derece risk bandı |
identityRiskPolicyVersion | string | Seviyeyi üreten policy sürümü — derecelendirme değişiklikleri denetlenebilsin diye sabitleyin |
identityRiskLevel, snapshot'taki tek verdict enum'udur. Geri kalan her şey bir sinyal, bir skor ya da bir bulgudur. Ayrı bir "decision" veya "action" alanı yoktur — o yüzey sizin kendi mantığınıza aittir.
Skorlar
Snapshot'ın üstünde dört normalize skor durur. Bunları eşik olarak değil, sürekli sinyal olarak ele alın — kendi kesme noktalarınızın nerede olacağını siz seçersiniz.
| Alan | Aralık | Ne söyler |
|---|---|---|
riskScore | 0–100 | Oturumun genel risk büyüklüğü |
confidenceScore | 0–1 | Değerlendirmeyi ne kadar kanıt destekliyor |
similarityScore | 0–1 | Bu oturumun, konunun bilinen iyi geçmişine ne kadar benzediği |
stabilityScore | 0–1 | Cihaz/kimlik sinyalinin oturumlar arasında ne kadar stabil olduğu |
Sinyal aileleri
Skorların altında snapshot, sinyalleri ailelere göre gruplar. Her aile kendi sayfasında derinlemesine belgelenir; buradaki tablolar alan referansıdır.
Cihaz & süreklilik
Bu cihazın/aktörün daha önce görülüp görülmediği ve eşleşmenin ne kadar stabil olduğu. Tüm detay: Cihaz & Süreklilik.
| Alan | Tip | Anlamı |
|---|---|---|
knownDevice | boolean | Cihaz bu merchant için daha önce görüldü |
stableDevice | boolean | Fingerprint son oturumlar boyunca stabil |
sameDeviceProbability | 0–1 | Bunun önceki oturumlarla aynı fiziksel cihaz olma olasılığı |
sameBrowserProbability | 0–1 | Aynı tarayıcı örneği olma olasılığı |
sameActorProbability | 0–1 | Bu ve önceki oturumların arkasında aynı kişinin olma olasılığı |
matchedClusterId | string | null | Oturumun eşleştiği cihaz kümesi (cluster) |
clusterStabilityScore | 0–1 | O kümenin zaman içinde ne kadar stabil olduğu |
clusterRiskScore | 0–100 | Eşleşen kümenin toplam riski |
continuityDriftReasons | string[] | Süreklilik güveninin neden düştüğü (örn. yeni donanım öznitelikleri) |
continuityEvidence | object[] | Süreklilik eşleşmesinin arkasındaki kanıt kayıtları |
Ağ zekâsı
VPN/proxy/Tor/hosting duruşu artı geo, ASN ve ISP. Tüm detay: Ağ Zekâsı.
| Alan | Tip | Anlamı |
|---|---|---|
networkCategory | string | Ağ tipi (örn. residential, hosting, vpn, proxy) |
networkRiskScore | 0–100 | Ağ yolunun risk büyüklüğü |
networkPosture | string | Ağ için özet duruş etiketi |
ipCountry / ipRegion / ipCity | string | IP coğrafi konumu |
geoConfidence | 0–1 | Coğrafi konum güveni |
asn | number | Otonom sistem numarası |
isp | string | İnternet servis sağlayıcı |
provider | string | Ağ/hosting sağlayıcı etiketi |
hostingRisk | string | Hosting/datacenter risk seviyesi |
geoConflictDetected | boolean | Coğrafi sinyaller çelişiyor (örn. IP vs beyan edilen) |
networkMatchedSources | string[] | Hangi zekâ kaynakları eşleşti |
networkMatchedArtifacts | string[] | Hangi ağ artifact'ları eşleşti |
Bot & otomasyon
Bot sınıflandırması, otomasyon/kötüye kullanım sinyalleri ve beyan/doğrulanmış-bot güveni. Tüm detay: Bot & Otomasyon.
| Alan | Tip | Anlamı |
|---|---|---|
botClassification | string | Bot verdict'i (örn. human, automation_likely, verified_bot) |
botConfidence | 0–1 | Bot sınıflandırmasının güveni |
botSignals | string[] | Gözlenen tekil otomasyon/kötüye kullanım sinyalleri |
botTrustOutcome | string | Beyan/doğrulanmış-bot değerlendirmesinin sonucu |
botTrustTier | string | Tanınan bir bota atanan güven kademesi |
botTrustDeclared | boolean | İstemci kendini otomatik ajan olarak beyan etti |
botIssuerId / botKeyId / botActorId | string | Kayıtlı, doğrulanmış bir botun tanımlayıcıları |
Mobil bütünlük
Yalnız native-mobil oturumlarda mevcut. Tüm detay: Mobil Tehdit.
| Alan | Tip | Anlamı |
|---|---|---|
mobileIntegrityClassification | string | Attest edilmiş cihaz/uygulama bütünlük verdict'i |
mobileIntegrityConfidence | 0–1 | Bütünlük verdict'inin güveni |
mobilePolicyStatus | string | Mobil uygulama policy'nize göre sonuç |
mobileAppTrusted | boolean | Uygulama güvenilen bir registry kaydıyla eşleşti |
mobilePlatform | string | ios / android |
mobileAppId / mobileAppVersion | string | Bildirilen uygulama kimliği |
Kurcalama & gizlilik
Tarayıcı-bütünlüğü/kurcalama duruşu ve gizlilik-aracı duruşu.
| Alan | Tip | Anlamı |
|---|---|---|
tamperClassification | string | Tarayıcı-bütünlüğü/kurcalama verdict'i (örn. clean, tampered) |
tamperConfidence | 0–1 | Kurcalama verdict'inin güveni |
privacyPosture | string | Gizlilik-aracı duruşu (örn. hardened, anti-detect) |
privacyConfidence | 0–1 | Gizlilik duruşunun güveni |
Boolean bayraklar
En yüksek sinyalli koşullar için hızlı, üst düzey boolean'lar.
| Alan | Anlamı |
|---|---|
vpnDetected | Oturum ticari bir VPN üzerinden geldi |
proxyDetected | Oturum bir proxy/relay üzerinden geldi |
torDetected | Oturum bir Tor çıkış düğümünden geldi |
ipBlacklisted | IP bir engelleme listesinde |
fingerprintBlacklisted | Cihaz fingerprint'i bir engelleme listesinde |
deviceTokenBlacklisted | Cihaz token'ı bir engelleme listesinde |
Verdict yüzeyi
Snapshot açıklanabilirdir: skorların ve sinyallerin yanında, onların arkasındaki gerekçeleri de taşır.
| Alan | Tip | Ne taşır |
|---|---|---|
reasonCodes | string[] | Sürücüleri özetleyen makine-okunur kodlar |
tags | string[] | Oturuma iliştirilen tanımlayıcı etiketler |
riskFlags | string[] | Tetiklenen risk koşulları |
findings | object[] | Açıklanan sürücüler — katkı sunan her sinyal için bir kayıt |
features | object | Değerlendirmede kullanılan ham feature değerlerinin bir haritası |
findings içindeki her kayıt, katkı sunan tek bir sinyali kırar:
| Finding alanı | Anlamı |
|---|---|
code | Bulgunun stabil kodu |
severity | low | medium | high (bu sürücünün göreli ağırlığı) |
scoreDelta | Bu bulgunun risk skorunu ne kadar hareket ettirdiği |
source | Hangi sinyal ailesinden geldiği (device, network, bot, …) |
description | İnsan-okunur açıklama |
Her sinyal ailesi ayrıca bir kanıt ve yöntem kırılımı sunar — her sinyal, onu üreten kanıtı ve yöntemi taşır, dolayısıyla bir verdict asla kara kutu değildir. Açıklanan sürücüler için findings'i, ham köken için aile bazlı kanıtı okuyun.
Tam bir snapshot
Gerçek alan adlarıyla eksiksiz bir data payload'ı:
{
"identityRiskLevel": "high",
"identityRiskPolicyVersion": "2026-07-01",
"riskScore": 72,
"confidenceScore": 0.91,
"similarityScore": 0.38,
"stabilityScore": 0.55,
"knownDevice": true,
"stableDevice": true,
"sameDeviceProbability": 0.97,
"sameBrowserProbability": 0.88,
"sameActorProbability": 0.74,
"matchedClusterId": "clu_3b1d",
"clusterStabilityScore": 0.62,
"clusterRiskScore": 66,
"continuityDriftReasons": ["timezone_shift"],
"networkCategory": "vpn",
"networkRiskScore": 61,
"networkPosture": "anonymizing",
"ipCountry": "NL",
"ipRegion": "North Holland",
"ipCity": "Amsterdam",
"geoConfidence": 0.84,
"asn": 60068,
"isp": "Example ISP",
"provider": "Example Network",
"hostingRisk": "high",
"geoConflictDetected": true,
"networkMatchedArtifacts": ["vpn_range"],
"botClassification": "automation_likely",
"botConfidence": 0.70,
"botSignals": ["headless_hints", "input_cadence_synthetic"],
"botTrustOutcome": "unverified",
"botTrustDeclared": false,
"tamperClassification": "tampered",
"tamperConfidence": 0.81,
"privacyPosture": "anti_detect",
"privacyConfidence": 0.66,
"vpnDetected": true,
"proxyDetected": false,
"torDetected": false,
"ipBlacklisted": false,
"fingerprintBlacklisted": false,
"deviceTokenBlacklisted": false,
"reasonCodes": ["vpn_detected", "automation_likely", "browser_tampered"],
"tags": ["anonymizing_network"],
"riskFlags": ["network", "bot", "tamper"],
"findings": [
{ "code": "vpn_detected", "severity": "medium", "scoreDelta": 18, "source": "network", "description": "Commercial VPN range" },
{ "code": "automation_likely", "severity": "high", "scoreDelta": 26, "source": "bot", "description": "Synthetic input cadence" },
{ "code": "browser_tampered", "severity": "high", "scoreDelta": 22, "source": "tamper", "description": "Impossible feature combination" }
],
"features": { "input_entropy": 0.12, "canvas_delta": 0.44 }
}Alanlar yalnızca ilgili sinyal mevcutsa görünür. Örneğin mobil-bütünlük alanları tarayıcı oturumlarında yoktur ve bir oturum hiçbir kümeyle eşleşmediğinde matchedClusterId null olur. Her zaman savunmacı okuyun.
Sonraki adımlar
- Cihaz & Süreklilik — cihaz ve süreklilik alanları derinlemesine
- Ağ Zekâsı — VPN/proxy/Tor ve geo/ASN/ISP
- Bot & Otomasyon — bot sınıflandırması ve doğrulanmış-bot güveni
- Sunucu Tarafı API — kayıtlı analizleri sorgulama ve inceleme
- Assertion'lar & JWKS — imzalı bir identity assertion'ını doğrulama