Fine-Grained Access Control Library – Funktionen

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

Globale Funktionen

Funktion Beschreibung
Initialisierung (Identität *x509). Zertifikat, Stub shim.ChaincodeStubInterface) (Fehler) (Fehler)

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

Nach Abschluss des Bootstraps werden die folgenden Entitys erstellt:

  • Eine Ressource namens ". Ressourcen". Eine entsprechende ACL namens ". Resources.ACL" wird mit einem einzelnen Identitätsmuster in der Form "%CN%bob.smith@oracle.com" mit dem tatsächlichen gemeinsamen Namen erstellt. Der Zugriff erfolgt über CREATE-, READ-, UPDATE- und DELETE-Zugriff.
  • Eine Gruppe namens ". Gruppen". Eine entsprechende ACL namens ". Groups.ACL" wird mit einem einzelnen Identitätsmuster in der Form "%CN%bob.smith@oracle.com" mit dem tatsächlichen gemeinsamen Namen erstellt. Der Zugriff erfolgt über CREATE-, READ-, UPDATE- und DELETE-Zugriff.
  • Eine ACL namens ". ACLs". Eine entsprechende ACL-Steuerungsliste namens ". ACLs.ACL" wird mit einem einzelnen Identitätsmuster in der Form "%CN%bob.smith@oracle.com" mit dem tatsächlichen gemeinsamen Namen erstellt. Der Zugriff erfolgt über CREATE-, READ-, UPDATE- und DELETE-Zugriff.
NewGroupManager(Identität *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(Identität *x509). Zertifikat, Stub shim.ChaincodeStubInterface) (*ACLManager, Fehler)

Rufen Sie 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(Identität *x509). Zertifikat, Stub shim.ChaincodeStubInterface) (*ResourceManager, Fehler)

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, 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 beliebigen Zugriffsnamen und vollständig bis zur Anwendung mit Ausnahme von vier: CREATE, READ, UPDATE und DELETE. Diese Zugriffswerte werden bei der Verwaltung der feinkörnigen Zugriffskontrolle verwendet. Anwendungen können ihre eigenen Zugriffszeichenfolgen wie "register", "invoke" oder "query" oder sogar den Zugriff auf Feldnamen wie "owner", "quantity" usw. verwenden.
  • Zulässig: "Zulässig" legt fest, ob Identitäten, die einem Muster entsprechen, Zugriff (wahr) oder unzulässiger Zugriff (falsch) erhalten. Sie können eine Access Control-Liste haben, die angibt, dass Bob Zugriff auf "CREATE" hat, und eine andere, die angibt, dass die Gruppe Oracle (von der Bob Mitglied ist) von "CREATE" nicht unterstützt wird. 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 ". ACLs". Wenn die Identität Null ist, wird die in newACLManager() angegebene Standardidentität verwendet.

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

Holen Sie sich eine benannte ACL.

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

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

Eine angegebene ACL löschen.

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.

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

Aktualisieren Sie eine ACL.

Die Identität muss über UPDATE-Zugriff auf die benannte Ressource verfügen, 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 über UPDATE-Zugriff auf die benannte ACL verfügen.

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 über UPDATE-Zugriff auf die benannte ACL verfügen.

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

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

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

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

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

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

Aktualisieren Sie die Beschreibung.

Die Identität muss über UPDATE-Zugriff auf die benannte ACL verfügen. 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 über UPDATE-Zugriff auf die benannte ACL verfügen. 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 über UPDATE-Zugriff auf die benannte ACL verfügen. Wenn die Identität Null ist, wird die in newACLManager() angegebene Standardidentität verwendet.

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

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

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

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

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 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 CREATE-Zugriff auf die Bootstrap-Gruppe haben ". Gruppe". Wenn die Identität Null ist, wird die in NewGroupManager() angegebene Standardidentität verwendet.

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

Ruft eine angegebene Gruppe ab.

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

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

Eine angegebene Gruppe löschen.

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(Zeichenfolge groupName, Element []Zeichenfolge, Identität *x509). Zertifikat) (Fehler)

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

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

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

Entfernen Sie ein oder mehrere Mitglieder aus einer Gruppe.

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

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

Aktualisieren Sie die Beschreibung.

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

AddBeforeACL(Zeichenfolge groupName, Zeichenfolge beforeName, Zeichenfolge aclName, 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 über UPDATE-Zugriff auf die benannte Gruppe verfügen. Wenn die Identität Null ist, wird die in NewGroupManager () angegebene Standardidentität verwendet.

AddAfterACL(Zeichenfolge groupName, Zeichenfolge afterName, Zeichenfolge aclName, 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 über UPDATE-Zugriff auf die benannte Gruppe verfügen. Wenn die Identität Null ist, wird die in NewGroupManager () angegebene Standardidentität verwendet.

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

Entfernt die benannte ACL aus der Bind-ACL-Liste der benannten Gruppe.

Die Identität muss über UPDATE-Zugriff auf die benannte Gruppe verfügen. 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:

Fuktion Beschreibung
Erstellen (Ressource, Identität *x509). Zertifikat) (Fehler)

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

Die Identität muss CREATE-Zugriff auf die Bootstrap-Ressource namens ". Ressourcen" Wenn die Identität Null ist, wird die in NewResourceManager() angegebene Standardidentität verwendet.

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

Rufen Sie 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.

Delete(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(Zeichenfolge resourceName, Zeichenfolge newDes, Identität *x509). Zertifikat) (Fehler)

Aktualisieren Sie die Beschreibung.

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

AddBeforeACL(Zeichenfolge resourceName, Zeichenfolge beforeName, Zeichenfolge aclName, 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 über UPDATE-Zugriff auf die benannte Ressource verfügen. Wenn die Identität Null ist, wird die in NewResourceManager() angegebene Standardidentität verwendet.

AddAfterACL(Zeichenfolge resourceName, Zeichenfolge afterName, Zeichenfolge aclName, 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 über UPDATE-Zugriff auf die benannte Ressource verfügen. Wenn die Identität Null ist, wird die in NewResourceManager() angegebene Standardidentität verwendet.

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

Entfernt die benannte ACL aus der Bind-ACL-Liste der benannten Ressource.

Die Identität muss über UPDATE-Zugriff auf die benannte Ressource verfügen. Wenn die Identität Null ist, wird die in NewResourceManager() angegebene Standardidentität verwendet.

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

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 über READ-Zugriff auf diese Ressourcen verfügen. Wenn die Identität Null ist, wird die in NewResourceManager() angegebene Standardidentität verwendet.