Video: Referensarkitektur för identitet och åtkomst 2024
Att auktorisera en användare för åtkomst till information eller databasfunktionalitet är en sak, men innan du kan göra det det måste du vara säker på att systemet "vet" att användaren är vem hon säger att hon är. Det här är där autentisering kommer in. Autentisering kan hända inom en viss databas, eller det kan delegeras till en extern tjänst - sålunda termen Identity and Access Management (IdAM).
När relationsdatabaser introducerades fanns det bara några standarder kring autentisering. Därför används de flesta relationsdatabaser fortfarande med användarnamn och lösenord för interna databaser. De flesta NoSQL-databaser tar detta tillvägagångssätt, med bara några stödjande externa autentiseringsstandarder.
Den vanligaste moderna standarden är LDAP (Lightweight Directory Access Protocol). Intressant är att de flesta LDAP-system är byggda ovanför relationsdatabaser som håller systemets information!
NoSQL databaser är en modern uppfinning. De uppträdde i en tid då befintliga autentiserings- och auktoriseringsmekanismer och -standarder existerar, och så många har något sätt att integrera med dem.
Var ska man börja? Integrerar du din NoSQL-databas med bara en enda IdAM-produkt, eller försöker du skriva många (eventuellt oanvända) säkerhetsintegrationer och riskerar att göra dem dåligt? Det är frestande att förvänta sig att NoSQL-databaser ska ligga före kurvan här - men låt oss vara realistiska. Ingen programvaruutvecklare kan eventuellt stödja alla de olika säkerhetssystemen där ute.
Istället har varje NoSQL-databas ett eget internt autentiseringsschema, och brukar stödja för att plugga in din egen anpassade leverantör. NoSQL-databaser ger en plugin-mekanism som ett första steg innan du använder denna mekanism för att genomföra specifika standarder.
Även om en brist på säkerhetssystemintegrationer är en svaghet utifrån en box-ticking-övning, ger en plugin-mekanism faktiskt de här databaserna tillräckligt flexibla för att kunna integreras med alla säkerhetssystem du behöver.
Lyckligtvis är LDAP ett av de första alternativen som NoSQL-leverantörer integrerar. På Java-plattformen kan detta presenteras som stöd för Java Authentication and Authorization Standard (JAAS). Det här är en pluggbar arkitektur, och en av dess vanliga plug-ins är LDAP-katalogserverns support.
När du väljer en NoSQL-databas, får du inte hänga på att vissa inte stöder din exakta autentiseringstjänst. Så länge som programvaran kan anpassas relativt snabbt med databasens säkerhetsplugmekanism, kommer det att bli bra.Produktens kapacitet är viktigare, så länge som de stöder säkerhetsinställningar.
Det är här det är användbart att ha resurser från ett kommersiellt företag som stöder din NoSQL-databas. Att skriva dessa säkerhetsintegrationer kan ta dina programvaruutvecklare längre, och de kan till och med införa säkerhetsbuller. Kommersiella företag har resurser och erfarenhet av att erbjuda dessa integreringar till kunder.