Fine-Grained Access Control Library – Funktionen
Das Bibliothekspaket bietet die folgenden Funktionen für Ressourcen, Gruppen und ACLs sowie globale Funktionen.
Globale Funktionen
Funktion | Beschreibung |
---|---|
Initialization(identity *x509.Certificate, stub shim.ChaincodeStubInterface) (error) (error) |
Wenn der Chaincode bereitgestellt wird, wird die Funktion Nachdem der Bootstrap-Prozess abgeschlossen ist, werden die folgenden Entitys erstellt:
|
NewGroupManager(identity *x509.Certificate, stub shim.ChaincodeStubInterface) (*GroupManager, error) |
Ruft den Gruppenmanager ab, der für alle gruppenbezogenen Vorgänge verwendet wird. Identität: Die Standardidentität für den zugehörigen Vorgang. Wenn es null ist, verwendet die Funktion die Identität des Aufrufers. |
NewACLManager(identity *x509.Certificate, stub shim.ChaincodeStubInterface) (*ACLManager, error) |
Ruft den ACL-Manager ab, der für alle ACL-bezogenen Vorgänge verwendet wird. Identität: Die Standardidentität für den zugehörigen Vorgang. Wenn es null ist, verwendet die Funktion die Identität des Aufrufers. |
NewResourceManager(identity *x509.Certificate, stub shim.ChaincodeStubInterface) (*ResourceManager, error) |
Ruft den Ressourcenmanager ab, der für alle ressourcenbezogenen Vorgänge verwendet wird. Identität: Die Standardidentität für den zugehörigen Vorgang. Wenn es null ist, verwendet die Funktion die Identität des Aufrufers. |
Access Control-Listen-(ACL-)Funktionen
ACL
-Struktur:type ACL struct {
Name string
Description string
Accesses []string // CREATE, READ, UPDATE, and DELETE, or whatever the end-user defined
Patterns []string // identities
Allowed bool // true means allows access.
BindACLs []string // The list of ACL , control who can call the APIs of this struct
}
- Zugriffszeichenfolgen: Die Zeichenfolge "Zugriffszeichenfolgen" ist eine Liste mit durch Komma getrennten willkürlichen Zugriffsnamen, die vollständig der Anwendung überlassen sind, mit Ausnahme von vier Zeichen: CREATE, READ, UPDATE und DELETE. Diese Zugriffswerte werden zur Verwaltung der fein granulierten Zugriffskontrolle verwendet. Anwendungen können ihre eigenen Zugriffszeichenfolgen verwenden, wie
"register"
,"invoke"
oder"query"
, oder sogar Zugriff auf Feldnamen, wie"owner"
,"quantity"
usw. - Zulässig: "Zulässig" legt fest, ob Identitäten, die einem Muster entsprechen, den zulässigen Zugriff (true) oder den unzulässigen Zugriff (false) erhalten. Sie können über eine Access Control-Liste verfügen, die angibt, dass Bob Zugriff auf "
CREATE
" hat. Eine weitere Liste, die angibt, dass die Oracle-Gruppe (der Bob angehört) nicht in"CREATE"
enthalten ist. Ob Bob Zugriff hat oder nicht, hängt von der Reihenfolge der Access Control-Listen ab, die der betreffenden Entity zugeordnet sind. - BindACLs: Der Parameter BindACLs bildet die anfängliche Access Control-Liste.
ACL-Funktionen:
Funktion | Beschreibung |
---|---|
Create(acl ACL, identity *x509.Certificate) (error) |
Erstellt eine ACL. Doppelte benannte ACLs sind nicht zulässig. Um eine ACL zu erstellen, muss die Identity CREATE-Zugriff auf die Bootstrap-Ressource namens " haben. ACLs". Wenn die Identität Null ist, wird die in |
Get(aclName string, identity *x509.Certificate) (ACL, error) |
Ruft eine benannte ACL ab. Die Identität muss READ-Zugriff auf die benannte ACL haben. Wenn die Identität Null ist, wird die in |
Delete(aclName string, identity *x509.Certificate) (error) |
Löscht eine angegebene ACL. Die Identität muss DELETE-Zugriff auf die benannte ACL haben. Wenn die Identität Null ist, wird die in |
Update(acl ACL, identity *x509.Certificate) (error) |
ACL wird aktualisiert. Die Identität muss UPDATE-Zugriff auf die benannte Ressource haben, und die benannte ACL muss vorhanden sein. Wenn die Identität Null ist, wird die in |
AddPattern(aclName string, pattern string, identity *x509.Certificate) (error) |
Fügt der benannten ACL ein neues Identitätsmuster hinzu. Die Identität muss über UPDATE-Zugriff auf die benannte ACL verfügen. Wenn die Identität Null ist, wird die in |
RemovePattern(aclName string, pattern string, identity *X509Certificate) (error) |
Entfernt das Identitätsmuster aus der ACL. Die Identität muss über UPDATE-Zugriff auf die benannte ACL verfügen. Wenn die Identität Null ist, wird die in |
AddAccess(aclname string, access string, identity *X509Certificate) (error) |
Fügt der benannten ACL einen neuen Zugriff hinzu. Die Identität muss über UPDATE-Zugriff auf die benannte ACL verfügen. Wenn die Identität Null ist, wird die in |
RemoveAccess(aclName string, access string, identity *X509Certificate) (error) |
Entfernt den Zugriff von der ACL. Die Identität muss über UPDATE-Zugriff auf die benannte ACL verfügen. Wenn die Identität Null ist, wird die in |
UpdateDescription(aclName string, newDescription string, identity *X509Certificate) (error) |
Aktualisiert die Beschreibung. Die Identität muss UPDATE-Zugriff auf die benannte ACL haben. Wenn die Identität Null ist, wird die in |
AddBeforeACL(aclName string, beforeName string, newBindACL string, identity *X509Certificate) (error) |
Fügt eine Bind-ACL vor der vorhandenen benannten ACL hinzu. Wenn die benannte ACL leer ist oder nicht gefunden wird, wird die ACL am Anfang der Bind-ACL-Liste hinzugefügt. Die Identität muss UPDATE-Zugriff auf die benannte ACL haben. Wenn die Identität Null ist, wird die in |
AddAfterACL(aclName string, afterName string, newBindACL string, identity *X509Certificate) (error) |
Fügt eine Bind-ACL nach der vorhandenen benannten ACL hinzu. Wenn die benannte ACL leer ist oder nicht gefunden wird, wird die ACL am Ende der Bind-ACL-Liste hinzugefügt. Die Identität muss UPDATE-Zugriff auf die benannte ACL haben. Wenn die Identität Null ist, wird die in |
RemoveBindACL(aclName string, removeName string, identity *X509Certificate) (error) |
Entfernt die ACL Die Identität muss UPDATE-Zugriff auf die benannte ACL haben. Wenn die Identität Null ist, wird die in |
GetAll(identity *x509.Certificate) ([]ACL, error) |
Holen Sie sich alle ACLs. Die Identität muss READ-Zugriff auf die benannte ACL haben. Wenn die Identität Null ist, wird die in |
Gruppenfunktionen
Group
-Struktur:type Group struct {
Name string
Description string
Members []string // identity patterns, except GRP.
BindACLs []string // The list of ACLs, controls who can access this group.
}
Definition von GroupManager
-Funktionen:
Funktion | Beschreibung |
---|---|
Create(group Group, identity *x509.Certificate) (error) |
Erstellt eine Gruppe. Die Identität muss CREATE-Zugriff auf die Bootstrap-Gruppe |
Get(groupName string, identity *x509.Certificate) (Group, error) |
Ruft eine angegebene Gruppe ab. Die Identität muss READ-Zugriff auf diese Gruppe haben. Wenn die Identität Null ist, wird die in |
Delete(groupName string, identity *x509.Certificate) (error) |
Löscht eine angegebene Gruppe. Die Identität muss DELETE-Zugriff auf diese Gruppe haben. Wenn die Identität Null ist, wird die in |
AddMembers(groupName string, member []string, identity *x509.Certificate) (error) |
Fügt der Gruppe mindestens ein Mitglied hinzu. Die Identität muss UPDATE-Zugriff auf diese Gruppe haben. Wenn die Identität Null ist, wird die in |
RemoveMembers(groupName string, member []string, identity *x509.Certificate) (error) |
Entfernt mindestens ein Mitglied aus einer Gruppe. Die Identität muss UPDATE-Zugriff auf diese Gruppe haben. Wenn die Identität Null ist, wird die in |
UpdateDescription(groupName string, newDes string, identity *x509.Certificate) (error) |
Aktualisiert die Beschreibung. Die Identität muss UPDATE-Zugriff auf diese Gruppe haben. Wenn die Identität Null ist, wird die in |
AddBeforeACL(groupName string, beforeName string, aclName string, identity *x509.Certificate) (error) |
Fügt der Gruppe vor der vorhandenen benannten ACL eine Bind-ACL hinzu. Wenn die benannte ACL leer ist oder nicht gefunden wird, wird die ACL am Anfang der Liste der Bind-ACL für die Ressource hinzugefügt. Die Identität muss UPDATE-Zugriff auf die benannte Gruppe haben. Wenn die Identität Null ist, wird die in |
AddAfterACL(groupName string, afterName string, aclName string, identity *x509.Certificate) (error) |
Fügt der Gruppe nach der vorhandenen benannten ACL eine Bind-ACL hinzu. Wenn die benannte ACL leer ist oder nicht gefunden wird, wird die ACL am Ende der Liste der Bind-ACLs für die Gruppe hinzugefügt. Die Identität muss UPDATE-Zugriff auf die benannte Gruppe haben. Wenn die Identität Null ist, wird die in |
RemoveBindACL(groupName string, aclName string, identity *x509.Certificate) (error) |
Entfernt die benannte ACL aus der Bind-ACL-Liste der benannten Gruppe. Die Identität muss UPDATE-Zugriff auf die benannte Gruppe haben. Wenn die Identität Null ist, wird die in |
GetAll(identity *x509.Certificate) ([]Group, error) |
Ruft alle Gruppen ab. Die Identität muss READ-Zugriff auf diese Gruppen haben. Wenn die Identität Null ist, wird die in |
Ressourcenfunktionen
Resource
-Struktur:type Resource struct {
Name string
Description string
BindACLs []string // The name list of ACL, controls who can access this resource
}
Ressourcenfunktionen:
Fuktion | Beschreibung |
---|---|
Create(resource Resource, identity *x509.Certificate) (error) |
Erstellt eine Ressource. Doppelte benannte Ressourcen sind nicht zulässig. Die Identität muss CREATE-Zugriff auf die Bootstrap-Ressource |
Get(resName string, identity *x509.Certificate) (Resource, error) |
Ruft eine angegebene Ressource ab. Die Identität muss READ-Zugriff auf die Ressource haben. Wenn die Identität Null ist, wird die in |
Delete(resName string, identity *x509.Certificate) (error) |
Löscht eine benannte Ressource. Die Identität muss DELETE-Zugriff auf die benannte Ressource haben. Wenn die Identität Null ist, wird die in |
UpdateDescription(resourceName string, newDes string, identity *x509.Certificate) (error) |
Aktualisiert die Beschreibung. Die Identität muss UPDATE-Zugriff auf diese Ressource haben. Wenn die Identität Null ist, wird die in |
AddBeforeACL(resourceName string, beforeName string, aclName string, identity *x509.Certificate) (error) |
Fügt der Ressource vor der vorhandenen benannten ACL eine Bind-ACL hinzu. Wenn die benannte ACL leer ist oder nicht gefunden wird, wird die ACL am Anfang der Liste der Bind-ACL für die Ressource hinzugefügt. Die Identität muss UPDATE-Zugriff auf die benannte Ressource haben. Wenn die Identität Null ist, wird die in |
AddAfterACL(resourceName string, afterName string, aclName string, identity *x509.Certificate) (error) |
Fügt der Ressource nach der vorhandenen benannten ACL eine Bind-ACL hinzu. Wenn die benannte ACL leer ist oder nicht gefunden wird, wird die ACL am Ende der Liste der Bind-ACL für die Ressource hinzugefügt. Die Identität muss UPDATE-Zugriff auf die benannte Ressource haben. Wenn die Identität Null ist, wird die in |
RemoveBindACL(resourceName string, aclName string, identity *x509.Certificate) (error) |
Entfernt die benannte ACL aus der Bind-ACL-Liste der benannten Ressource. Die Identität muss UPDATE-Zugriff auf die benannte Ressource haben. Wenn die Identität Null ist, wird die in |
CheckAccess(resName string, access string, identity *x509.Certificate) (bool, error) |
Prüft, ob der aktuelle Benutzer den angegebenen Zugriff auf die benannte Ressource hat. Wenn die Identität Null ist, wird die in |
GetAll(identity *x509.Certificate) ([]Resource, error) |
Alle Ressourcen werden abgerufen. Die Identität muss READ-Zugriff auf diese Ressourcen haben. Wenn die Identität Null ist, wird die in |