Scope ve Hesap İzolasyonu (Authorization)
Kimlik doğrulama (Authentication) hangi backend servisinin bağlandığını, yetkilendirme (Authorization) ise bu servisin hangi hesapta hangi işlemi yapabildiğini belirler. Frigolive bu iki kararı birbirinden ayrı ve her istekte yeniden değerlendirir.
Üçlü Kontrol Modeli
- İstemci İzinli Hesap Listesi (Credential Account Allow-list): Entegrasyon yalnızca kendisine açılmış gerçek müşteri hesaplarını seçebilir.
- Erişim Jetonu Yetki Kapsamları (Access Token Scopes): Her kaynak için okuma ve yazma yetkileri birbirinden ayrıdır.
- Müşteri Kaynak Sahipliği (Tenant Resource Ownership): Kaynağın seçilen hesaba gerçekten ait olması zorunludur.
Bu kontrollerden yalnızca birini geçmek yeterli değildir. Örneğin cihaz okuma scope’u bulunan bir token, allow-list dışında kalan hesabın cihazını göremez.
Çoklu Hesap Başlığı (X-Frigolive-Account-ID)
Tek bir istemci anahtarı (Credential) bir şirket grubundaki birden fazla gerçek hesaba açılabilir.
Bu durumda her veri isteği hedef hesabı açıkça X-Frigolive-Account-ID başlığıyla belirtir.
Public API yalnızca müşterilerin kendi sistemleriyle veri alışverişi yapabilmesi için tanımlanan resmi endpointleri kapsar. Güvenlik ve yetki kontrolleri her istekte bağımsız olarak doğrulanır.
Yetki Grupları
Public API’de şu kaynak grupları ayrı ayrı açılabilir:
- Hesaplar:
accounts:read,accounts:write - Konumlar:
locations:read,locations:write - Taşıyıcılar:
carriers:read,carriers:write - Alıcılar:
receivers:read,receivers:write - Alarm şablonları:
alert-presets:read,alert-presets:write - Sevkiyat şablonları:
shipment-templates:read,shipment-templates:write - Cihazlar:
devices:read,devices:label:write,devices:settings:write - Telemetri ve bakım:
telemetry:read,maintenance:read - Sevkiyatlar:
shipments:read,shipments:write,shipments:complete,shipments:share,shipments:tracking:read - Alarmlar ve raporlar:
alarms:read,alarms:write,reports:read - Kullanıcılar:
users:read,users:write,users:invite
En profesyonel başlangıç, entegrasyonun gerçekten kullanacağı en küçük scope kümesini vermektir. Örneğin yalnızca harita ekranı yapan bir entegrasyonun kullanıcı davet etme veya sevkiyat silme yetkisine ihtiyacı yoktur.