access token ile istek yapar. Bu sayfa modelin tamamını özetler; her adımın ayrıntısı için ilgili sayfalara bağlantı verilmiştir.
Erişim modeli
API’ye erişim her zaman bir kullanıcı adına yapılır. Uygulamanın kendi başına, kullanıcısız çalışan bir erişimi yoktur. Bir isteğin kabul edilmesi için üç şey gerekir:
Kimlik doğrulama ayrı bir kimlik sunucusunda yapılır: üretimde
https://id.flextell.ai, sandbox’ta https://iddev.flextell.ai. Kullanıcı giriş yapar, gerekirse iki adımlı doğrulamayı geçer ve uygulamanıza izin verir. İş verisine ise API adresinden (https://app.flextell.ai/api/v1) erişirsiniz. Ortam adresleri için Ortamlar sayfasına bakın.
Kullanıcı birden fazla kliniğin üyesi olabilir. Klinik değiştirmek için yeni token almanız gerekmez; aynı token kullanıcının her kliniğinde çalışır ve yalnızca X-Tenant değeri değişir. Ayrıntılar için Klinikler ve X-Tenant sayfasına bakın.
Desteklenen akışlar
Yetkilendirme kodu akışında uygulamanız kullanıcıyı
/oauth/authorize adresine yönlendirir. Kullanıcı girişten ve izin ekranından geçince uygulamanıza tek kullanımlık bir kod döner. Siz bu kodu /oauth/token adresinde token ile değiştirirsiniz. Adım adım anlatım için Yetkilendirme kodu ve PKCE sayfasına bakın.
Uygulamanın istemci türü PKCE kuralını belirler:
- Gizli anahtarı (
client_secret) olmayan, herkese açık istemciler için PKCE zorunludur. - Gizli istemcilerde PKCE isteğe bağlıdır. Ancak
code_challengegönderdiyseniz token isteğindecode_verifiergöndermek zorundasınız. - Gizli istemciler token adresinde
client_secretile kimliğini doğrular. Eksik gizli anahtar400 invalid_request, yanlış gizli anahtar401 invalid_clientdöndürür.
scope değerine openid ekleyin. Bu durumda token yanıtında id_token da gelir. openid, profile, email ve phone kimlik scope’larıdır; uygulamanın scope listesinden bağımsız olarak her uygulama için geçerlidir. Ayrıntılar için OpenID Connect sayfasına bakın.
Desteklenmeyen akışlar
client_credentials ile alınan token bir kullanıcıya bağlı değildir. Bu yüzden /api/v1 altındaki her istek 401 UNAUTHENTICATED döndürür. Uygulama oluştururken de bu akış varsayılan olarak açılmaz: API üzerinden oluşturulan uygulamalar yalnızca authorization_code ve refresh_token akışlarına sahiptir.
Scope ve izin
Bir isteğin başarılı olması için iki ayrı koşul birlikte sağlanmalıdır. Biri yetersizse istek reddedilir.- Scope: Uygulamanın, kullanıcının izniyle aldığı token’da o endpoint için gereken scope bulunmalıdır. Örneğin hasta listesi için
customers:read. Eksikse403 FORBIDDENveInvalid scope(s) provided.mesajı döner. - İzin: Kullanıcının,
X-Tenantile seçilen klinikte o işlem için rolünden gelen izni olmalıdır. ÖrneğinView:Customer. Eksikse403veBu işlem için yetkiniz yok.mesajı döner.
View izni olan ama ViewAll izni olmayan bir kullanıcı, örneğin yalnızca kendisine atanmış kayıtları görür. Bu kurallar İzinler ve görünürlük sayfasında anlatılır.
Scope’lar uygulama oluşturulurken seçilir ve kullanıcı izin ekranında bunları onaylar. Yenileme sırasında scope’lar yalnızca daraltılabilir; yeni scope için kullanıcıyı yeniden yetkilendirmeye göndermeniz gerekir. Tüm scope listesi için Scope’lar sayfasına bakın.
Token türleri
Yetkilendirme kodunun kendisi de 10 dakika geçerlidir ve yalnızca bir kez kullanılabilir. Sandbox’ta token süreleri üretimden farklı olabilir; süreleri sabit varsaymayın,
expires_in alanını okuyun.
Yenileme sırasında şu kurallar geçerlidir:
- Her yenileme yeni bir
refresh_tokendöndürür. Kullanılan eskirefresh_tokenve onunla eşleşenaccess_tokenhemen geçersiz olur. - Yeni
refresh_token’ı hemen saklayın. Eski olanı tekrar gönderirseniz400 invalid_grantalırsınız. - İsteğe bağlı
scopeparametresi, ilk yetkilendirmede verilen scope’ların alt kümesi olmalıdır. Aksi hâlde400 invalid_scopedöner. - Uygulamanız haftada en az bir kez yenileme yaparsa kullanıcı yeniden giriş yapmak zorunda kalmaz. Her yenileme 7 günlük yeni bir
refresh_tokenverir.
access_token 5 dakikada dolduğu için uygulamanız 401 UNAUTHENTICATED yanıtını yakalayıp token’ı yenilemeli ve isteği tekrar etmelidir.
İlgili sayfalar
Uygulama oluşturma
Client ID ve Client Secret alın, scope seçin.
Yetkilendirme kodu ve PKCE
Kullanıcıyı yönlendirin ve kodu token ile değiştirin.
Tokenlar
Token yenileme ve iptal.
Kimlik doğrulama hataları
OAuth ve OpenID Connect hata kodları.