• organizacje
  • współpraca
  • tożsamość
  • zarządzanie użytkownikami
  • uwierzytelnianie
  • autoryzacja

Studium przypadku: Budowa multi-tenancy z Logto Organizations

Dowiedz się, jak skonfigurować solidne i skalowalne podstawy tożsamości dla multi-tenancy z Logto Organizations.

Gao
Gao
Founder

W dzisiejszych czasach multi-tenancy stało się niezbędną częścią aplikacji lub SaaS. Często wiąże się to ze skomplikowanymi relacjami między użytkownikami, organizacjami, rolami i uprawnieniami. Na przykład, użytkownik może być członkiem wielu organizacji i odwrotnie; użytkownik może również mieć różne role w różnych organizacjach.

Problem

Może to prowadzić do problemów nie tylko na początku, ale także w długoterminowym utrzymaniu aplikacji. Tradycyjny model kontroli dostępu opartej na rolach (RBAC) może częściowo rozwiązać ten problem, ale szybko staje się koszmarem, gdy liczba użytkowników i organizacji rośnie.

Przykład organizacji

Na przykład, na początku możesz mieć tylko dwie role w każdej organizacji: admin i member. Kiedy masz 10 organizacji, będziesz zarządzać 20 rolami; kiedy masz 1000 organizacji, będziesz zarządzać 2000 rolami.

W miarę rozwoju biznesu możesz potrzebować dodać więcej ról, takich jak guest, developer, itd. Złożoność modelu RBAC będzie rosnąć wykładniczo.

Mieliśmy ten sam problem, kiedy budowaliśmy Logto Cloud. Szybko zdaliśmy sobie sprawę, że jest to powszechny problem w branży i musimy go rozwiązać. I tutaj z pomocą przychodzi Logto Organizations.

Szablon organizacji

Szybkie pytanie: Dlaczego aplikacje SaaS są SaaS? Wierzymy, że skalowalność jest jednym z najważniejszych powodów. Innymi słowy, to co działa dla jednego klienta, powinno działać dla wszystkich klientów.

To prowadzi do koncepcji "szablonu organizacji". Szablon organizacji jest planem modelu kontroli dostępu dla każdej organizacji: definiuje role i uprawnienia, które mają zastosowanie do wszystkich organizacji.

Załóżmy, że mamy dwie role dla każdej organizacji:

  • admin: może zarządzać organizacją, w tym dodawać / usuwać członków, zmieniać role, itp.
  • member: może uzyskiwać dostęp do zasobów organizacji i zapraszać nowych członków.

Możemy stworzyć szablon organizacji z następującą konfiguracją:

Szablon organizacji

Dodawanie użytkowników do organizacji

Ponieważ skonfigurowaliśmy szablon organizacji, zarządzanie użytkownikami staje się łatwe i naturalne. Możesz dodać użytkownika do organizacji poprzez Logto Console (interfejs webowy) lub poprzez Logto Management API

Zobacz Konfigurowanie organizacji, aby dowiedzieć się więcej.

Dodaliśmy dwie organizacje z następującą konfiguracją:

  • Organizacja A: Zarówno Alice jak i Bob są członkami. Alice ma rolę admin, a Bob ma rolę member.
  • Organizacja B: tylko Alice jest członkiem i ma rolę member.

Organizacja A

Organizacja B

Żądanie tokenów organizacji w twojej aplikacji

W aplikacji klienckiej możesz teraz zażądać tokenu dostępu do organizacji (token organizacji) z Logto. Token organizacji to token JWT, który zawiera niezbędne informacje wymagane przez twoją usługę do sprawdzenia, czy użytkownik ma uprawnienia w organizacji.

Szczegółowe kroki żądania tokenu organizacji są opisane w Integracja organizacji z twoją aplikacją.

Załóżmy, że Alice jest zalogowana do twojej aplikacji i chce usunąć użytkownika w Organizacji A. Twoja aplikacja może zażądać tokenu organizacji dla "Organizacji A" z uprawnieniem remove:member (zakres). Logto sprawdzi, czy Alice ma uprawnienia w organizacji i zwróci token organizacji, ponieważ ma rolę admin:

Oto kilka przykładów przypadków błędów:

  • Jeśli Bob chce usunąć użytkownika w Organizacji A, Logto zwróci błąd, ponieważ nie ma roli admin w Organizacji A.
  • Jeśli Alice chce usunąć użytkownika w Organizacji B, Logto również zwróci błąd, ponieważ nie ma roli admin w Organizacji B.
  • Jeśli Bob chce uzyskać token organizacji z dowolnym uprawnieniem w Organizacji B, Logto zwróci błąd, ponieważ nie ma członkostwa w Organizacji B.

Po tym, jak twoja aplikacja otrzyma token organizacji, może wywołać twoją usługę za pomocą tokenu organizacji, dodając go do nagłówka Authorization.

Weryfikacja tokenów organizacji w twojej usłudze

W twojej usłudze możesz zweryfikować token organizacji za pomocą standardowego procesu weryfikacji JWT. Zobacz Weryfikacja tokenów organizacji aby uzyskać więcej szczegółów.

Aktualizacja szablonu organizacji

Kiedy musisz zaktualizować szablon organizacji, na przykład dodać nową rolę o nazwie developer, możesz to zrobić w Logto Console lub poprzez Logto Management API. Zmiana zostanie automatycznie zastosowana do wszystkich organizacji bez żadnych przestojów.

Nowe role organizacji

Podsumowanie

Dzięki Logto Organizations zarządzanie i skalowanie multi-tenancy staje się standardowe i wygodne. Możesz skoncentrować się na logice biznesowej, a kwestię tożsamości i kontroli dostępu zostawić Logto.