scope parametresini doldururken kullanacağınız tüm scope’ları, her birinin açtığı endpoint’leri ve çağrının başarılı olması için kullanıcıda bulunması gereken izinleri listeler.
Tablolardaki izinler istek doğrulamasından ve politikalardan çıkarılmıştır. Bir endpoint’in kesin izin ve görünürlük kuralı için ilgili kaynak sayfasına bakın. Aksi belirtilmedikçe endpoint yolları
https://app.flextell.ai/api/v1 altındadır.Scope adlandırması
Scope’larkaynak:eylem biçimindedir.
Kimlik scope’ları (
openid, profile, email, phone) bu biçimi izlemez.
Bir endpoint yalnızca kendi eyleminin scope’unu ister. GET çağrıları :read, POST, PUT ve DELETE çağrıları :write ister. Bu yüzden :write tek başına okuma yetkisi vermez.
Scope seçme önerileri
1
Gerçekten çağıracağınız kaynaklarla başlayın
Entegrasyonunuzun kullandığı kaynakların scope’larını isteyin. Kullanıcı yetkilendirme ekranında istediğiniz scope’ları kaynak adına göre gruplanmış,
okuma ve yazma rozetiyle görür. Gereksiz scope istemeyin.2
Birlikte gereken scope'ları atlamayın
Bazı endpoint’ler iki scope’u birden ister. Aşağıdaki “Birlikte gereken scope’lar” tablosuna bakın.
3
Okuma ve yazmayı ayrı düşünün
Yalnızca rapor çeken bir entegrasyon
:write scope’u istememelidir. Veri yazan bir entegrasyon genellikle aynı kaynağın :read scope’una da ihtiyaç duyar.4
Geçerli scope listesini sorgulayın
Uygulamanızın isteyebileceği scope’ları
GET /oauth/scopes ile alın. İstek oauth_clients:read scope’u, View:Client izni ve X-Tenant başlığı ister. Yanıt scope ve description alanlarından oluşur; kimlik scope’ları listede yer almaz.- Uygulamayı oluştururken
scopesalanına en az bir uygulama scope’u yazılır. Geçersiz değer422 OAUTH_SCOPE_INVALIDdöndürür vedata.invalid_scopesiçinde listelenir. Kimlik scope’larını listeye yazmazsınız. - Uygulamanın scope listesini
PUT /oauth/clients/{id}/scopesile değiştirirsiniz. Değişiklik yeni yetkilendirmelerde ve yenilemelerde hemen etkili olur. Verilmiş access token’lar süresi dolana kadar eski scope’larıyla çalışır. - Token yenilerken
scopegönderirseniz değerler ilk yetkilendirmenin alt kümesi olmalıdır. Yenileme scope’ları yalnızca daraltır; yeni scope için kullanıcıyı yeniden yetkilendirmeye yönlendirin. - Scope eksikse API
403 FORBIDDENve İngilizceInvalid scope(s) provided.mesajını döndürür. MesajAccept-Languagebaşlığından etkilenmez.
Birlikte gereken scope’lar
Aşağıdaki endpoint’lerde listelenen scope’lardan biri yeterlidir:
Kimlik scope’ları
Bu scope’lar kimlik bilgisi içindir ve hiçbir/api/v1 endpoint’ine erişim vermez. Her uygulama için her zaman kullanılabilir; uygulamanızın scope listesine eklemezsiniz.
Ayrıntılar için OpenID Connect sayfasına bakın.
scope parametresi boş bırakılırsa token hiçbir scope taşımaz.
Kaynak scope’ları
Tablolardaokuma izni ve yazma izni sütunları, ilgili scope ile açılan endpoint’lerin kullanıcıda aradığı izinlerdir. — işareti, endpoint’in scope ve klinik üyeliği dışında izin kontrolü yapmadığını gösterir. Tabloların çoğundaki endpoint’ler X-Tenant başlığı ister; bkz. Klinikler ve X-Tenant. İstisnalar /account endpoint’leri (GET /account/roles hariç) ve bu sayfanın sonunda listelenen scope’suz çağrılardır.
Hasta, lead ve satış ekibi
Randevu ve klinik kadrosu
Sohbet, kanal ve bildirim
Satış, fatura ve finans
Ürün ve stok
AI, rapor ve istatistik
Hesap, klinik ve yönetim
activity_logs:write katalogda bulunur ancak hiçbir endpoint onu kontrol etmez; bu scope’u istemenize gerek yoktur.Scope gerektirmeyen çağrılar
Bearer token ister, ancak scope kontrolü yapmaz:GET /general/cities,/countries,/currencies,/districts,/exchange-rates,/product-types,/unit-codes,/withholding-codesGETvePOST /api/broadcasting/auth(özel gerçek zamanlı kanallar)
Scope ve izin ilişkisi
Scope ve izin iki ayrı denetimdir. Çağrının başarılı olması için ikisi de gerekir.
Scope kullanıcıya izin kazandırmaz; yalnızca uygulamanın kullanıcı adına neleri deneyebileceğini sınırlar.
customers:write scope’una sahip bir token, Delete:Customer iznine sahip olmayan kullanıcı adına hasta silemez.
Aynı scope birden çok izni kapsayabilir. Örneğin appointments:write ile POST /appointments/{id}/cancel çağrısı için kullanıcıda Cancel:Appointment, revert-cancel için RevertCancel:Appointment izni gerekir; PUT /appointments/{id} ile durumu cancelled yapmak için Update ve Cancel izinleri birlikte aranır. Benzer şekilde conversations:write ile bir sohbete mesaj göndermek Send:Message, sohbeti arşivlemek Archive:Conversation ister.
Kullanıcı kliniği değiştirdiğinde aynı token kullanılmaya devam eder. Scope’lar değişmez, izinler seçilen kliniğe göre değişir. Bu yüzden aynı token bir klinikte çalışıp diğerinde 403 alabilir. İzinlerin çağrıları kayıt düzeyinde nasıl sınırladığı (örneğin yalnızca kendi leadleri) için İzinler ve görünürlük sayfasına bakın.
İlgili sayfalar
Uygulama oluşturma
scopes listesiyle OAuth uygulaması kaydedin.Yetkilendirme kodu ve PKCE
scope parametresiyle yetkilendirme isteği gönderin.Tokenlar
Token yenilerken scope’ları daraltın.
İzinler ve görünürlük
İzinlerin kayıt görünürlüğünü nasıl etkilediğini görün.