Huis Persoonlijke financiën Op attributen gebaseerde toegangscontrole (ABAC) in NoSQL - dummies

Op attributen gebaseerde toegangscontrole (ABAC) in NoSQL - dummies

Video: Zeitgeist Addendum 2024

Video: Zeitgeist Addendum 2024
Anonim

Een handig patroon voor beveiliging is om machtigingen toe te passen op basis van gegevens in een record in plaats van afzonderlijk machtigingen toe te wijzen aan de record. Dit zou kunnen zijn gebaseerd op waarden voor metadata, afzonderlijke kolommen (Bigtable clones) of element (Aggregate NoSQL-databases).

Een goed voorbeeld is dat een klantnaam in een document wordt genoemd. Misschien wilt u de toegang beperken tot alle documenten die dat noemen -klant alleen voor die mensen die toegang hebben tot de informatie van deze klant. U kunt de toegang tot deze documenten beperken door de gegevens in het document te verwerken en de relevante beveiligingsmachtigingen toe te passen op basis van de waarde van die gegevens.

Geen NoSQL-databases bieden deze mogelijkheid direct uit de doos. Dat komt omdat machtigingen moeten worden toegewezen aan de record nadat de gegevens zijn opgeslagen door de toepassing maar voordat deze beschikbaar zijn voor het ophalen door andere toepassingen of gebruikers. Deze toestemmingsopdracht moet dus plaatsvinden binnen de transactiegrens.

Ook ondersteunen zeer weinig NoSQL-databases ACID-compatibele transacties (MarkLogic, FoundationDB en Neo4j, bijvoorbeeld). Als een database de toewijzing van rechten op basis van gegevens in een document niet ondersteunt, maar wel ACID-transacties ondersteunt en triggers vooraf vastlegt, is een eenvoudige oplossing mogelijk.

Het is over het algemeen eenvoudig om een ​​trigger te schrijven die controleert op de aanwezigheid van een waarde in een record en om machtigingen aan te passen op basis van de waarde. Zolang een database dit ondersteunt tijdens het commit-proces en niet na de commit, weet u dat uw gegevens veilig zijn gemaakt door een eenvoudige pre-commit-trigger te gebruiken.

MarkLogic Server ondersteunt bijvoorbeeld volledig serialiseerbare ACID-transacties en pre-commit-triggers. Hierna volgt een eenvoudig XML-document dat ik wil ondersteunen voor op attributen gebaseerd toegangsbeheer:

jbloggs ACME Lorem Ipsum Dolar Sit Amet …

De triggers van MarkLogic Server gebruiken de W3C XQuery-taal. Het volgende XQuery-voorbeeld is een eenvoudige trigger die, wanneer geïnstalleerd in MarkLogic, lees- en schrijfrechten toewijst:

xqueryversie "1. 0-ml"; importmodule naamruimte trgr = ' // marklogic. com / xdmp / triggers 'at' / MarkLogic / triggers. xqy '; declare variabele $ trgr: uri as xs: string external; declare $ trgr: trigger as node () external; if ("ACME" = fn: doc ($ trgr: uri) / MeetingReport / Customer) dan xdmp: document-set-permissies ($ trgr-uri, (xdmp: permission ("seniorsales", "update"), xdmp: permission ("sales", "read"))) else ()

Nadat de trigger is geïnstalleerd in de bestandssetbestanden.xqy in een MarkLogic Server Modules-database voert u de volgende code uit in de webcoderingsapplicatie voor MarkLogic - Query Console om de trigger in te schakelen. Bij een standaard MarkLogic Server-installatie kunt u de Query Console vinden op de URL: // localhost: 8000 / qconsole.

Hier is code die laat zien hoe de trigger te installeren met behulp van Query Console:

xquery-versie "1. 0-ml"; importmodule naamruimte trgr = " // marklogic. com / xdmp / triggers" op '/ MarkLogic / triggers. xqy '; trgr: create-trigger ("setperms", "Set Sales Doc Permissions", trgr: trigger-data-event (trgr: collection-scope ("meetingreports"), trgr: document-content ("modify"), trgr: pre -commit ()), trgr: trigger-module (xdmp: database ("Modules"), "/ triggers /", "setperms. xqy"), fn: true (), xdmp: standaard-machtigingen (), fn: false ())
Op attributen gebaseerde toegangscontrole (ABAC) in NoSQL - dummies

Bewerkers keuze

Setup Menu 3 op de Rebel T6i / 750D - dummies

Setup Menu 3 op de Rebel T6i / 750D - dummies

Er wachten nogal wat aanpassingsmogelijkheden op de Setup-menu van de Rebel T6i / 750D 3. Setup-menu 3, weergegeven in de volgende afbeelding, bevat de volgende aanpassingsmogelijkheden: Schermkleur: standaard bevat het scherm Opname-instellingen opnamegegevens in het wit op een eenvoudige zwarte achtergrond. Er worden grijstinten in grijstinten gebruikt en accenten worden meestal oranje gemarkeerd. ...

Bewerkers keuze

Tekst invoeren en in een PowerPoint-dia passen - dummies

Tekst invoeren en in een PowerPoint-dia passen - dummies

Tekst aan een inhoud toevoegen tijdelijke aanduiding in Microsoft PowerPoint, klik op het gebied Klik om tekst toe te voegen en typ wat u wilt. Als u een ander type inhoud wilt toevoegen, klikt u op het pictogram in de tijdelijke aanduiding voor het gewenste type. Als u meer tekst typt dan in dat tekstvak past (vooral gebruikelijk voor ...

Voor senioren: de Prullenbak van uw computer leegmaken - dummies

Voor senioren: de Prullenbak van uw computer leegmaken - dummies

De Prullenbak op uw computer bevat onlangs verwijderde items. Uw oude bestanden bevinden zich in de Prullenbak en u kunt ze ophalen totdat u deze leegt of totdat deze de maximale maximale grootte heeft bereikt, en Windows automatisch enkele bestanden dumpt. Nadat u de Prullenbak hebt leeggemaakt, zijn alle bestanden daarin niet beschikbaar voor ...

Hoe tekst in te voeren in een Microsoft Office-document - dummies

Hoe tekst in te voeren in een Microsoft Office-document - dummies

Nadat u een document hebt gemaakt, bent u klaar om te beginnen met typen. Tekst op de pagina plaatsen (of op het scherm) is een beetje anders in elk van de drie grote Microsoft Office-toepassingen: Word, Excel en PowerPoint. Woord: Het belangrijkste werkgebied van het programma is een lege lei waarop u rechtstreeks kunt typen. Klik gewoon in de ...

Bewerkers keuze

Animatie maken met de HTML5-canvastag - dummies

Animatie maken met de HTML5-canvastag - dummies

Hoewel de HTML5-canvastag misschien niet als vervanging voor Flash als mechanisme voor het implementeren van games en animaties in de browser, is het redelijk eenvoudig om animaties aan een canvasafbeelding toe te voegen. De sleutel is om de animatiefuncties te gebruiken die al in de browser zijn ingebouwd. Basisstructuur van de animatielus in HTML5-canvas Een animatie ...

Hoe externe stijlen maken in CSS3 - dummies

Hoe externe stijlen maken in CSS3 - dummies

De meeste ontwikkelaars gebruiken externe stijlen in CSS3 om te verkleinen de hoeveelheid werk die nodig is om een ​​site te onderhouden. Een. CSS-bestand bevat alle stijlen voor de site, wat betekent dat het veranderen van een stijl voor de hele site net zo eenvoudig is als het veranderen van dat ene bestand (in plaats van elke pagina). Omdat de wijziging plaatsvindt in slechts ...

Hoe u volledige interactieve CSS3-toepassingen maakt met YUI - dummies

Hoe u volledige interactieve CSS3-toepassingen maakt met YUI - dummies

De Yahoo! Gebruikersinterface (YUI) -bibliotheek (Yuilibrary) is een complete ontwikkeling - API verwant met jQuery en jQuery UI CSS3 gecombineerd in sommige opzichten en rijker dan deze bibliotheken in andere. Dit is een complexe API die is ontworpen om aan de behoeften van grotere applicaties te voldoen. Eigenlijk moet je echt de tutorials doorlopen, ...