Kimlik doğrulama
Taslak.
Yöntem
Public API'ye makineden makineye erişim OAuth2 client credentials akışıyla yapılır. Akış sonunda kısa ömürlü ve scope'lu bir erişim token'ı alırsınız ve her istekte Authorization: Bearer <token> başlığıyla gönderirsiniz.
- Uzun ömürlü statik API anahtarı verilmez.
- Token'ı kimlik sağlayıcımız (Keycloak) üretir; Corendis uygulaması yalnızca doğrular.
- Tarayıcı çerezi (web arayüzü oturumu) public API'de kabul edilmez.
Entegrasyon istemcisi nasıl tanımlanır?
Entegrasyon istemcilerini siz oluşturmazsınız:
- Talebinizi BilgiTek'e iletirsiniz (istemcinin adı, ne için kullanılacağı, hangi verilere erişeceği).
- BilgiTek personeli, platform yönetim panelinden istemciyi firmanıza (tenant) bağlı olarak tanımlar ve izinlerini (hangi işlemler, gerekiyorsa hangi şirketler için) verir.
- Size
client_idve kimlik bilgisi iletilir.client_secretyalnızca bir kez gösterilir; saklamanız gerekir. Alternatif olarakprivate_key_jwtyöntemi desteklenir.
Önemli noktalar:
Bir istemci tek bir firmaya bağlıdır. Firma, token'daki istemci kimliğinden belirlenir; isteğinize firma kimliği eklemenin bir etkisi yoktur.
İstemcinin izinleri, uygulamadaki kullanıcı rollerinden ayrıdır. Firmanızın yöneticisi bile roller üzerinden bir istemciye yetki veremez; izinleri yalnızca BilgiTek tarafı yönetir.
Kimlik bilgisi değiştirilirken (rotasyon) eski ve yeni bilgi bir geçiş süresi boyunca birlikte geçerlidir.
Entegrasyonlar kullanıcı koltuğunu atlatmak için kullanılamaz; her istemci bir entegrasyon koltuğu kullanır.
Dış bir organizasyon (ör. bayi, iş ortağı firması) adına istemci tanımlanması henüz desteklenmez.
Etkin yetki neye bağlıdır?
Bir isteğin başarılı olması için üçünün de uygun olması gerekir:
- Token'ın scope'u,
- BilgiTek'in istemciye verdiği izinler,
- Firmanızın lisansı (modül ve entegrasyon koltuğu).
Biri eksikse istek 403 ile reddedilir. Hangisinin eksik olduğunu type alanından anlarsınız (bkz. Hatalar).
Scope adları
Örnek (yer tutucu)
POST <TOKEN_URL>
Content-Type: application/x-www-form-urlencoded
grant_type=client_credentials&client_id=<CLIENT_ID>&client_secret=<CLIENT_SECRET>&scope=<SCOPE>
Güvenlik önerileri
client_secretdeğerini kaynak koduna, depoya veya günlüklere yazmayın.- Token'ı süresi dolana kadar yeniden kullanın; her istekte yeni token almayın.
- Kullanılmayan istemcinin kapatılmasını BilgiTek'ten isteyin.