Hem Personliga finanser Attributbaserad åtkomstkontroll (ABAC) i NoSQL-dummies

Attributbaserad åtkomstkontroll (ABAC) i NoSQL-dummies

Anonim

Ett användbart mönster för säkerhet är att tillämpa behörigheter baserade på data inom en post istället för att separat tilldela behörigheter till posten. Detta kan baseras på antingen metadata, enskilda kolumner (Bigtable kloner) eller element (Aggregate NoSQL databaser) värden.

Ett bra exempel är ett kundnamn som nämns i ett dokument. Du kanske vill begränsa åtkomsten till alla dokument som nämner det -kund till endast de personer som har tillgång till denna kunds information. Du kan begränsa åtkomsten till dessa dokument genom att bearbeta data i dokumentet och tillämpa relevanta säkerhetsbehörigheter baserat på värdet av den data.

Inga NoSQL-databaser ger denna möjlighet direkt ur lådan. Det beror på att behörigheter måste tilldelas posten efter det att data sparats av programmet men innan det är tillgängligt för hämtning av andra program eller användare. Så måste denna tillståndsuppgift ske inom transaktionsgränsen.

Även mycket få NoSQL-databaser stöder ACID-kompatibla transaktioner (MarkLogic, FoundationDB och Neo4j, gör till exempel). Om en databas inte stöder överlåtelse av behörigheter baserat på data i ett dokument, men stöder ACID-transaktioner och pre-commit-utlösare, är det enkelt att lösa.

Det är generellt lätt att skriva en trigger som kontrollerar förekomsten av ett värde inom en post och att ändra behörigheter baserat på dess värde. Så länge en databas stöder det under commitprocessen, och inte efter commit, så vet du att dina data är säkrade genom att använda en enkel pre-commit trigger.

Som ett exempel stöder MarkLogic Server fullständigt serialiserbara ACID-transaktioner och pre-commit triggers. Följande är ett enkelt XML-dokument som jag vill stödja för attributbaserad åtkomstkontroll:

jbloggs ACME Lorem Ipsum Dolar Sit Amet …

MarkLogic Server-utlösare använder W3C XQuery-språket. Följande XQuery-exempel är en enkel utlösare som, när den installeras i MarkLogic, tilldelar läsnings- och skrivbehörigheter:

xquery-versionen "1. 0 ml"; importmodul namnrymd trgr = ' // marklogic. com / xdmp / triggers 'at' / MarkLogic / triggers. xqy '; deklarera variabel $ trgr: uri som xs: sträng extern; deklarera variabel $ trgr: trigger som nod () extern; om ("ACME" = fn: doc ($ trgr: uri) / MeetingReport / Customer) och sedan xdmp: document-set-permissions ($ trgr-uri, (xdmp: behörighet ("senioralesales", "uppdatering"), xdmp: tillstånd ("försäljning", "läs"))) annat ()

När utlösaren är installerad i filuppsättningarna.xqy i en MarkLogic Server Modules Database, kör följande kod i webbkodningsprogrammet för MarkLogic - Query Console för att aktivera avtryckaren. På en standard MarkLogic Server-installation kan du hitta frågekonsolen på webbadressen: // localhost: 8000 / qconsole.

Här är kod som visar hur man installerar avtryckaren med hjälp av Query Console:

xquery-versionen "1. 0-ml"; importmodul namespace trgr = " // marklogic. com / xdmp / triggers" vid "/ MarkLogic / triggers. xqy '; trgr: create-trigger ("setperms"), "Set Sales Doc Permissions", trgr: trigger-data-händelse (trgr: collection-scope ("meetingreports"), trgr: dokumentinnehåll -commit ()), trgr: trigger-modul (xdmp: databas ("Moduler"), "/ triggers /", "setperms. xqy"), fn: true (), xdmp: standardtillstånd (), fn: falskt ())
Attributbaserad åtkomstkontroll (ABAC) i NoSQL-dummies

Redaktörens val

Som standard använder Photoshop Elements färgplockare - dummies

Som standard använder Photoshop Elements färgplockare - dummies

En svart förgrundsfärg och en vit bakgrundsfärg. Om du experimenterar med färg och vill gå tillbaka till standardfärgerna, tryck på D-tangenten. Om du vill växla mellan förgrunds- och bakgrundsfärger trycker du på X-tangenten. Om du vill ha någon annan färg än svart och ...

Arbetar med kommandot Färgvariationer i Photoshop Elements 9 - dummies

Arbetar med kommandot Färgvariationer i Photoshop Elements 9 - dummies

Kommandot Färgvariationer i Photoshop Element är en digital färgkorrigeringsfunktion. Kommandot gör att du kan göra korrigeringar genom att visuellt jämföra miniatyrbilder av färgvariationer av din bild. Du kan använda det här kommandot när du inte är helt säker på vad som är fel med färgen eller vilken typ av färgsändning din bild har. Så här ...

Arbetar med Photoshop Elements 9 Project Bin-dummies

Arbetar med Photoshop Elements 9 Project Bin-dummies

Projektfacket i Photoshop Elements visar miniatyrbilder av alla dina öppna bilder. Oavsett om du arbetar i Redigera fullständigt eller Redigera snabbt läge, kan du omedelbart se en liten bild av alla bilder du har öppet på en gång. Du kan också se miniatyrbilder av alla olika visningar du ...

Redaktörens val

Hur man validerar obligatoriska fält i en formulärprocess sida - dummies

Hur man validerar obligatoriska fält i en formulärprocess sida - dummies

Du bygger PHP webbformulärsprocess sida i steg, börjar med den grundläggande ramen och sedan lägga till mer komplex validering och funktioner när du går. Öppna din textredigerare och skapa en ny fil. I den filen lägger du följande kod:

Vad gör HTML? - dummies

Vad gör HTML? - dummies

HTML instruerar webbläsaren på hur man visar text och bilder på en webbsida. Minns sista gången du skapade ett dokument med en ordbehandlare. Oavsett om du använder Microsoft Word eller Wordpad, Apple Pages eller ett annat program, har din textbehandlare ett huvudfönster där du skriver text och en meny eller ...

Vad gör Python? - dummies

Vad gör Python? - dummies

Python är ett allmänt användande programmeringsspråk som vanligtvis används för webbutveckling. Det här låter på samma sätt som Ruby, och verkligen är båda språk mer liknade än de är olika. Python, som Ruby, möjliggör lagring av data efter att användaren har navigerat bort från sidan eller stängt webbläsaren, till skillnad från HTML, CSS och JavaScript. Använda Python ...

Redaktörens val

Typer av högteknologiska lösenordssprickning - dummies

Typer av högteknologiska lösenordssprickning - dummies

Högteknologiskt lösenordssprickning är en typ av hacking som involverar Använda program som gissar ett lösenord genom att bestämma alla möjliga lösenordskombinationer. De viktigaste lösenordssprickningsmetoderna är ordboksattacker, brute-force attacker och regnbågeattacker. Ordboken attacker Dictionary attacker snabbt jämföra en uppsättning kända ordbokstyp ord - inklusive många vanliga lösenord - mot ett lösenord ...

Enhetligt meddelandevisningsverktyg - dummies

Enhetligt meddelandevisningsverktyg - dummies

Med enhetlig kommunikation och konvergens av röstbrevlåda med e-post och med skrivbordet på skrivbordet, du har nya sätt att interagera med röstmeddelanden. Du brukar brukade sända någon form av ljus på din skrivbordstelefon eller en stakad tonning när du lyfter luren för att varna dig när ett nytt röstmeddelande är ...

Enhetlig meddelandedelning - dummies

Enhetlig meddelandedelning - dummies

Eftersom enhetlig meddelandehantering gör att du kan ta emot dina telefonsvarare och fax som är inbäddade eller bifogade e-postmeddelanden i en enkel, enhetlig inkorg, så kan du också arbeta med de här meddelandetyperna på något sätt som du kan arbeta med ett e-postmeddelande. Med enhetlig meddelandehantering och en enda inkorg har du större kontroll och flexibilitet för att dela ...