B Fein granulierte Zugriffskontrollbibliothek im Marbles-Beispiel verwenden
Ab Version 1.2 stellte Hyperledger Fabric eine fein granulierte Zugriffskontrolle für viele Managementfunktionen bereit. Oracle Blockchain Platform stellt ein Marbles-Beispielpackage auf der Registerkarte "Entwicklertools" der Konsole bereit und implementiert eine Bibliothek mit Funktionen, mit denen Chaincode-Entwickler Access Control-Listen für Chaincode-Funktionen erstellen können. Derzeit wird nur die Sprache Go unterstützt.
Hintergrund
Ziel dieser Beispielbibliothek zur Zugriffskontrolle ist es, Folgendes bereitzustellen:
- Bietet einen Mechanismus, mit dem Sie steuern können, welche Benutzer auf bestimmte Chaincode-Funktionen zugreifen können.
- Die Liste der Benutzer und ihrer Berechtigungen sollte dynamisch sein und über Chaincodes hinweg gemeinsam verwendet werden.
- Bietet Zugriffskontrollprüfungen, sodass ein Chaincode die Access Control-Liste einfach prüfen kann.
- Zum Zeitpunkt der Chaincode-Bereitstellung können Sie die Liste der Ressourcen und Access Control-Listen mit Ihren anfänglichen Elementen auffüllen.
- Eine Access-Control-Liste muss angegeben werden, damit Benutzer Zugriffssteuerungslistenvorgänge ausführen können.
Beispiel herunterladen
Fine-GrainedAccessControlLibrary.zip
:Die fein granulierte Zugriffskontrollbibliothek. Es enthält Funktionen in Go, mit denen Chaincode-Entwickler Access Control-Listen für Chaincode-Funktionen erstellen können.
fgACL_MarbleSampleCC.zip
:Das Marbles-Beispiel mit implementierten Access Control-Listen. Es enthält eine Vielzahl von Funktionen, mit denen Sie untersuchen können, wie Sie mit fein granulierten Access Control-Listen, Gruppen und Ressourcen arbeiten, um Funktionen auf bestimmte Benutzer/Identitäten zu beschränken.
fgACL-NodeJSCode.zip
:Node.js-Skripte, die das Beispiel mit dem Node.js-SDK ausführen.
registerEnrollUser.js
kann verwendet werden, um neue Benutzer bei der Blockchain Platform zu registrieren.invokeQueryCC.js
kann verwendet werden, um Transaktionen für eine Blockchain Platform-Instanz auszuführen.
Terminologie und Akronyme
Begriff | Beschreibung |
---|---|
Identität | Ein X509-Zertifikat, das die Identität des Aufrufers oder der spezifischen Identität darstellt, die der Chaincode prüfen möchte. |
Identitätsmuster |
Ein Muster, das mit einer oder mehreren Identitäten übereinstimmt. Die folgenden Muster werden vorgeschlagen:
Das Format für ein Muster ist im Wesentlichen nur eine Zeichenfolge mit einem Präfix. Beispiel: Um ein Muster zu definieren, das mit einer beliebigen Identität in der Organisation "example.com" übereinstimmt, lautet das Muster "%O%example.com". |
Ressource | Der Name aller Elemente, auf die der Chaincode den Zugriff steuern möchte. Für diese Bibliothek ist es nur eine benannte beliebige Zeichenfolge, die in einem flachen Namespace enthalten ist. Die Semantik des Namens ist vollständig bis zum Chaincode. |
Gruppieren | Eine Gruppe von Identitätsmustern. |
ACL | Access Control-Liste: Eine benannte Entity mit einer Liste von Identitätsmustern, einer Liste von Zugriffstypen wie "READ", "CREATE", "INVOKE", "FORWARD" oder allem, was der Chaincode verwenden möchte. Diese Bibliothek verwendet Zugriffstypen CREATE, READ, UPDATE und DELETE (Standard-CRUD-Vorgänge), um ihre Informationen zu verwalten. Abgesehen von den vier Elementen, die sich auf die Elemente in dieser Bibliothek beziehen, handelt es sich nur um Zeichenfolgen ohne implizite Semantik. Eine Anwendung kann sich entscheiden, Zugriffe von "A", "B" und "CUSTOM" zu verwenden. |