Funktionen der Fine-Grained Access Control Library

Das Bibliothekspaket stellt die folgenden Funktionen für Ressourcen, Gruppen und ACLs sowie globale Funktionen bereit.

Globale Funktionen

Funktion Beschreibung
Initialisierung (ID *x509). Zertifikat, Stub shim.ChaincodeStubInterface) (Fehler) (Fehler)

Wenn der Chaincode instanziiert wird, wird die Initialisierungsfunktion aufgerufen. Diese Funktion initialisiert den Weltstatus mit einigen integrierten Access Control-Listen. Diese integrierten Listen werden zum Bootstrap der Umgebung verwendet. Daher muss die Zugriffskontrolle darüber bestehen, wer Ressourcen, Gruppen und ACLs erstellen kann. Wenn die Identifikation Null ist, verwenden Sie die Identifikation des Anrufers.

Nach dem Bootstrap werden die folgenden Entitys erstellt:

  • Eine Ressource mit dem Namen ". Ressourcen". Eine entsprechende ACL namens ". Resources.ACL wird mit einem einzelnen Identitätsmuster in der Form "%CN%bob.smith@oracle.com" erstellt, wobei der tatsächliche allgemeine Name verwendet wird. Der Zugriff lautet CREATE, READ, UPDATE und DELETE.
  • Eine Gruppe namens ". Gruppen". Eine entsprechende ACL namens ". Groups.ACL wird mit einem einzelnen Identitätsmuster in der Form "%CN%bob.smith@oracle.com" erstellt, wobei der tatsächliche allgemeine Name verwendet wird. Der Zugriff lautet CREATE, READ, UPDATE und DELETE.
  • Eine ACL mit dem Namen ". ACLs". Eine entsprechende ACL-Steuerungsliste namens ". ACLs.ACL wird mit einem einzelnen Identitätsmuster in der Form "%CN%bob.smith@oracle.com" erstellt, wobei der tatsächliche allgemeine Name verwendet wird. Der Zugriff lautet CREATE, READ, UPDATE und DELETE.
NewGroupManager(ID *x509). Zertifikat, Stub shim.ChaincodeStubInterface) (*GroupManager, Fehler)

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, verwenden Sie die Identität des Anrufers.

NewACLManager(ID *x509). Zertifikat, Stub shim.ChaincodeStubInterface) (*ACLManager, Fehler)

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, verwenden Sie die Identität des Anrufers.

NewResourceManager(ID *x509). Zertifikat, Stub shim.ChaincodeStubInterface) (*ResourceManager, Fehler)

Ressourcenmanager abrufen, der für alle ressourcenbezogenen Vorgänge verwendet wird.

Identität: Die Standardidentität für den zugehörigen Vorgang. Wenn es null ist, verwenden Sie die Identität des Anrufers.

Access Control-Listen-(ACL-)Funktionen

Definition der 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
}
  • Zugriffe: Die Accesses-Zeichenfolge ist eine Liste von durch Komma getrennten willkürlichen Zugriffsnamen und vollständig bis zur Anwendung, mit Ausnahme von vier: CREATE, READ, UPDATE und DELETE. Diese Zugriffswerte werden zur Verwaltung der fein granulierten Zugriffskontrolle verwendet. Anwendungen können ihre eigenen Zugriffszeichenfolgen wie "register", "invoke" oder "query" oder sogar Zugriff auf Feldnamen wie "owner", "quantity" usw. verwenden.
  • Zulässig: "Zulässig" bestimmt, ob Identitäten, die einem Muster entsprechen, Zugriff (true) oder nicht zulässiger Zugriff (false) sind. Sie können eine Access-Control-Liste verwenden, die angibt, dass Bob Zugriff auf "CREATE" hat, und eine andere, die angibt, dass die Gruppe Oracle (von der Bob Mitglied ist) von "CREATE" ausgeschlossen 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
Erstellen (ACL, Identität *x509). Zertifikat (Fehler)

Erstellt eine neue ACL. Doppelte benannte ACL ist nicht zulässig.

Um eine neue ACL zu erstellen, muss die Identität CREATE-Zugriff auf die Bootstrap-Ressource namens ". haben. ACLs". Wenn die Identität Null ist, wird die in newACLManager() angegebene Standardidentität verwendet.

Get(aclName-Zeichenfolge, Identität *x509). Zertifikat (ACL, Fehler)

Rufen Sie eine benannte ACL ab.

Die Identität muss Lesezugriff auf die benannte ACL haben. Wenn die Identität Null ist, wird die in newACLManager() angegebene Standardidentität verwendet.

Löschen (aclName-Zeichenfolge, Identität *x509). Zertifikat (Fehler)

Löschen Sie eine angegebene ACL.

Die Identität muss DELETE-Zugriff auf die benannte ACL haben. Wenn die Identität Null ist, wird die in newACLManager() angegebene Standardidentität verwendet.

Aktualisieren (ACL, Identität *x509). Zertifikat (Fehler)

Aktualisieren Sie eine ACL.

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 NewACLManager() angegebene Standardidentität verwendet.

AddPattern(aclName-Zeichenfolge, Musterzeichenfolge, Identität *x509). Zertifikat (Fehler)

Fügt der benannten ACL ein neues Identitätsmuster hinzu. Die Identität muss UPDATE-Zugriff auf die benannte ACL haben.

Wenn die Identität Null ist, wird die in newACLManager() angegebene Standardidentität verwendet.

RemovePattern(aclName-Zeichenfolge, Musterzeichenfolge, Identität *X509Certificate) (Fehler)

Entfernt das Identitätsmuster aus der ACL. Die Identität muss UPDATE-Zugriff auf die benannte ACL haben.

Wenn die Identität Null ist, wird die in newACLManager() angegebene Standardidentität verwendet.

AddAccess(aclname String, Zugriffszeichenfolge, Identität *X509Certificate) (Fehler)

Fügt einen neuen Zugriff auf die benannte ACL hinzu. Die Identität muss UPDATE-Zugriff auf die benannte ACL haben.

Wenn die Identität Null ist, wird die in newACLManager() angegebene Standardidentität verwendet.

RemoveAccess(aclName-Zeichenfolge, Zugriffszeichenfolge, Identität *X509Certificate) (Fehler)

Entfernt den Zugriff aus der ACL. Die Identität muss UPDATE-Zugriff auf die benannte ACL haben.

Wenn die Identität Null ist, wird die in newACLManager() angegebene Standardidentität verwendet.

UpdateDescription(aclName-Zeichenfolge, newDescription-Zeichenfolge, Identität *X509Certificate) (Fehler)

Aktualisieren Sie die Beschreibung.

Die Identität muss UPDATE-Zugriff auf die benannte ACL haben. Wenn die Identität Null ist, wird die in newACLManager() angegebene Standardidentität verwendet.

AddBeforeACL(aclName-Zeichenfolge, beforeName-Zeichenfolge, newBindACL-Zeichenfolge, Identität *X509Certificate) (Fehler)

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 newACLManager() angegebene Standardidentität verwendet.

AddAfterACL(aclName-Zeichenfolge, afterName-Zeichenfolge, newBindACL-Zeichenfolge, Identität *X509Certificate) (Fehler)

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 newACLManager() angegebene Standardidentität verwendet.

RemoveBindACL(aclName-Zeichenfolge, removeName-Zeichenfolge, Identität *X509Certificate) (Fehler)

Entfernt die removeName ACL aus der Bind-ACL-Liste.

Die Identität muss UPDATE-Zugriff auf die benannte ACL haben. Wenn die Identität Null ist, wird die in newACLManager() angegebene Standardidentität verwendet.

GetAll(Identität *x509). Zertifikat) ([]ACL, Fehler

Alle ACLs abrufen.

Die Identität muss Lesezugriff auf die benannte ACL haben. Wenn die Identität Null ist, wird die in newACLManager() angegebene Standardidentität verwendet.

Gruppenfunktionen

Definition der 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
Erstellen (Gruppengruppe, Identität *x509). Zertifikat (Fehler)

Erstellen Sie eine neue Gruppe.

Die Identität muss über CREATE-Zugriff auf die Bootstrap-Gruppe verfügen ". Gruppe". Wenn die Identität Null ist, wird die in NewGroupManager() angegebene Standardidentität verwendet.

Get(groupName-Zeichenfolge, Identität *x509). Zertifikat) (Gruppe, Fehler)

Angegebene Gruppe abrufen.

Die Identität muss über Lesezugriff auf diese Gruppe verfügen. Wenn die Identität Null ist, wird die in NewGroupManager() angegebene Standardidentität verwendet.

Löschen (groupName-Zeichenfolge, Identität *x509). Zertifikat (Fehler)

Löschen Sie eine angegebene Gruppe.

Die Identität muss über DELETE-Zugriff auf diese Gruppe verfügen. Wenn die Identität Null ist, wird die in NewGroupManager () angegebene Standardidentität verwendet.

AddMembers(groupName-Zeichenfolge, Element []Zeichenfolge, Identität *x509). Zertifikat (Fehler)

Fügen Sie der Gruppe ein oder mehrere Mitglieder hinzu.

Die Identity muss über UPDATE-Zugriff auf diese Gruppe verfügen. Wenn die Identität Null ist, wird die in NewGroupManager () angegebene Standardidentität verwendet.

RemoveMembers(groupName-Zeichenfolge, Element []Zeichenfolge, Identität *x509). Zertifikat (Fehler)

Entfernen Sie mindestens ein Mitglied aus einer Gruppe.

Die Identity muss über UPDATE-Zugriff auf diese Gruppe verfügen. Wenn die Identität Null ist, wird die in NewGroupManager () angegebene Standardidentität verwendet.

UpdateDescription(groupName-Zeichenfolge, newDes-Zeichenfolge, Identität *x509). Zertifikat (Fehler)

Aktualisieren Sie die Beschreibung.

Die Identity muss über UPDATE-Zugriff auf diese Gruppe verfügen. Wenn die Identität Null ist, wird die in NewGroupManager () angegebene Standardidentität verwendet.

AddBeforeACL(groupName-Zeichenfolge, beforeName-Zeichenfolge, aclName-Zeichenfolge, Identität *x509). Zertifikat (Fehler)

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 NewGroupManager () angegebene Standardidentität verwendet.

AddAfterACL(groupName-Zeichenfolge, afterName-Zeichenfolge, aclName-Zeichenfolge, Identität *x509). Zertifikat (Fehler)

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-ACL 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 NewGroupManager () angegebene Standardidentität verwendet.

RemoveBindACL(groupName-Zeichenfolge, aclName-Zeichenfolge, Identität *x509). Zertifikat (Fehler)

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 NewGroupManager () angegebene Standardidentität verwendet.

GetAll(Identität *x509). Zertifikat) ([]Gruppe, Fehler)

Alle Gruppen aufrufen.

Die Identität muss Lesezugriff auf diese Gruppen haben. Wenn die Identität Null ist, wird die in NewGroupManager () angegebene Standardidentität verwendet.

Ressourcenfunktionen

Definition der Resource-Struktur:
type Resource struct {
     Name string
     Description string
     BindACLs []string      // The name list of ACL, controls who can access this resource
}

Ressourcenfunktionen:

Abzug Beschreibung
Erstellen (Ressourcenressource, Identität *x509). Zertifikat (Fehler)

Neue Ressource erstellen. Doppelte benannte Ressourcen sind nicht zulässig.

Die Identität benötigt CREATE-Zugriff auf die Bootstrap-Ressource mit dem Namen ". Ressourcen" Wenn die Identität Null ist, wird die in NewResourceManager() angegebene Standardidentität verwendet.

Get(resName-Zeichenfolge, Identität *x509). Zertifikat) (Ressource, Fehler)

Ruft eine angegebene Ressource ab.

Die Identität muss READ-Zugriff auf die Ressource haben. Wenn die Identität Null ist, wird die in NewResourceManager() angegebene Standardidentität verwendet.

Löschen (resName-Zeichenfolge, Identität *x509). Zertifikat (Fehler)

Benannte Ressource löschen.

Die Identität muss DELETE-Zugriff auf die benannte Ressource haben. Wenn die Identität Null ist, wird die in NewResourceManager() angegebene Standardidentität verwendet.

UpdateDescription(resourceName-Zeichenfolge, newDes-Zeichenfolge, Identität *x509). Zertifikat (Fehler)

Aktualisieren Sie die Beschreibung.

Die Identität muss UPDATE-Zugriff auf diese Ressource haben. Wenn die Identität Null ist, wird die in NewResourceManager() angegebene Standardidentität verwendet.

AddBeforeACL(resourceName-Zeichenfolge, beforeName-Zeichenfolge, aclName-Zeichenfolge, Identität *x509). Zertifikat (Fehler)

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 NewResourceManager() angegebene Standardidentität verwendet.

AddAfterACL(resourceName-Zeichenfolge, afterName-Zeichenfolge, aclName-Zeichenfolge, Identität *x509). Zertifikat (Fehler)

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 NewResourceManager() angegebene Standardidentität verwendet.

RemoveBindACL(resourceName-Zeichenfolge, aclName-Zeichenfolge, Identität *x509). Zertifikat (Fehler)

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 NewResourceManager() angegebene Standardidentität verwendet.

CheckAccess(resName-Zeichenfolge, Zugriffszeichenfolge, Identität *x509). Zertifikat) (bool, Fehler)

Prüfen Sie, ob der aktuelle Benutzer über den angegebenen Zugriff auf die benannte Ressource verfügt.

Wenn die Identität Null ist, wird die in NewResourceManager() angegebene Standardidentität verwendet.

GetAll(Identität *x509). Zertifikat) ([]Ressource, Fehler

Alle Ressourcen abrufen.

Die Identität muss READ-Zugriff auf diese Ressourcen haben. Wenn die Identität Null ist, wird die in NewResourceManager() angegebene Standardidentität verwendet.