• wielo-najemczość
  • saas
  • organizacja

Ostateczny przewodnik po konfiguracji uwierzytelniania i autoryzacji dla wielu najemców

Tworzenie aplikacji obsługującej wielu najemców może być skomplikowane. Ten artykuł zbiera wszystkie nasze wcześniejsze posty na temat strategii dla wielu najemców i organizacji. Mamy nadzieję, że pomoże Ci zaoszczędzić czas i łatwo rozpocząć pracę.

Guamian
Guamian
Product & Design

Budowanie aplikacji obsługującej wielu najemców może być wyzwaniem, z wieloma aspektami do rozważenia. Ten artykuł kompiluje wszystkie nasze wcześniejsze posty na blogu dotyczące rozumienia praktyk dla wielu najemców i organizacji. Aby szybko rozpocząć i zaoszczędzić czas, zapoznaj się z tym artykułem, zawiera wszystko, czego potrzebujesz!

Ogólne wytyczne są opisane w następujących krokach:

  1. Zrozumienie architektury dla wielu najemców
  2. Mapowanie przypadków użycia aplikacji dla wielu najemców
  3. Osiągnięcie izolacji najemcy
  4. Określenie, jak chcesz zarządzać tożsamościami
  5. Wybór odpowiednich modeli autoryzacji

Co to jest architektura dla wielu najemców

Wielo-najemczość oprogramowania to architektura oprogramowania, w której pojedyncza instancja oprogramowania działa na serwerze i obsługuje wielu najemców. Systemy zaprojektowane w taki sposób są „współdzielone” (a nie „dedykowane” lub „izolowane”).

Najemca to grupa użytkowników, którzy mają wspólny dostęp z określonymi uprawnieniami do instancji oprogramowania.

multi-tenant

Jednym z kluczowych elementów myślenia o wielo-najemczości jest „współdzielenie”. W szerszym rozumieniu pojęcie wielo-najemczości nie oznacza, że każdy komponent rozwiązania jest współdzielony. Oznacza to raczej, że co najmniej niektóre komponenty rozwiązania są ponownie używane przez wielu najemców. Zrozumienie tego terminu w szeroki sposób może lepiej pomóc w zrozumieniu potrzeb klienta i skąd one wynikają.

Kiedy już zrozumiesz architekturę dla wielu najemców, następnym krokiem jest zastosowanie aplikacji do rzeczywistych scenariuszy, koncentrując się na konkretnych potrzebach produktu i biznesu.

Jakie są przypadki użycia aplikacji dla wielu najemców?

Aplikacje dla wielu najemców w SaaS

Aplikacje dla wielu najemców często znajdują swoje miejsce w rozwiązaniach B2B, takich jak narzędzia do produktywności, oprogramowanie do współpracy i inne produkty software-as-a-service (SaaS). W tym kontekście każdy „najemca” zazwyczaj reprezentuje klienta biznesowego, który może mieć wielu użytkowników (swoich pracowników). Ponadto klient biznesowy może mieć wielu najemców, aby reprezentować różne organizacje lub jednostki biznesowe.

SaaS

Aplikacje dla wielu najemców w ogólnych przypadkach użycia B2B

Aplikacje B2B wykraczają poza produkty SaaS i często obejmują korzystanie z aplikacji dla wielu najemców. W kontekście B2B te aplikacje służą jako wspólna platforma dla różnych zespołów, klientów biznesowych i firm partnerskich, aby uzyskać dostęp do Twoich aplikacji.

Na przykład weźmy pod uwagę firmę zajmującą się transportem współdzielonym, która oferuje zarówno aplikacje B2C, jak i B2B. Aplikacje B2B obsługują wielu klientów biznesowych, a wykorzystanie architektury dla wielu najemców może pomóc w zarządzaniu ich pracownikami i zasobami. Aby to zilustrować, jeśli firma chce utrzymać zunifikowany system tożsamości użytkowników, może zaprojektować architekturę, jak w poniższym przykładzie:

Sarah ma zarówno osobistą, jak i biznesową tożsamość. Korzysta z usługi transportowej jako pasażerka, a także pracuje jako kierowca w wolnym czasie. W swojej roli zawodowej zarządza również swoim biznesem i używa tej tożsamości biznesowej, aby być partnerem Biznesu 1.

entities setupuser identity and role map

Dlaczego warto wykorzystać wielo-najemczość w produkcie SaaS

Skalowanie z wielo-najemczością

Dla przedsiębiorstw multi-tenancy jest kluczem do efektywnego spełniania ich wymagań dotyczących dostępności, zarządzania zasobami, zarządzania kosztami i bezpieczeństwa danych. Na poziomie technicznym przyjęcie podejścia multi-tenant upraszcza procesy deweloperskie, minimalizuje wyzwania techniczne i sprzyja bezproblemowej ekspansji.

Tworzenie zintegrowanego doświadczenia

Badając korzenie produktów SaaS, można je porównać do budynku mieszczącego różne mieszkania. Wszyscy najemcy dzielą wspólne potrzeby, takie jak woda, prąd i gaz, ale zachowują niezależną kontrolę nad zarządzaniem własną przestrzenią i zasobami. Takie podejście upraszcza zarządzanie nieruchomością.

Zapewnienie bezpieczeństwa dzięki izolacji najemcy

W architekturze dla wielu najemców wprowadzany jest termin „najemca” w celu stworzenia granic, które oddzielają i zabezpieczają zasoby i dane różnych najemców w ramach współdzielonej instancji. Zapewnia to, że dane i operacje każdego najemcy pozostają odrębne i bezpieczne, nawet jeśli korzystają z tych samych zasobów podstawowych.

Dlaczego powinieneś osiągnąć izolację najemcy?

Kiedy mówimy o aplikacjach obsługujących wielu najemców, zawsze trzeba osiągnąć izolację najemcy. Oznacza to utrzymanie danych i zasobów różnych najemców jako oddzielone i bezpieczne w ramach współdzielonego systemu (na przykład infrastruktury chmurowej lub aplikacji dla wielu najemców). Zapobiega to nieautoryzowanym próbom uzyskania dostępu do zasobów innego najemcy.

Chociaż to wyjaśnienie może wydawać się abstrakcyjne, użyjemy przykładów i kluczowych szczegółów, aby dalej wyjaśnić myślenie o izolacji i najlepsze praktyki osiągania jej.

Izolacja najemcy nie idzie wbrew myślom o współdzieleniu multi-tenancy

To dlatego, że izolacja najemcy nie jest koniecznie konstruktem na poziomie zasobów infrastrukturalnych. W sferze multi-tenancy i izolacji niektórzy traktują izolację jako ścisły podział między rzeczywistymi zasobami infrastrukturalnymi. To zwykle prowadzi do modelu, w którym każdy najemca ma oddzielne bazy danych, instancje obliczeniowe, konta lub prywatne chmury. W scenariuszach współdzielonych zasobów, takich jak aplikacje dla wielu najemców, sposób na osiągnięcie izolacji może być konstruktem logicznym.

Izolacja najemców skupia się wyłącznie na wykorzystaniu kontekstu „najemcy” w celu ograniczenia dostępu do zasobów. Oceniuje kontekst obecnego najemcy i wykorzystuje ten kontekst do określenia, które zasoby są dostępne dla tego najemcy.

Uwierzytelnianie i autoryzacja nie są równe „izolacji”

Korzystanie z uwierzytelniania i autoryzacji w celu kontrolowania dostępu do środowisk SaaS jest ważne, ale nie wystarcza do pełnej izolacji. Mechanizmy te są tylko częścią układanki bezpieczeństwa.

Często pada pytanie, czy mogę użyć ogólnych rozwiązań autoryzacji i kontroli dostępu opartej na rolach, aby osiągnąć izolację najemcy?

Oto rzecz, można zbudować aplikację dla wielu najemców, ale nie można powiedzieć, że osiągnięto i zastosowano strategie izolacji najemcy jako najlepszą praktykę. Generalnie tego nie zalecamy, ponieważ

Aby zilustrować, weźmy pod uwagę sytuację, w której skonfigurowałeś uwierzytelnianie i autoryzację dla swojego systemu SaaS. Kiedy użytkownicy się logują, otrzymują token zawierający informacje o ich roli, określający, co mogą robić w aplikacji. To podejście zwiększa bezpieczeństwo, ale nie zapewnia izolacji.

Używaj „organizacji”, aby reprezentować tenant SaaS, w celu osiągnięcia izolacji najemcy

Poleganie wyłącznie na uwierzytelnianiu i autoryzacji nie zapobiegnie temu, że użytkownik z odpowiednią rolą uzyska dostęp do zasobów innego najemcy. Musimy więc wprowadzić kontekst „najemcy”, taki jak identyfikator najemcy, aby ograniczyć dostęp do zasobów.

Tutaj wchodzi w grę izolacja najemcy. Używa identyfikatorów specyficznych dla najemcy do ustanawiania granic, podobnych do ścian, drzwi i zamków, zapewniając wyraźne oddzielenie między najemcami.

Zarządzanie tożsamością w aplikacjach dla wielu najemców

Omówiliśmy izolację najemców, ale co z tożsamościami? Jak decydujesz, czy Twoje tożsamości powinny być „izolowane” czy nie?

Często pojawia się zamieszanie wokół pojęcia „izolacji tożsamości”. Może ono odnosić się do sytuacji, w których jedna rzeczywista osoba ma dwie tożsamości w ogólnym rozumieniu ludzi.

  1. Obie tożsamości mogą istnieć w pojedynczym systemie tożsamości. Na przykład Sarah może mieć zarejestrowany osobisty adres e-mail obok firmowego adresu e-mail, połączonego przez jednokrotne logowanie (SSO).
  2. Użytkownicy utrzymują dwie odrębne tożsamości w oddzielnych systemach tożsamości, reprezentując całkowicie odrębne produkty. Produkty te są całkowicie niezwiązane ze sobą.

Czasami te scenariusze nazywane są „izolacją tożsamości”. Jednak ten termin może nie pomóc w podjęciu decyzji.

Zamiast określenia, czy wymagacie „izolacji tożsamości”, rozważcie

Odpowiedź na to pytanie może pomóc w projektowaniu systemu. W krótkiej odpowiedzi dotyczącej aplikacji dla wielu najemców,

W aplikacjach dla wielu najemców, tożsamości, w przeciwieństwie do zasobów i danych specyficznych dla najemcy, są współdzielone przez wielu najemców. Wyobraź sobie siebie jako administratora budynku; nie chciałbyś utrzymywać dwóch oddzielnych arkuszy imion do zarządzania tożsamościami najemców.

Dążąc do izolacji najemców, być może zauważyłeś powtarzający się nacisk na termin "organizacja", często uważany za najlepszą praktykę w budowaniu aplikacji dla wielu najemców.

Stosując pojęcie "organizacji", możesz osiągnąć izolację najemcy w aplikacji dla wielu najemców, jednocześnie utrzymując zintegrowany system tożsamości.

Jak wybrać i zaprojektować odpowiedni model autoryzacji

Wybierając właściwy model autoryzacji, należy rozważyć te pytania:

  1. Czy rozwijasz produkty B2C, B2B, lub ich kombinację?
  2. Czy Twoja aplikacja ma architekturę dla wielu najemców?
  3. Czy istnieje potrzeba określonego poziomu izolacji w aplikacji, określona przez jednostkę biznesową?
  4. Jakie uprawnienia i role muszą być zdefiniowane w kontekście organizacji, a które nie muszą?

Jakie modele autoryzacji są dostępne w Logto?

Kontrola dostępu oparta na rolach

RBAC (Role-Based Access Control) to metoda przyznawania uprawnień użytkownikom na podstawie ich ról, co umożliwia skuteczne zarządzanie dostępem do zasobów.

Ta powszechna technika leży u podstaw kontroli dostępu i jest kluczowym elementem funkcji autoryzacji Logto. Jako kompleksowa platforma zarządzania tożsamością, Logto oferuje dostosowane rozwiązania dla różnych warstw i podmiotów, odpowiadając na potrzeby deweloperów i firm w zakresie różnorodnych architektur produktów.

API roli opartej na kontroli dostępu

Aby chronić ogólne zasoby API, które nie są specyficzne dla żadnej organizacji i nie wymagają ograniczeń kontekstu, funkcja API RBAC jest idealna.

Wystarczy zarejestrować API i przypisać uprawnienia do każdego zasobu. Następnie kontrolować dostęp poprzez relację między rolami a użytkownikami.

Zasoby API, role i uprawnienia tutaj są „demokratyzowane” w ramach zintegrowanego systemu tożsamości. Jest to dość powszechne w produktach B2C z mniejszą hierarchią i niewymagających bardzo głębokiego poziomu izolacji.

Organizacja roli opartej na kontroli dostępu

W środowisku B2B i dla wielu najemców izolacja najemców jest konieczna. Aby to osiągnąć, organizacje są używane jako kontekst dla izolacji, co oznacza, że RBAC jest skuteczny tylko wtedy, gdy użytkownik należy do danej organizacji.

Organizacja RBAC koncentruje się na kontroli dostępu na poziomie organizacyjnym, a nie na poziomie API. To zapewnia znaczna elastyczność dla długoterminowego samodzielnego zarządzania na poziomie organizacji, ale nadal w ramach zintegrowanego systemu tożsamości.

Kluczową cechą organizacyjnej RBAC jest to, że role i uprawnienia są zazwyczaj takie same we wszystkich organizacjach domyślnie, co czyni „szablon organizacji” Logto niezwykle znaczącym dla zwiększenia efektywności rozwoju. To odpowiada wspólnej filozofii aplikacji wielo-najemczych, w których polityki kontroli dostępu i tożsamości są wspólnymi elementami infrastruktury dla wszystkich najemców (najemców aplikacji), co jest powszechną praktyką w produktach SaaS.

Zakończenie

Ten artykuł dostarcza wszystkiego, co potrzebujesz, aby rozpocząć przygotowywanie i konfigurowanie aplikacji dla wielu najemców. Wypróbuj Logto już dziś i zacznij stosować najlepsze praktyki w rozwijaniu aplikacji dla wielu najemców z organizacjami.