Hjem Personlig finansiering Attributbaseret adgangskontrol (ABAC) i NoSQL-dummies

Attributbaseret adgangskontrol (ABAC) i NoSQL-dummies

Anonim

Et nyttigt mønster for sikkerhed er at anvende tilladelser baseret på data i en post i stedet for separat at tildele tilladelser til posten. Dette kunne være baseret på enten metadata, individuelle kolonne (Bigtable kloner) eller element (Aggregate NoSQL databaser) værdier.

Et godt eksempel er et kundenavn, der nævnes i et dokument. Du kan muligvis begrænse adgangen til alle de dokumenter, der nævner det - kunden til kun de personer, der har adgang til denne kundes oplysninger. Du kan begrænse adgangen til disse dokumenter ved at behandle dataene i dokumentet og anvende de relevante sikkerhedsrettigheder baseret på værdien af ​​disse data.

Ingen NoSQL databaser giver denne mulighed lige ud af boksen. Det skyldes, at tilladelser skal tildeles til posten, efter at dataene er gemt af programmet, men før det er tilgængeligt for hentning af andre programmer eller brugere. Så denne tilladelsesopgave skal ske inden for transaktionsgrænsen.

Også meget få NoSQL-databaser understøtter ACID-kompatible transaktioner (MarkLogic, FoundationDB og Neo4j, gør for eksempel). Hvis en database ikke understøtter tilladelse baseret på data i et dokument uden for boks, men understøtter ACID-transaktioner og forudindstillede udløsere, er det nemt at finde en løsning.

Det er generelt nemt at skrive en trigger, der kontrollerer tilstedeværelsen af ​​en værdi inden for en post og for at ændre tilladelser baseret på dens værdi. Så længe en database understøtter at gøre det under commitprocessen, og ikke efter forpligten, så ved du, at dine data er sikret ved at bruge en simpel pre-commit trigger.

Som et eksempel understøtter MarkLogic Server fuldt serialiserbare ACID-transaktioner og pre-commit triggers. Følgende er et simpelt XML-dokument, som jeg vil støtte til attributbaseret adgangskontrol:

jbloggs ACME Lorem Ipsum Dolar Sit Amet …

MarkLogic Server udløsere bruger W3C XQuery sproget. Følgende XQuery-eksempel er en simpel trigger, der, når den er installeret i MarkLogic, tildeler læse- og skrivetilladelser:

xquery-version "1. 0-ml"; importmodul navneområde trgr = ' // marklogic. com / xdmp / udløser 'at' / MarkLogic / triggers. xqy '; erklære variabel $ trgr: uri som xs: streng ekstern; erklære variabel $ trgr: trigger som node () ekstern; hvis ("ACME" = fn: doc ($ trgr: uri) / MeetingReport / Customer) så xdmp: dokument-set-tilladelser ($ trgr-uri, (xdmp: tilladelse ("senioralesales", "opdatering"), xdmp: tilladelse ("salg", "læs"))) ellers ()

Når udløseren er installeret i filsætpermerne.xqy i en MarkLogic Server Modules Database, udfør følgende kode i webkodningsprogrammet til MarkLogic - Query Console for at aktivere udløseren. På en standard MarkLogic Server-installation kan du finde Query Console på webadressen: // localhost: 8000 / qconsole.

Her er en kode, der viser, hvordan du installerer triggeren ved hjælp af Query Console:

xquery version "1. 0-ml"; importmodul navneområde trgr = " // marklogic. com / xdmp / triggers" at '/ MarkLogic / triggers. xqy '; trgr: create-trigger ("setperms"), "Set Sales Doc Permissions", trgr: trigger-data-begivenhed (trgr: collection-scope ("meetingreports"), trgr: dokumentindhold -commit ()), trgr: trigger-modul (xdmp: database ("Moduler"), "/ triggers /", "setperms. xqy"), fn: true (), xdmp: standard-tilladelser (), fn: false ())
Attributbaseret adgangskontrol (ABAC) i NoSQL-dummies

Valg af editor

Test din kode med Dreamweavers webstedrapporteringsfunktioner - dummies

Test din kode med Dreamweavers webstedrapporteringsfunktioner - dummies

Hvis du har brugt Dreamweaver til bygg din mobilwebsite, du kan tjekke dit arbejde ved hjælp af Dreamweaver Site Reporting funktionerne. Det lader dig oprette en række rapporter og endda tilpasse dem til at identificere problemer med eksterne links, overflødige og tomme tags, untitled dokumenter og manglende alternativ tekst. Du kan nemt gå glip af problemer - især ...

Sådan bruger du dit eget domæne til dit Squarespace-websted - dummier

Sådan bruger du dit eget domæne til dit Squarespace-websted - dummier

Når du underskriver op for din Squarespace-konto, får du en unik Squarespace-URL, der ser sådan ud: http: // dit kontonavn. Squarespace. com. Hvis du vil have fuldstændig kontrol over branding af dit websted eller blot ønsker en unik webadresse, kan du kortlægge eller pege på et brugerdefineret domæne på din Squarespace-konto. Du har tre muligheder for indstilling ...

Fordelene ved at bruge Markdown på din Squarespace Website - dummies

Fordelene ved at bruge Markdown på din Squarespace Website - dummies

Markdown er en plain- tekst skriftformat, der gør det muligt hurtigt at anvende tekst styling baseret på hvordan du formaterer din Squarespace 6 websteds tekst. Markdown er en af ​​Du bruger to typer blokke, du kan bruge til at tilføje tekst. Du tilføjer indhold til dine Squarespace-sidesider ved at bruge indholdsblokke i Site Manager → Indhold ...

Valg af editor

Wicca og Witchcraft For Dummies Cheat Sheet - dummies

Wicca og Witchcraft For Dummies Cheat Sheet - dummies

Wicca, en heksekunst, er centreret i rituelle Wiccans udfører til specifikke formål, såsom at kommunikere med eller ære guddom. Sabbats er wiccan sol helligdage fokuseret på jordens sti omkring solen, nogle gange omtalt som Årets hjul. Esbats er wiccan månens ferie, der fokuserer på månens cyklus. ...

Sammenhængende trosretninger: almindelige erfaringer i skrifterne - dummies

Sammenhængende trosretninger: almindelige erfaringer i skrifterne - dummies

Interessant de tre Abrahams trosretninger - jødedom, kristendom , og islam - deler meget til fælles, herunder en række af ædle profeter sendt af Gud. På grund af commonality ligger en dyb forbindelse til arv fra profeten Abraham og en tro på en Gud. Koranen finder fælles sted med kristne og jøder (kendt ...

Charmerende din vej til effektiv magi - dummies

Charmerende din vej til effektiv magi - dummies

En firkløver for held. Den jakkesæt, som du altid bærer til jobsamtaler for succes. Ringen du tager aldrig af, fordi den repræsenterer din kærlighed til en anden person. Den hængende du bærer rundt om halsen hver dag for beskyttelse. Den lille statue hængende fra bilens bagspejl til sikker rejse. ...

Valg af editor

Vælger skråninger, kanter og ansigter i blender - dummies

Vælger skråninger, kanter og ansigter i blender - dummies

I Blender's Edit-tilstand, kuben ændrer farve og prikker danner i hver af kubens hjørner. Hver prik er et vertex. Linjen der dannes mellem to hjørner er en kant. Et ansigt i Blender er en polygon, der er dannet af tre eller flere forbindelseskanter. Tidligere er ansigter i Blender ...