Sahne Arkası: Kullanıcı İş Birliğini Çok Kiracılı Bir Uygulamada Nasıl Uyguluyoruz
Davetiye ve rol erişim yönetimi özelliğinin, Logto Cloud işbirliği gibi, çok kiracılı uygulamada nasıl uygulanacağına dair pratikler ve içgörüler.
Arka Plan
Geçen hafta, Logto Cloud'daki işbirliği özelliğini tanıttık. Kaçırdıysanız, bir göz atın! Artık meslektaşlarınızı ve iş arkadaşlarınızı mevcut Logto kiracılarınıza davet ederek, uygulamalarınız için kimlik sistemini birlikte sürdürebilirsiniz.
Bu özellik güncellemesinde, her bir Logto kiracısına iki rol ekledik:
- Yönetici: Kimlikle ilgili kaynakların yönetimi, diğer üyelerin davet edilmesi ve yönetimi, fatura işleme ve fatura geçmişini görüntüleme dahil olmak üzere kiracıya tam erişim.
- İş Birlikçi: Kimlikle ilgili kaynakları yönetebilir, ancak diğer yönetici özelliklerine erişimi yoktur.
Kendi araçlarımızı kullanma taahhüdümüze uygun olarak, kullanıcı iş birliğini oluştururken RBAC (Rol Tabanlı Erişim Kontrolü) ve Organizasyonlar özelliğimizi kullandık. RBAC'ye yeniyseniz, başlamak için önceki yazımıza göz atın.
Bu blog yazısında, bu özelliği uygularken nelerin dahil olduğuna ve bu uygulamaların çok organizasyonlu uygulamalar geliştiriyorsanız size nasıl fayda sağlayabileceğine bakalım.
Logto Cloud'un iş birliği Logto Organizasyonları ile inşa edilmiştir
Her Logto Cloud kiracısı, sistemimizdeki bağımsız bir organizasyon olarak işlev görür ve kendi Organizasyonlar özelliğimiz tarafından desteklenir. Kiracı yönetici ve iş birlikçi rollerini tanıtmak için organizasyon şablonunda iki organizasyon rolü oluşturduk ve her biri belirli bir organizasyon izin setiyle atanmıştır.
Davetleri Logto Yönetim API'si ile yönetin
Organizasyonlar özelliğinde davetle ilgili bir dizi Yönetim API'si sağladık. Bu API'ler ile, örneğin:
POST /api/organization-invitations
bir e-posta adresine organizasyon daveti oluşturun ve gönderinGET /api/organization-invitations
veGET /api/organization-invitations/{id}
davetlerinizi alınPUT /api/organization-invitations/{id}/status
davet durumunu güncelleyerek daveti kabul edin veya reddedin
Daha fazla ayrıntı için tam API dokümantasyonuna bakın.
E-posta bağlayıcınızla bağlanın
Davetler e-posta ile gönderildiğinden, e-posta bağlayıcınızın doğru şekilde yapılandırıldığından emin olun. Bu güncellemede, davet e-posta şablonunun özelleştirilmesine olanak tanıyan yeni bir e-posta şablonu kullanım türü olan OrganizationInvitation
tanıttık.
Bu e-posta şablonu, varsayılan olarak bir {{link}}
değişkenini kabul eder, bu değişken Logto Konsol'unun iniş sayfasındaki bağlantıdır. Kullanıcılar bu sayfada daveti kabul edebilir ve bir Logto kiracısına katılabilirler. Logto Cloud'daki iniş sayfalarından biri aşağıdaki ekran görüntüsünde görünmektedir:
Yönetim API'si aracılığıyla davet e-postasını göndermek hakkında daha fazla ayrıntı için API dokümantasyonuna bakın.
RBAC ile kullanıcı izinlerini yönetin
Yukarıdaki yapılandırmalarla, e-posta aracılığıyla davetler gönderebiliriz ve davet edilenler atanmış rollerle organizasyona katılabilirler.
Farklı organizasyon rolleri olan kullanıcılar, erişim jetonlarında farklı kapsamlar (izinler) sahip olacaktır. Bu nedenle, hem istemci uygulaması (Logto Konsol) hem de arka uç hizmetlerimiz, görünür özellikleri ve izin verilen işlemleri belirlemek için bu kapsamları kontrol etmelidir.
Tamam, şimdiye kadar her şey bağlantılı görünüyor, başka neyi kaçırdık?
Erişim jetonlarında kapsam güncellemelerini yönetin
Erişim jetonlarında kapsam güncellemelerini yönetmek şunları içerir:
- Mevcut kapsamların iptali: Örneğin, bir yöneticiyi yöneticilik dışı bir işbirlikçiye düşürmek, mevcut yenileme jetonu ile alınan yeni erişim jetonundaki kapsamları otomatik olarak daraltır.
- Yeni kapsamların verilmesi: Tersine, bir kullanıcıyı yönetici olarak terfi ettirmek, kullanıcı erişim jetonundaki değişiklikleri yansıtmak için bir yeniden giriş veya yeniden izin sürecini tetiklemeyi gerektirir.
Logto Cloud'da, Konsol kullanıcı kapsamlarını SWR istekleri kullanarak aktif olarak kontrol eder ve bir kullanıcı yönetici olarak terfi ettirildiğinde otomatik olarak izin veririz.
Benzer bir özelliği RBAC ile uyguluyorsanız, kapsam güncellemeleri hakkında uygulamanızı bilgilendirmek, yeniden izin vermeyi sağlamak veya buna göre yeni erişim jetonları çıkarmak için bir mekanizmaya (örneğin, WebSocket veya sunucu itme olayları) ihtiyacınız olacaktır. Logto, gelecekteki güncellemelerde bu konuda daha fazla webhook sağlayacaktır.
Özetle
Logto Cloud'un çok kiracılı ve işbirliği özellikleri, Organizasyonlar özelliğimizi kullanır. Benzer bir çok kiracılı uygulama geliştiriyorsanız, bu özelliği benzer yaklaşımlarla kullanmayı düşünün.
Umarım bu blog yazısı faydalı olmuştur. Sorularınız veya tartışmalar için, Discord kanalımıza katılmaktan çekinmeyin.