Hyresgästisolering i multi-tenant-applikation
Hyresgästisolering är ett viktigt begrepp i multi-tenant applikationer. I den här artikeln kommer vi att diskutera vad det är och hur det kan uppnås.
Hej allihopa! I det här kapitlet kommer vi att bygga vidare på våra tidigare diskussioner om multi-tenant ämnen. Om du inte har läst de tidigare artiklarna än, rekommenderar vi att du börjar med dem först!
När man diskuterar multi-tenant applikationer är det viktigt att tänka på hyresgästisolering. Detta innebär att hålla olika hyresgästers data och resurser åtskilda och säkra inom ett delat system (till exempel en molninfrastruktur eller en multi-tenant applikation).
Målet med hyresgästisolering är att se till att varje hyresgästs data och verksamhet förblir distinkta och säkra från varandra, även när de använder samma underliggande resurser.
I ett Software as a Service (SaaS)-scenario innebär hyresgästisolering att skapa strukturer inom SaaS-ramverket som strikt reglerar resursåtkomst. Detta förhindrar alla obehöriga försök att komma åt en annan hyresgästs resurser.
Även om förklaringen kan verka abstrakt, kommer vi att använda exempel och nyckeldetaljer för att ytterligare förklara isoleringstanken.
Hyresgästisolering går inte emot multi-tenancys "delade" tänkesätt
Det är eftersom hyresgästisolering inte nödvändigtvis är en infrastruktursresursnivåkoncept. Inom området multi-tenancy och isolering anser vissa att isolering är en strikt uppdelning mellan faktiska infrastruktursresurser. Detta leder vanligtvis till en modell där varje hyresgäst har separata databaser, datorkluster, konton eller privata moln. I delade resurscenarier, som multi-tenant appar, kan sättet att uppnå isolering vara en logisk konstruktion.
Hyresgästisolering fokuserar uteslutande på att använda "hyresgäst"-kontext för att begränsa åtkomsten till resurser. Det utvärderar kontexten för den aktuella hyresgästen och använder den kontexten för att avgöra vilka resurser som är tillgängliga för den hyresgästen. Denna isolering tillämpas på alla användare inom den hyresgästen. Varje försök att komma åt en hyresgästs resurs bör begränsas till just de resurser som tillhör den hyresgästen.
Isolering finns på olika nivåer
När vi förstår att isolering inte strikt är knuten till infrastruktursresursnivåer och inte är en tydlig separation mellan fysisk infrastruktur, leder det till en slutsats som denna:
Istället för att se isolering som ett enkelt "ja" eller "nej" kan du se det som ett spektrum. Du kan ställa in delar av ditt system för att vara mer eller mindre isolerade beroende på vad du behöver.
Diagrammet nedan illustrerar detta spektrum av isolering.
Autentisering och auktorisering är inte lika med "isolering"
Att använda autentisering och auktorisering för att kontrollera åtkomsten till dina SaaS-miljöer är viktigt, men det är inte tillräckligt för fullständig isolering. Dessa mekanismer är bara en del av säkerhetspusslet.
Folk frågar ofta en fråga, kan jag använda allmänna auktoriseringslösningar och rollbaserad åtkomstkontroll för att uppnå hyresgästisolering? Du kan bygga en multi-tenant app men du kan inte säga att du uppnått och implementerat hyresgästisoleringsstrategier som en bästa praxis. Vi rekommenderar det generellt inte eftersom
För att illustrera, överväg en situation där du har ställt in autentisering och auktorisering för ditt SaaS-system. När användare loggar in får de en token som innehåller information om deras roll, vilket dikterar vad de kan göra i applikationen. Denna metod förbättrar säkerheten men säkerställer inte isolering.
Här är kruxet: Utan att inkorporera "hyresgäst"-kontext, såsom en hyresgäst-ID, för att begränsa åtkomsten till resurser, kommer det inte att förhindra en användare med rätt roll från att komma åt en annan hyresgästs resurser bara genom att förlita sig på autentisering och auktorisering.
Det är här hyresgästisolering kommer in. Det använder hyresgästspecifika identifierare för att etablera gränser, ungefär som väggar, dörrar och lås, vilket säkerställer en tydlig separation mellan hyresgäster.
Identitet i multi-tenant appar
Vi diskuterade hyresgästisolering, men vad sägs om identiteter? Hur bestämmer du om dina identiteter ska vara "isolerade" eller inte?
Det finns ofta förvirring kring begreppet "identitetsisolering." Det kan hänvisa till situationer där en verklig användare har två identiteter i människors allmänna förståelse.
- Båda identiteterna kan existera inom ett enda identitetssystem. Till exempel kan Sarah ha en personlig e-post registrerad tillsammans med en företags-e-post ansluten genom single sign-on (SSO).
- Användare upprätthåller två distinkta identiteter inom separata identitetssystem, vilka representerar helt separata produkter. Dessa produkter är helt obundna till varandra.
Ibland kallas dessa scenarier för "Identitetsisolerade." Ändå kanske denna etikett inte hjälper till att fatta ett beslut.
Istället för att avgöra om du behöver "identitetsisolering," överväg om du eller en del av ditt företag eller produkt behöver upprätthålla separata identitetssystem. Detta svar kan guida din Identity and Access Management (IAM) systemdesign. För ett kort svar angående en multi-tenant app,
I de flesta fall, i multi-tenant appar, är identiteter delade medan varje hyresgästs resurser är isolerade.
I multi-tenant applikationer är identiteter, till skillnad från hyresgästspecifika resurser och data, delade mellan flera hyresgäster. Föreställ dig själv som byggnadsadministratören; du skulle inte vilja upprätthålla två separata namnlappar för att hantera dina hyresgästers identiteter.
När du strävar efter hyresgästisolering, kan du ha märkt den återkommande betoningen på termen "organisation," ofta betraktad som en bästa praxis för att bygga multi-tenant applikationer.
Genom att använda begreppet "organisation" kan du uppnå hyresgästisolering i din multi-tenant applikation samtidigt som du upprätthåller ett enhetligt identitetssystem. Detta tillåter flera "organisationer" att existera oberoende, men dela hyresgästagnostiska resurser inom applikationen. Likt boende i en byggnad, använder varje organisation applikationen utan att bekymra sig för sina grannar, eftersom "organisationen" ger den nödvändiga separationen i form av väggar, korridorer, dörrar och lås. De delar den övergripande byggnadsinfrastrukturen, inredningssystemet och olika fysiska eller immateriella komponenter.
Logto lanserar "Organisation"-funktionen i november
Logto är för närvarande i aktiv utveckling av "Organisation"-funktionen, med en planerad lansering i november 2023. Denna funktion är specifikt utformad för att möta de hyresgästisoleringskrav som är nödvändiga för att bygga en SaaS-produkt, i linje med branschstandarder och bästa praxis.
I det kommande kapitlet kommer vi att fördjupa oss i "Organisation"-funktionen och hur Logto underlättar implementeringen av bästa praxis för att bygga en multi-tenant applikation.