Zuhause Persönliche Finanzen Attributbasierte Zugriffskontrolle (ABAC) in NoSQL - Dummies

Attributbasierte Zugriffskontrolle (ABAC) in NoSQL - Dummies

Video: Preview: Hyperstar - Hoshiningen's grosser Auftritt 2024

Video: Preview: Hyperstar - Hoshiningen's grosser Auftritt 2024
Anonim

Ein nützliches Sicherheitsmuster besteht darin, Berechtigungen basierend auf Daten innerhalb eines Datensatzes anzuwenden, anstatt dem Datensatz separat Berechtigungen zuzuweisen. Dies kann entweder auf Metadaten, einzelnen Spaltenwerten (Bigtable-Klone) oder Elementwerten (Aggregat-NoSQL-Datenbanken) basieren.

Ein gutes Beispiel ist der Name eines Kunden, der in einem Dokument erwähnt wird. Möglicherweise möchten Sie den Zugriff auf alle Dokumente, in denen dieser Kunde angegeben ist, nur auf Personen beschränken, die Zugriff auf die Informationen dieses Kunden haben. Sie können den Zugriff auf diese Dokumente beschränken, indem Sie die Daten innerhalb des Dokuments verarbeiten und die entsprechenden Sicherheitsberechtigungen basierend auf dem Wert dieser Daten anwenden.

Nein. NoSQL-Datenbanken bieten diese Funktion sofort an. Das liegt daran, dass Berechtigungen dem Datensatz zugewiesen werden müssen, nachdem die Daten von der Anwendung gespeichert wurden, aber bevor sie von anderen Anwendungen oder Benutzern abgerufen werden können. Daher muss diese Berechtigungszuweisung innerhalb der Transaktionsgrenze erfolgen.

Außerdem unterstützen nur sehr wenige NoSQL-Datenbanken ACID-kompatible Transaktionen (z. B. MarkLogic, FoundationDB und Neo4j). Wenn eine Datenbank die sofortige Zuweisung von Berechtigungen basierend auf Daten in einem Dokument nicht unterstützt, aber ACID-Transaktionen und Pre-Commit-Trigger unterstützt, ist eine einfache Problemumgehung möglich.

Es ist im Allgemeinen einfach, einen Trigger zu schreiben, der das Vorhandensein eines Wertes innerhalb eines Datensatzes überprüft und Berechtigungen basierend auf seinem Wert ändert. Solange eine Datenbank dies während des Commit-Vorgangs und nicht nach dem Commit unterstützt, wissen Sie, dass Ihre Daten durch einen einfachen Pre-Commit-Trigger gesichert werden.

Als Beispiel unterstützt MarkLogic Server vollständig serialisierbare ACID-Transaktionen und Pre-Commit-Trigger. Im Folgenden finden Sie ein einfaches XML-Dokument, das ich für die attributbasierte Zugriffssteuerung unterstützen möchte:

jbloggs ACME Lorem Ipsum Dolar Sit Amet …

Die Trigger von MarkLogic Server verwenden die W3C XQuery-Sprache. Das folgende XQuery-Beispiel ist ein einfacher Trigger, der bei der Installation in MarkLogic Lese- und Schreibberechtigungen zuweist:

xquery version "1. 0-ml"; import module namespace trgr = ' // marklogic. com / xdmp / triggert 'at' / MarkLogic / triggert. xqy '; deklariere die Variable $ trgr: uri als xs: string external; Deklariere die Variable $ trgr: triggere als node () external; if ("ACME" = fn: doc ($ trgr: uri) / MeetingReport / Kunde) dann xdmp: document-set-permissions ($ trgr-uri, (xdmp: Berechtigung ("seniorsales", "update"), xdmp: permission ("sales", "read"))) else ()

Sobald der Trigger in der Datei setperms installiert ist.xqy in einer MarkLogic Server Modules Database, führen Sie den folgenden Code in der Webcodierungsanwendung für MarkLogic - Query Console aus, um den Trigger zu aktivieren. Bei einer Standardinstallation von MarkLogic Server finden Sie die Abfragekonsole unter der URL: // localhost: 8000 / qconsole.

Hier ist ein Code, der zeigt, wie Sie den Trigger mit der Abfragekonsole installieren:

xquery version "1. 0-ml"; import module namespace trgr = " // marklogic./xdmp/trigger" at '/ MarkLogic / triggers. xqy '; trgr: create-trigger ("setperms", "Setze Verkaufsberechtigungen setzen", trgr: trigger-data-event (trgr: Erfassungsbereich ("meetingreports"), trgr: document-content ("modifizieren"), trgr: pre -commit ()), trgr: Trigger-Modul (xdmp: Datenbank ("Module"), "/ triggers /", "setperms. xqy"), fn: true (), xdmp: default-permissions (), fn: falsch ())
Attributbasierte Zugriffskontrolle (ABAC) in NoSQL - Dummies

Die Wahl des Herausgebers

Netzwerkgrundlagen: IPv6-Adresse Vereinfachte Notation - Dummies

Netzwerkgrundlagen: IPv6-Adresse Vereinfachte Notation - Dummies

Bei der Arbeit mit IPv6-Adressen kann es viel Zeit in Anspruch nehmen. schreibe deine Adressen - immerhin sind sie 128 Bit lang. Um das Leben einfacher zu machen, gibt es einige Regeln, die Sie verwenden können, um diese Schreibweise zu verdichten: Führende Nullen in der Adresse sind optional. Für einen Adressblock wäre also 0A45 gleich A45, ...

Netzwerkgrundlagen: IP-Netzwerkklassen - Dummies

Netzwerkgrundlagen: IP-Netzwerkklassen - Dummies

Netzwerkadressierungsarchitektur unterteilt den Adressraum für Internet Protocol Version 4 (IPv4 ) in fünf Adressklassen. Jede Klasse, die in den ersten vier Bits der Adresse codiert ist, definiert entweder eine andere Netzwerkgröße, d.h. e. Anzahl der Hosts für Unicast-Adressen (Klassen A, B, C) oder Multicast-Netzwerk (Klasse D). Die fünfte Klasse (E) address ...

Netzwerkgrundlagen: Netzwerkport Übersicht - Dummys

Netzwerkgrundlagen: Netzwerkport Übersicht - Dummys

In TCP / IP- und UDP-Netzwerken ist ein Port ein Endpunkt eine logische Verbindung. Die Portnummer gibt an, um welchen Port es sich handelt. Port 80 wird beispielsweise für HTTP-Datenverkehr verwendet. Wenn Sie einen Befehl wie netstat -n unter Microsoft Windows oder Linux verwenden, sehen Sie eine Auflistung der lokalen Adressen ...

Die Wahl des Herausgebers

Excel-Dashboards: Wie Sie Ihr erstes Makro aufzeichnen - Dummies

Excel-Dashboards: Wie Sie Ihr erstes Makro aufzeichnen - Dummies

Wenn Sie ein Anfänger auf dem Dashboard sind Automatisierung in Excel ist es unwahrscheinlich, dass Sie den VBA-Code (Visual Basic für Applikationen) von Hand schreiben können, um Makros zu erstellen. Ohne vollständige Kenntnis des Objektmodells und der Syntax von Excel wäre das Schreiben des benötigten Codes für die meisten Anfänger unmöglich. Hier können Sie ein Makro aufzeichnen ...

Excel-Formelberechnungsmodi - Dummys

Excel-Formelberechnungsmodi - Dummys

Standardmäßig ist Excel so eingestellt, dass es automatisch neu berechnet wird. Wenn Sie eine der Zellen ändern, auf die in einer bestimmten Formel verwiesen wird, berechnet Excel diese Formel automatisch neu, sodass ein korrektes Ergebnis basierend auf den Änderungen in den Zellbezügen zurückgegeben wird. Wenn die Formel, die neu berechnet wird, auch als Zellenreferenz in anderen verwendet wird ...

Excel Formelfehler - Dummies

Excel Formelfehler - Dummies

Es ist nicht immer glatt, wenn Sie mit Excel-Formeln arbeiten. Manchmal gibt eine Formel einen Fehlerwert anstelle des erwarteten Werts zurück. Excel hilft Ihnen, das Problem zu identifizieren, indem Sie einen von sieben Fehlerwerten zurückgeben: # DIV / 0! , # N / A, #NAME? , #NULL! , #NUM! , #REF! und #WERT! , erklärt in der folgenden Liste: # DIV / 0! : ...

Die Wahl des Herausgebers

Teilen, Weiterverbreiten und Kommentieren von Google+ Posts - Dummies

Teilen, Weiterverbreiten und Kommentieren von Google+ Posts - Dummies

, Wenn Sie mit der Verwendung und Veröffentlichung beginnen Bei Google+ möchten Sie gelegentlich Links und Bilder teilen, die Beiträge anderer freigeben, ihre Beiträge kommentieren und andere in Ihren eigenen Google+ Beiträgen erwähnen. Vielleicht fragen Sie sich auch, wie Sie andere dazu bringen, Ihre eigenen Beiträge öfter zu kommentieren. Teilen von Links und Bildern in Google+ So geben Sie ein ...

Teilen Ihrer Google+ Posts mit bestimmten Personen - Dummies

Teilen Ihrer Google+ Posts mit bestimmten Personen - Dummies

Beiträge auf Google+ sind ganz einfach und können posten Text, Links, Fotos, Videos und sogar Ihren aktuellen Standort. Der schwierigste Teil des Beitrags auf Google+ besteht darin, auszuwählen, wen Sie Ihren Beitrag sehen möchten. Google+ verwendet Ihre Kreise, um festzulegen, wer Ihre Beiträge sehen kann. Kreise sind etwas einfacher als Listen, weil ...

Taggen von Personen in Google+ Fotos - Dummies

Taggen von Personen in Google+ Fotos - Dummies

Sie können Personen in Ihren Kreisen auf jedem Foto auf Google+ markieren. Wenn Sie eine Person in einem Foto taggen, wird diese Person über ihre Google+ Benachrichtigungen benachrichtigt. Sie können dann das Tag entfernen oder genehmigen, und das Foto wird mit dem Tag des Namens dieser Person darin angezeigt. Um jemanden zu markieren, ...