Türkçe
  • organizations
  • işbirliği
  • kimlik
  • kullanıcı yönetimi
  • kimlik doğrulama
  • yetkilendirme

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.

Gao
Gao
Founder

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.

Organizations örneği

Ö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:

Organizasyon şablonu

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, Bob member rolüne sahiptir.
  • Organizasyon B: Sadece Alice üyedir ve member rolüne sahiptir.

Organizasyon A

Organizasyon B

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.

Yeni organizasyon rolleri

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.