Credentials & Permissions
BaZaaRDan Partner API erişimi Client ID, Client Secret ve izin modeli ile çalışır. Her partner uygulaması sadece kendisine verilen izinler kapsamında veri okuyabilir veya işlem yapabilir.
Client ID + HMAC + Permission
API erişiminde Client ID partner uygulamasını tanımlar, Client Secret HMAC imzası üretir, permission sistemi ise uygulamanın hangi endpointleri kullanabileceğini belirler.
Client ID
Client ID, partner uygulamanızı tanımlayan public kimlik değeridir.
Her API isteğinde X-BZ-CLIENT-ID headerı ile gönderilir.
X-BZ-CLIENT-ID: YOUR_CLIENT_IDClient Secret
Client Secret, HMAC SHA256 imzası üretmek için kullanılır. Bu değer gizlidir; frontend, mobil uygulama veya public repository içine konulmamalıdır.
BAZAARDAN_CLIENT_ID=YOUR_CLIENT_ID
BAZAARDAN_CLIENT_SECRET=YOUR_CLIENT_SECRETHMAC İmza
Her request için timestamp ve request path kullanılarak imza üretilir. BaZaaRDan backend bu imzayı doğrulamazsa istek reddedilir.
METHOD + "\n" + PATH + "\n" + TIMESTAMP + "\n" + RAW_BODYPermission Listesi
Webhook Secret
Webhook Secret, BaZaaRDan tarafından gönderilen webhook isteklerinin gerçekten BaZaaRDan’dan gelip gelmediğini doğrulamak için kullanılır.
X-BZ-WEBHOOK-ID
X-BZ-WEBHOOK-TIMESTAMP
X-BZ-WEBHOOK-SIGNATURE
X-BZ-WEBHOOK-EVENThash_hmac("sha256", timestamp + "." + raw_body, webhook_secret)Canlıya Alma Güvenlik Kuralları
- Client Secret sadece backend ortam değişkenlerinde tutulmalıdır.
- Client Secret frontend veya mobil uygulamaya konulmamalıdır.
- Public GitHub/GitLab repository içine secret yazılmamalıdır.
- Webhook endpointlerinde signature doğrulaması zorunlu yapılmalıdır.
- Gereksiz permission verilmemelidir; uygulamaya sadece ihtiyacı olan izinler tanımlanmalıdır.
- Şüpheli durumda client pasife alınmalı ve secret rotate edilmelidir.