Logto'nun çoklu kira modeli açıklandı
Logto'nun çoklu kira modelini nasıl tasarladığımıza ve SaaS uygulamalarına getirdiği faydalara bir göz atın.
Kafa karışıklığı
"Çoklu kira" teriminin kimlik izolasyonunu temsil etmek için kullanıldığı bazı ürünler hakkında duyum almış olabilirsiniz: her kiracının kendi kullanıcılar, roller, izinler ve veriler seti vardır.
Bu sezgisel olmayabilir, ancak aslında "çoklu kira" tam tersini ifade eder: birden fazla kiracı tek bir örnekte kaynakları paylaşır. Kullanıcılar için, bir uygulamadaki bir kimlik, ehliyet gibidir. Örneğin, tek bir ehliyetle farklı eyaletlerde araba sürebilirsiniz (birden fazla organizasyon için tek bir kimlik), her eyalet için yeni bir ehliyet çıkartmanıza gerek kalmaz.
Logto’nun modeli
Logto'da, tasarımımızın başında bu kafa karışıklığını fark ettik ve uygulamalarınız ve kullanıcılarınız için doğru yapmaya gayret ettik. İşte tasarımımız:
- Bir kiracı, kendi kullanıcılar, izinler ve veri setine sahip tek bir Logto örneği olarak ele alınabilir.
- Bir kiracının içinde birden fazla organizasyon olabilir. Bir kullanıcı birden fazla organizasyon üyesi olabilir.
- Her organizasyon için, rol tabanlı erişim kontrolü (RBAC) modelini takip eder ve aynı organizasyon rolleri ve organizasyon izinleri setini kullanır. Bu set organizasyon şablonu olarak adlandırılır.
- Organizasyon roller ve organizasyon izinleri, yalnızca bir organizasyon bağlamında geçerlidir.
- Örneğin, bir kullanıcı bir organizasyonda "admin" (rol) olabilir, ancak başka bir organizasyonda "üye" (rol) olabilir.
- Organizasyon bağlamı olmadan, organizasyon rolleri ve organizasyon izinleri anlamsızdır.
- Bir organizasyonda, erişimi kontrol etmek için organizasyon izinlerini kullanın, organizasyon rollerini kullanmayın.
Bu model, kimlikleri yönetmek için esneklik ve yeniden kullanılabilirlik sağlar, özellikle SaaS uygulamaları için. Popüler birkaç SaaS uygulamasına bakarsak, hepsinin bu modele uyabileceğini görebiliriz. "Organizasyon" terimi farklı uygulamalarda değişiklik gösterebilir, örneğin "çalışma alanı", "ekip" vb. olarak adlandırılabilir. Ancak kavram aynıdır.
Örneğin, Notion'da (popüler bir işbirliği aracı):
- Tek bir hesapla birden fazla çalışma alanı oluşturabilir ve katılabilirsiniz, her çalışma alanı için farklı hesaplarla kaydolmanıza gerek yoktur.
- Her çalışma alanı için, Notion erişim seviyelerini aynı şekilde tanımlar: "Çalışma alanı sahibi" ve "üye", ancak farklı çalışma alanları için farklı erişim seviyeleri umabilirsiniz.
Bu nedenle, kullanıcılar hesaplarını değiştirmeye veya yeniden giriş yapmaya gerek kalmadan çalışma alanları arasında kolayca geçiş yapabilir ve çalışma alanları arasında izolasyonu korur. Bunu Logto'nun modeline çevirirsek, bu şunları ifade eder:
- Organizasyon şablonu, iki rol tanımlar: "sahip" ve "üye".
- Eğer bir kullanıcı bir çalışma alanına katıldıysa, bu kullanıcı bir organizasyon üyesidir ve organizasyon içinde "üye" rolüne sahiptir.
- Eğer bir kullanıcı bir çalışma alanı oluşturduysa, bu kullanıcı bir organizasyon üyesidir ve organizasyon içinde "sahip" rolüne sahiptir.
Farklı rollere göre, bir kullanıcı farklı çalışma alanlarında (organizasyonlarda) farklı izinlere sahip olabilir.
Faydalar
Kullanıcı deneyimi
Kullanıcılar için, gerçek tek oturum açma deneyiminin tadını çıkarabilirler. Organizasyonlar arasında geçiş yapmak, sekmeler arasında geçiş yapmak kadar kolaydır.
Yeniden kullanılabilirlik
SaaS uygulamalarının bir avantajı, standartlaştırılmış ve ölçeklenebilir olmalarıdır. Örneğin, Notion'da birkaç tıklama ile yeni bir çalışma alanı oluşturabilirsiniz ve kullanıma hazırdır.
Uygulamanız büyüdükçe, her organizasyona daha fazla rol ve izin eklemek isteyebilirsiniz. Örneğin, yeni bir rol "misafir" ve yeni bir izin "davet:misafir". Mevcut tüm organizasyonları teker teker güncellemeniz gerektiğinde bu bir kâbus olabilir.
Logto ile, organizasyon şablonunu güncelleyebilir ve tüm mevcut organizasyonlar otomatik olarak güncellenir.
Tek bir erişim kontrol modeli, birden fazla kullanım durumu
Logto'da aynı erişim kontrol modelini (RBAC) hem organizasyonlar hem de API kaynakları için kullanırız. Bu, RBAC'ye aşina iseniz, yeni bir erişim kontrol modelini öğrenmenize gerek olmadığı anlamına gelir. Aynı zamanda, bunlar birbirinden izole edildiğinden, bunları farklı kullanım durumları için kullanabilirsiniz.
En heyecan verici kısım, bunları aynı anda kullanabilmenizdir. Notion örneğini genişletelim:
- Çalışma alanlarına erişmek için Logto organizasyon RBAC'yi kullanabilirsiniz.
- Hesap düzeyindeki kaynaklara (profil ve fatura bilgileri gibi) erişmek ve güncellemek için Logto API kaynağı RBAC'yi kullanabilirsiniz.
Çoğu Logto SDK'sı her iki tür RBAC'yi de destekler.
Farklılıklar
Organizasyon RBAC ve API kaynağı RBAC şu açılardan farklıdır:
- Organizasyon RBAC organizasyonun bağlamını gerektirir, ancak API kaynağı RBAC bunu gerektirmez.
- Organizasyon RBAC bir organizasyondaki erişimi kontrol etmek için kullanılırken, API kaynağı RBAC API kaynaklarına erişimi kontrol etmek için kullanılır.
- Bir kullanıcı farklı organizasyonlarda farklı organizasyon rollerine sahip olabilirken, API kaynağı için roller kiracıda evrenseldir.
- Roller ve izinler, bu iki RBAC türü için izole edilmiştir.
Kapanış notları
Bir SaaS uygulaması oluşturmak zor bir iştir ve umarız Logto size temel işinize odaklanmanızda yardımcı olabilir. Herhangi bir sorunuz veya öneriniz varsa, geri bildirimde bulunmaktan çekinmeyin.