Client ID ve bir Client Secret verir. Bu sayfa uygulamayı nasıl oluşturacağınızı, yönlendirme adreslerini nasıl gireceğinizi ve gizli anahtarı nasıl saklayacağınızı anlatır. Oturum açma akışının kendisi için Yetkilendirme kodu ve PKCE sayfasına bakın.
Uygulamalar sizin kullanıcı hesabınıza aittir, kliniğe değil. Aynı kliniğin başka bir kullanıcısı uygulamanızı listede görmez. Başkasına ait bir uygulamanın kimliğini çağırırsanız
404 RESOURCE_NOT_FOUND alırsınız. Uygulamayı yetkilendiren her Flextell kullanıcısı, kendi rollerinin izin verdiği kliniklerde uygulamanızla işlem yapabilir.Başlamadan önce
- Bir klinikte
Create:Clientiznine sahip olmalısınız (rol editöründe Oluşturma). Panelde Uygulamalar sayfasını görmek içinView:Client(Görüntüleme) gerekir. - Oluşturulan her uygulama gizli (confidential) bir istemcidir ve yalnızca
authorization_codeilerefresh_tokenakışlarını kullanır. Gizli anahtarı saklayabileceğiniz bir sunucu tarafı gerekir. Salt tarayıcı ya da mobil uygulama için gizli anahtarsız istemci kaydedemezsiniz. - API ile oluşturacaksanız elinizde
oauth_clients:writescope’lu bir access token olmalı. Token almak için kayıtlı bir uygulama gerektiği için ilk uygulamayı panelden oluşturabilirsiniz. /oauth/*çağrılarının tamamındaX-Tenantbaşlığı zorunludur. Başlık yoksa400 TENANT_HEADER_REQUIREDdöner. İzin, yalnızca başlıkta verdiğiniz klinikte denetlenir. Ayrıntı için Klinikler ve X-Tenant sayfasına bakın.
Panelden oluşturma
Menü yolu: Bağlantılar → Uygulamalar. Panel sayfasının tamamı için Uygulamalar sayfasına bakın.1
Sihirbazı açın
Bağlantılar → Uygulamalar sayfasında Uygulama Oluştur düğmesine tıklayın.
2
Uygulama bilgilerini girin
Uygulama Bilgileri adımında Uygulama Adı’nı (en fazla 255 karakter) ve en az bir Yönlendirme URI’leri satırını doldurun. Satır eklemek için URI Ekle, silmek için URI’yi Kaldır düğmesini kullanın. İsterseniz Çıkış Sonrası Yönlendirme URI’leri de ekleyin. İleri’ye tıklayın.
3
İzinleri seçin
İzinler adımında uygulamanın erişebileceği yetkileri işaretleyin. Arama kutusu ve Tümünü Seç / Tümünü Kaldır düğmesi vardır. En az bir izin seçmeden ilerleyemezsiniz. İleri’ye tıklayın.
4
Kimlik bilgilerini kopyalayın
Kimlik Bilgileri adımında
Client ID ve Client Secret görünür. Her ikisini de kopyalama düğmesiyle alın ve güvenli bir yerde saklayın. Sonra Bitir’e tıklayın.scopes alanına karşılık gelir. Yetkiler ve İzinler aynı şeyi anlatır.
Uygulamayı ve scope atamasını panelden oluşturabilirsiniz. İzinler adımındaki ve Yetkileri Güncelle penceresindeki liste, seçili klinik için yüklenir. Klinik değiştirdiğinizde liste yeniden yüklenir. Liste yüklenemezse Yetki listesi yüklenemedi. iletisi görünür. Otomasyon için API adımları aşağıdadır.
API ile oluşturma
POST /api/v1/oauth/clients uygulamayı oluşturur ve 201 ile döner.
Gövde alanları:
id değeri Client ID’dir. Yanıt ayrıca tokens_count, created_at ve updated_at alanlarını da içerir.
Yönlendirme adresleri
redirect_uris, kullanıcı yetkilendirmeyi tamamladıktan sonra Flextell’in kullanıcıyı geri gönderebileceği adreslerdir. post_logout_redirect_uris ise oturum kapatıldıktan sonra dönülebilecek isteğe bağlı adreslerdir.
- Adresler kırpılır, boş girişler atılır.
- Her adres Laravel’in
urlkuralından geçmelidir.https://example.com/callbackvehttp://localhost:3000/callbackgibi adresler kabul edilir. - Özel uygulama şemaları (
myapp://callback) REST API’de422ile reddedilir. - Eşleşme birebirdir. Yetkilendirme isteğinde gönderdiğiniz
redirect_uri, kayıtlı adreslerden biriyle karakter karakter aynı olmalıdır. Sondaki/,httpilehttpsfarkı ya da fazladan bir yol eşleşmeyi bozar. http://127.0.0.1vehttp://[::1]adreslerinde port farkı yok sayılır.http://localhostiçin böyle bir istisna yoktur.- Kayıtlı olmayan bir adrese yönlendirme yapılmaz. İstek
401veinvalid_clientile döner. - Tek bir adres kaydettiyseniz yetkilendirme isteğinde
redirect_urigöndermeyebilirsiniz. Gönderdiyseniz token isteğinde de aynen göndermeniz gerekir.
PUT /api/v1/oauth/clients/{id} kullanın (Update:Client, scope oauth_clients:write). Gönderdiğiniz liste eskisinin yerine geçer. Yalnızca gönderdiğiniz alanlar güncellenir. Çıkış adreslerini temizlemek için post_logout_redirect_uris alanına [] gönderin. Panelde aynı işlem satır menüsündeki Düzenle ile yapılır. Bu pencerede yalnızca ad ve adresler değişir.
Gizli anahtar
Gizli anahtar (secret) 40 karakterlik rastgele bir değerdir. Yalnızca uygulamayı oluşturduğunuz yanıtta ve yenilediğiniz yanıtta görünür. Flextell anahtarı özetlenmiş (hash) biçimde saklar, bu yüzden sonradan okuyamaz.
Token uç noktasında anahtarı client_secret olarak gövdede ya da HTTP Basic ile gönderirsiniz. Anahtarı göndermezseniz 400 invalid_request, yanlış gönderirseniz 401 invalid_client alırsınız. Ayrıntı için Yetkilendirme kodu ve PKCE sayfasına bakın.
Anahtarı kaybettiyseniz
POST /api/v1/oauth/clients/{id}/secret yeni bir 40 karakterlik anahtar üretir. İzin Update:Client, scope oauth_clients:write. Yanıt, yeni anahtarı yine yalnızca bir kez gösterir.
- Eski anahtar token uç noktasında hemen çalışmaz hâle gelir.
- Daha önce verilmiş token’lar geçerliliğini korur.
- Panelde anahtarı yenileme düğmesi yoktur. Bu işlemi yalnızca API ile yaparsınız.
Scope atama
Uygulamanın isteyebileceği scope’lar, oluşturma sırasındascopes alanında belirlenir. Atanabilecek scope’ların güncel listesini GET /api/v1/oauth/scopes döndürür ({scope, description}, scope’a göre sıralı). Tüm scope’ların anlamı için Scope’lar sayfasına bakın.
Atamayı sonradan değiştirmek için PUT /api/v1/oauth/clients/{id}/scopes kullanın. İzin UpdateScopes:Client (Kapsamları güncelleme), scope oauth_clients:write. Gönderdiğiniz liste tamamını değiştirir.
Bir isteğin gerçek yetkisi üç şeyin kesişimidir: token’daki scope, kullanıcının o klinikteki izinleri ve kullanıcının klinik üyeliği. Uygulamaya geniş scope vermek, kullanıcının sahip olmadığı bir izni açmaz.
Uygulamayı iptal etme
İptal, uygulamanın erişimini geri alınabilir biçimde keser. Silme ise uygulamayı kaldırır.
Hepsi
oauth_clients:write scope’u ister. Zaten iptal edilmiş bir uygulamayı iptal etmek 422 OAUTH_CLIENT_ALREADY_REVOKED (Bu uygulamanın erişimi zaten kaldırılmış.), etkin bir uygulamayı etkinleştirmek 422 OAUTH_CLIENT_NOT_REVOKED (Bu uygulama zaten aktif.) döndürür.
Panelde satır menüsünde etkin uygulama için İptal Et, iptal edilmiş uygulama için Etkinleştir, her ikisi için Sil vardır. Her işlem bir onay penceresi açar. Listede Aktiflik sütunu Aktif ya da Pasif gösterir. Panelde İptal Et, uygulamayı silmez; yalnızca erişimini kaldırır.
GET /oauth/clients/{id}/tokens uygulama için verilmiş access token’ları (tüm kullanıcılar dahil) en yeniden eskiye listeler. Diğer uç noktaların şemaları için OAuth uygulamaları sayfasına bakın.
Hatalar
Genel hata yapısı için Kimlik doğrulama hataları sayfasına bakın.
İlgili sayfalar
Yetkilendirme kodu ve PKCE
Kayıtlı uygulamanızla kullanıcı adına token alın.
Scope'lar
Atayabileceğiniz scope’ların listesi.
Token'lar
Access token, refresh token ve süreleri.
Uygulamalar (panel)
Panel ekranının ayrıntılı anlatımı.