Vaka çalışması: Logto Organizations ile çoklu kiracılık inşa edin
Logto Organizations ile çoklu kiracılık için sağlam ve ölçeklenebilir bir kimlik temeli oluşturmayı öğrenin.
Günümüzde, çoklu kiracılık bir uygulamanın veya SaaS'ın temel bir parçası haline gelmiştir. Genellikle kullanıcılar, organizasyonlar, roller ve izinler arasındaki karmaşık ilişkiyi içerir. Örneğin, bir kullanıcı birden fazla organizasyonun üyesi olabilir, ve tam tersi; bir kullanıcı farklı organizasyonlarda farklı rollere sahip olabilir.
Problem
Bu durum sadece başlarda değil, bir uygulamanın uzun vadeli bakımı için de baş ağrısına yol açabilir. Geleneksel rol tabanlı erişim kontrolü (RBAC) modeli bu sorunu kısmen çözebilir, ancak kullanıcı ve organizasyon sayısı arttıkça hızla bir kabusa dönüşebilir.
Örneğin, başlangıçta her organizasyonda sadece iki rolünüz olabilir: admin
ve member
. 10 organizasyonunuz olduğunda, 20 rol yönetirsiniz; 1,000 organizasyonunuz olduğunda ise, 2,000 rol yönetirsiniz.
İş büyüdükçe, guest
, developer
gibi daha fazla rol eklemeniz gerekebilir. RBAC modelinin karmaşıklığı katlanarak artacaktır.
Logto Cloud'u inşa ettiğimizde aynı problemle karşılaştık. Bu problemin endüstri için yaygın olduğunu fark ettik ve çözmemiz gerekti. İşte Logto Organizations burada devreye giriyor.
Organizasyon şablonu
Hızlı bir soru: SaaS uygulamaları neden SaaS? Ölçeklenebilirliğin en önemli nedenlerden biri olduğuna inanıyoruz. Başka bir deyişle, bir müşteri için işe yarayan şey, tüm müşteriler için işe yaramalıdır.
Bu da "organizasyon şablonu" kavramına yol açar. Bir organizasyon şablonu, her organizasyon için erişim kontrol modelinin bir taslağıdır: tüm organizasyonlar için geçerli olan rolleri ve izinleri tanımlar.
Her organizasyon için iki rolümüz olduğunu varsayalım:
admin
: Üyeleri eklemek/çıkarmak, rolleri değiştirmek gibi organizasyonu yönetebilir.member
: Organizasyonun kaynaklarına erişebilir ve yeni üyeler davet edebilir.
Aşağıdaki yapılandırmayla bir organizasyon şablonu oluşturabiliriz:
Kullanıcıları organizasyonlara ekleyin
Organizasyon şablonunu kurduğumuzdan beri, kullanıcıları yönetmek kolay ve doğal hale gelir. Bir kullanıcıyı Logto Console (web arayüzü) veya Logto Yönetim API'si aracılığıyla bir organizasyona ekleyebilirsiniz.
Daha fazla bilgi için Organizasyonları yapılandırın bağlantısına bakın.
Aşağıdaki kurulumla iki organizasyon ekledik:
- Organizasyon A: Hem Alice hem de Bob üyedir. Alice
admin
rolüne sahipken, Bobmember
rolüne sahiptir. - Organizasyon B: Sadece Alice üyedir ve
member
rolüne sahiptir.
Uygulamanızda organizasyon jetonları talep edin
Müşteri uygulamanızda, artık Logto'dan bir organizasyon erişim jetonu (organizasyon jetonu) talep edebilirsiniz. Organizasyon jetonu, kullanıcının organizasyonda izinleri olup olmadığını doğrulamak için hizmetinizin gerekli bilgiler içeren bir JWT jetonudur.
Bir organizasyon jetonu talep etme adımlarının detayları Uygulamanızla Organizasyonları Entegre Edin bölümünde anlatılmıştır.
Alice'in uygulamanıza giriş yaptığını ve Organizasyon A'da bir kullanıcıyı kaldırmak istediğini varsayalım. Uygulamanız "Organizasyon A" için remove:member
izni (kapsam) ile bir organizasyon jetonu talep edebilir. Logto, Alice'in organizasyonda izninin olup olmadığını doğrulayacak ve admin
rolüne sahip olduğu için bir organizasyon jetonu döndürecektir:
İşte bazı hata durumu örnekleri:
- Bob, Organizasyon A'da bir kullanıcıyı kaldırmak isterse, Logto bir hata döndürecektir çünkü Organizasyon A'da
admin
rolüne sahip değildir. - Alice, Organizasyon B'de bir kullanıcıyı kaldırmak isterse, Logto bir hata döndürecektir çünkü Organizasyon B'de
admin
rolüne sahip değildir. - Bob, Organizasyon B'de herhangi bir izinle organizasyon jetonu almak isterse, Logto bir hata döndürecektir çünkü Organizasyon B'de üye değildir.
Uygulamanız organizasyon jetonunu aldıktan sonra, bunu Authorization
başlığına ekleyerek hizmetinizi çağırabilir.
Hizmetinizde organizasyon jetonlarını doğrulayın
Hizmetinizde, standart JWT doğrulama süreciyle organizasyon jetonunu doğrulayabilirsiniz. Daha fazla detay için Organizasyon jetonlarını doğrula bölümüne bakın.
Organizasyon şablonunu güncelleyin
Organizasyon şablonunu güncellemeniz gerektiğinde, örneğin developer
adında yeni bir rol eklemek isterseniz, bunu Logto Console veya Logto Yönetim API'si aracılığıyla yapabilirsiniz. Değişim, herhangi bir kesinti olmadan tüm organizasyonlara otomatik olarak uygulanacaktır.
Sonuç
Logto Organizations ile çoklu kiracılığı yönetmek ve ölçeklendirmek standart ve rahat hale gelir. İş mantığınıza odaklanabilir ve kimlik ve erişim kontrolünü Logto'ya bırakabilirsiniz.