• wielo-najemczy
  • saas
  • oprogramowanie
  • rozwój
  • architektura

Izolacja najemcy w aplikacji z wieloma najemcami

Izolacja najemcy jest kluczowym pojęciem w aplikacjach z wieloma najemcami. W tym artykule omówimy, czym ona jest i jak można ją osiągnąć.

Guamian
Guamian
Product & Design

Witajcie wszyscy! W tym rozdziale będziemy kontynuować naszą wcześniejszą dyskusję na temat wielonajemczych zagadnień. Jeśli jeszcze nie przeczytaliście poprzednich artykułów, zalecamy zacząć od nich!

Podczas omawiania aplikacji z wieloma najemcami ważne jest, aby pamiętać o izolacji najemcy. Oznacza to utrzymanie danych i zasobów różnych najemców oddzielnie i bezpiecznie w ramach wspólnego systemu (na przykład infrastruktury chmurowej lub aplikacji wielonajemczej).

Celem izolacji najemcy jest zapewnienie, że dane i operacje każdego najemcy pozostaną odrębne i bezpieczne od siebie nawzajem, nawet jeśli używają tych samych podstawowych zasobów.

W scenariuszu Software as a Service (SaaS) izolacja najemcy polega na tworzeniu struktur w ramach SaaS, które ściśle regulują dostęp do zasobów. Zapobiega to jakimkolwiek nieautoryzowanym próbom dostępu do zasobów innego najemcy.

Chociaż wyjaśnienie może wydawać się abstrakcyjne, użyjemy przykładów i kluczowych szczegółów, aby lepiej wytłumaczyć mentalność izolacyjną.

Izolacja najemców nie jest sprzeczna z „wspólnym” podejściem multi-tenancy

Jest tak, ponieważ izolacja najemców nie jest koniecznie konstruktem na poziomie zasobów infrastrukturalnych. W dziedzinie wielo-najemczości i izolacji niektórzy postrzegają izolację jako ścisłe podzielenie rzeczywistych zasobów infrastrukturalnych. Zwykle prowadzi to do modelu, w którym każdy najemca ma oddzielne bazy danych, instancje obliczeniowe, konta lub prywatne chmury. W scenariuszach współdzielenia zasobów, takich jak aplikacje wielonajemcze, sposób osiągnięcia izolacji może być konstruktem logicznym.

Izolacja najemców koncentruje się wyłącznie na używaniu kontekstu „najemcy” do ograniczania dostępu do zasobów. Ocenia kontekst obecnego najemcy i używa tego kontekstu, aby ustalić, które zasoby są dostępne dla tego najemcy. Stosuje tę izolację do wszystkich użytkowników w ramach tego najemcy. Każda próba dostępu do zasobu najemcy powinna być ograniczona tylko do tych zasobów, które należą do tego najemcy.

Izolacja występuje na różnych poziomach

Kiedy zrozumiemy, że izolacja nie jest ściśle związana z poziomami zasobów infrastrukturalnych i nie jest wyraźnym oddzieleniem między fizyczną infrastrukturą, prowadzi to do konkluzji takiej jak ta:

Zamiast postrzegać izolację jako proste „tak” lub „nie”, należy traktować ją jako spektrum. Możesz ustawić części swojego systemu, aby były bardziej lub mniej wyizolowane w zależności od tego, czego potrzebujesz.

Poniższy diagram ilustruje to spektrum izolacji.

izolacja wspólna

Uwierzytelnianie i autoryzacja nie są równoznaczne z „izolacją”

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

Ludzie często pytają, czy można użyć ogólnych rozwiązań autoryzacyjnych i kontroli dostępu opartej na rolach do osiągnięcia izolacji najemcy. Możesz zbudować aplikację wielonajemczą, ale nie możesz powiedzieć, że osiągnąłeś i stosujesz strategie izolacji najemcy jako najlepszą praktykę. Generalnie tego nie zalecamy, ponieważ

Aby to zilustrować, rozważ sytuację, w której ustanowił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ą zrobić w aplikacji. To podejście zwiększa bezpieczeństwo, ale nie zapewnia izolacji.

Teraz, oto haczyk: Bez uwzględnienia kontekstu „najemcy”, takiego jak identyfikator najemcy, w celu ograniczenia dostępu do zasobów, poleganie wyłącznie na uwierzytelnianiu i autoryzacji nie uniemożliwi użytkownikowi z odpowiednią rolą dostępu do zasobów innego najemcy.

Tutaj wkracza izolacja najemcy. Używa specyficznych dla najemcy identyfikatorów do ustanowienia granic, podobnie jak ściany, drzwi i zamki, zapewniając wyraźne oddzielenie między najemcami.

Tożsamość w aplikacjach wielo-najemczych

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

Często występuje zamieszanie wokół pojęcia "izolacji tożsamości". Może to odnosić się do sytuacji, w których jeden rzeczywisty użytkownik ma dwie tożsamości w powszechnym rozumieniu ludzi.

  1. Obie tożsamości mogą istnieć w jednym systemie tożsamości. Na przykład, Sarah może mieć zarejestrowany osobisty adres e-mail obok korporacyjnego e-maila połączonego poprzez pojedyncze logowanie (SSO).
  2. Użytkownicy utrzymują dwie odrębne tożsamości w oddzielnych systemach tożsamości, reprezentujących całkowicie oddzielne produkty. Te produkty są całkowicie niezwiązane ze sobą.

Czasami te scenariusze określane są jako "izolacja tożsamości." Mimo to, ta etykieta może nie pomóc w podjęciu decyzji.

Zamiast określenia, czy potrzebujesz "izolacji tożsamości," rozważ, czy ty lub segment twojego biznesu lub produktu musi utrzymać odrębne systemy tożsamości. Odpowiedź na to pytanie może kierować projektowaniem twojego systemu Zarządzania Tożsamością i Dostępem (IAM). Dla krótkiej odpowiedzi dotyczącej aplikacji wielo-najemczych,

W większości przypadków, w aplikacjach wielo-najemczych, tożsamości są wspólne, podczas gdy zasoby każdego najemcy są izolowane.

W aplikacjach wielo-najemczych, tożsamości, w przeciwieństwie do zasobów i danych specyficznych dla najemcy, są współdzielone między wieloma najemcami. Wyobraź sobie siebie jako administratora budynku; nie chciałbyś utrzymywać dwóch oddzielnych list nazwisk, aby zarządzać tożsamościami swoich najemców.

Dążąc do izolacji najemców, mogłeś zauważyć powtarzanie się nacisku na termin "organizacja," często postrzegany jako najlepsza praktyka dla budowy aplikacji wielo-najemczych.

Stosując pojęcie "organizacji," możesz osiągnąć izolację najemców w swojej aplikacji wielo-najemczej, jednocześnie utrzymując zunifikowany system tożsamości. Pozwala to na współistnienie wielu "organizacji" niezależnie, ale dzielenie się zasobami niepowiązanymi z najemcą w aplikacji. Podobnie jak mieszkańcy żyjący w budynku, każda organizacja korzysta z aplikacji bez troski o swoich sąsiadów, ponieważ "organizacja" zapewnia niezbędne oddzielenie w postaci ścian, korytarzy, drzwi i zamków. Dzielą one ogólną infrastrukturę budynku, system projektowania wnętrz i różne materialne lub niematerialne komponenty.

Logto wprowadza funkcję "Organizacja" w listopadzie

Logto jest obecnie w fazie aktywnego rozwoju funkcji "Organizacja", której premiera planowana jest na listopad 2023. Funkcja ta jest specjalnie opracowana, aby spełniać wymagania izolacji najemców niezbędne do budowy produktu SaaS, zgodnie z branżowymi standardami i najlepszymi praktykami.

W nadchodzącym rozdziale zagłębimy się w funkcję "Organizacja" i jak Logto ułatwia wdrażanie najlepszych praktyk dla budowy aplikacji wielo-najemczych.