Fonctions de bibliothèque de contrôle d'accès détaillé

Le package de bibliothèque fournit les fonctions suivantes pour les ressources, les groupes et les listes de contrôle d'accès, ainsi que pour les fonctions globales.

Fonctions globales

Fonction Description
Initialization(identité *x509). Certificat, stub shim.ChaincodeStubInterface) (erreur) (erreur)

Lorsque le code chaîne est instancié, la fonction d'initialisation est appelée. Cette fonction initialisera l'état mondial avec des listes de contrôle d'accès intégrées. Ces listes intégrées sont utilisées pour initialiser l'environnement. Il doit donc y avoir un contrôle d'accès sur les personnes pouvant créer des ressources, des groupes et des listes de contrôle d'accès. Si l'identifiant est nul, utilisez l'identifiant de l'appelant.

Une fois le bootstrap terminé, les entités suivantes sont créées :

  • Une ressource nommée ". Ressources". ACL correspondante nommée ". Resources.ACL" sera créé avec un modèle d'identité unique au format "%CN%bob.smith@oracle.com", à l'aide du nom commun réel, et l'accès sera CREATE, READ, UPDATE et DELETE.
  • Un groupe nommé ". Groupes". ACL correspondante nommée ". Groups.ACL" sera créé avec un modèle d'identité unique au format "%CN%bob.smith@oracle.com", à l'aide du nom commun réel, et l'accès sera CREATE, READ, UPDATE et DELETE.
  • Une ACL nommée ". ACL. Une liste de contrôle ACL correspondante nommée ". ACLs.ACL" sera créé avec un modèle d'identité unique au format "%CN%bob.smith@oracle.com", à l'aide du nom commun réel, et l'accès sera CREATE, READ, UPDATE et DELETE.
NewGroupManager(identité *x509). Certificat, stub shim.ChaincodeStubInterface) (*GroupManager, erreur)

Obtenir le responsable de groupe utilisé pour toutes les opérations liées au groupe.

Identité : identité par défaut de l'opération associée. Si elle est nulle, utilisez l'identité de l'appelant.

NewACLManager(identité *x509). Certificat, stub shim.ChaincodeStubInterface) (*ACLManager, erreur)

Obtenez le gestionnaire d'ACL utilisé pour toutes les opérations liées à l'ACL.

Identité : identité par défaut de l'opération associée. Si elle est nulle, utilisez l'identité de l'appelant.

NewResourceManager(identité *x509). Certificat, stub shim.ChaincodeStubInterface) (*ResourceManager, erreur)

Obtenir le gestionnaire de ressources utilisé pour toutes les opérations liées aux ressources.

Identité : identité par défaut de l'opération associée. Si elle est nulle, utilisez l'identité de l'appelant.

Fonctions de liste de contrôle d'accès (ACL)

Définition de la structure ACL :
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
}
  • Accès : la chaîne Accès est une liste de noms d'accès arbitraires séparés par des virgules et jusqu'à l'application, à l'exception de quatre : CREATE, READ, UPDATE et DELETE. Ces valeurs d'accès sont utilisées pour maintenir le contrôle d'accès détaillé. Les applications peuvent utiliser leurs propres chaînes d'accès telles que "register", "invoke" ou "query", ou même des éléments tels que l'accès aux noms de champ tels que "owner", "quantity", etc.
  • Autorisé : l'option Autorisé détermine si les identités correspondant à un modèle sont autorisées à accéder (vrai) ou interdites (faux). Vous pouvez disposer d'une liste de contrôle d'accès indiquant que Bob a accès à "CREATE" et d'une autre liste indiquant que le groupe Oracle (dont Bob est membre) ne peut pas accéder à "CREATE". Le fait que Bob ait accès ou non dépend de l'ordre des listes de contrôle d'accès associées à l'entité en question.
  • BindACLs : le paramètre BindACLs forme la liste de contrôle d'accès initiale.

Fonctions ACL :

Fonction Description
Create(ACL acl, identité *x509. (erreur)

Crée une ACL. Les ACL nommées en double ne sont pas autorisées.

Pour créer une nouvelle ACL, l'identité doit disposer d'un accès CREATE à la ressource bootstrap nommée ". ACL. Si l'identité est nulle, l'identité par défaut indiquée dans newACLManager() est utilisée.

Get(chaîne aclName, identité *x509). Certificate) (ACL, erreur

Obtenez une ACL nommée.

L'identité doit disposer d'un accès en lecture à l'ACL nommée. Si l'identité est nulle, l'identité par défaut indiquée dans newACLManager() est utilisée.

Delete(chaîne aclName, identité *x509). (erreur)

Supprimez une ACL spécifiée.

L'identité doit disposer d'un accès DELETE à l'ACL nommée. Si l'identité est nulle, l'identité par défaut indiquée dans newACLManager() est utilisée.

Update(ACL acl, identité *x509). (erreur)

Mise à jour d'une liste de contrôle d'accès.

L'identité doit disposer d'un accès UPDATE à la ressource nommée et l'ACL nommée doit exister. Si l'identité est nulle, l'identité par défaut indiquée dans NewACLManager() est utilisée.

AddPattern(chaîne aclName, chaîne de modèle, identité *x509). (erreur)

Ajoute un nouveau modèle d'identité à l'ACL nommée. L'identité doit disposer d'un accès UPDATE à l'ACL nommée.

Si l'identité est nulle, l'identité par défaut indiquée dans newACLManager() est utilisée.

RemovePattern(chaîne aclName, chaîne de modèle, identité *X509Certificate) (erreur)

Supprime le modèle d'identité de l'ACL. L'identité doit disposer d'un accès UPDATE à l'ACL nommée.

Si l'identité est nulle, l'identité par défaut indiquée dans newACLManager() est utilisée.

AddAccess(chaîne aclname, chaîne d'accès, identité *X509Certificate) (erreur)

Ajoute un nouvel accès à l'ACL nommée. L'identité doit disposer d'un accès UPDATE à l'ACL nommée.

Si l'identité est nulle, l'identité par défaut indiquée dans newACLManager() est utilisée.

RemoveAccess(chaîne aclName, chaîne d'accès, identité *X509Certificate) (erreur)

Supprime l'accès de l'ACL. L'identité doit disposer d'un accès UPDATE à l'ACL nommée.

Si l'identité est nulle, l'identité par défaut indiquée dans newACLManager() est utilisée.

UpdateDescription(chaîne aclName, chaîne newDescription, identité *X509Certificate) (erreur)

Mettez à jour la description.

L'identité doit disposer d'un accès UPDATE à l'ACL nommée. Si l'identité est nulle, l'identité par défaut indiquée dans newACLManager() est utilisée.

AddBeforeACL(chaîne aclName, chaîne beforeName, chaîne newBindACL, identité *X509Certificate) (erreur)

Ajoute une ACL de liaison avant l'ACL nommée existante. Si l'ACL nommée est vide ou introuvable, elle est ajoutée au début de la liste d'ACL de liaison.

L'identité doit disposer d'un accès UPDATE à l'ACL nommée. Si l'identité est nulle, l'identité par défaut indiquée dans newACLManager() est utilisée.

AddAfterACL(chaîne aclName, chaîne afterName, chaîne newBindACL, identité *X509Certificate) (erreur)

Ajoute une ACL de liaison après l'ACL nommée existante. Si l'ACL nommée est vide ou introuvable, elle est ajoutée à la fin de la liste d'ACL de liaison.

L'identité doit disposer d'un accès UPDATE à l'ACL nommée. Si l'identité est nulle, l'identité par défaut indiquée dans newACLManager() est utilisée.

RemoveBindACL(chaîne aclName, chaîne removeName, identité *X509Certificate) (erreur)

Supprime l'ACL removeName de la liste d'ACL de liaison.

L'identité doit disposer d'un accès UPDATE à l'ACL nommée. Si l'identité est nulle, l'identité par défaut indiquée dans newACLManager() est utilisée.

GetAll(identité *x509). Certificate) ([]ACL, erreur

Obtenez toutes les ACL.

L'identité doit disposer d'un accès en lecture à l'ACL nommée. Si l'identité est nulle, l'identité par défaut indiquée dans newACLManager() est utilisée.

Fonctions de groupe

Définition de la structure Group :
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.
}

Définition des fonctions GroupManager :

Fonction Description
Create(groupe, identité *x509). (erreur)

Créez un groupe.

L'identité doit avoir un accès CREATE au groupe bootstrap ". Groupe". Si l'identité est nulle, l'identité par défaut indiquée dans NewGroupManager() est utilisée.

Get(chaîne groupName, identité *x509). Certificat (groupe, erreur)

Permet d'obtenir un groupe spécifique.

L'identité doit disposer d'un accès en lecture à ce groupe. Si l'identité est nulle, l'identité par défaut indiquée dans NewGroupManager() est utilisée.

Delete(chaîne groupName, identité *x509). (erreur)

Supprimer un groupe spécifié.

L'identité doit avoir un accès DELETE à ce groupe. Si l'identité est nulle, l'identité par défaut indiquée dans NewGroupManager () est utilisée.

AddMembers(chaîne groupName, chaîne []membre, identité *x509). (erreur)

Ajoutez au moins un membre au groupe.

L'identité doit disposer d'un accès UPDATE à ce groupe. Si l'identité est nulle, l'identité par défaut indiquée dans NewGroupManager () est utilisée.

RemoveMembers(chaîne groupName, chaîne []membre, identité *x509). (erreur)

Enlevez un ou plusieurs membres d'un groupe.

L'identité doit disposer d'un accès UPDATE à ce groupe. Si l'identité est nulle, l'identité par défaut indiquée dans NewGroupManager () est utilisée.

UpdateDescription(chaîne groupName, chaîne newDes, identité *x509). (erreur)

Mettez à jour la description.

L'identité doit disposer d'un accès UPDATE à ce groupe. Si l'identité est nulle, l'identité par défaut indiquée dans NewGroupManager () est utilisée.

AddBeforeACL(chaîne groupName, chaîne beforeName, chaîne aclName, identité *x509). (erreur)

Ajoute une ACL de liaison au groupe avant l'ACL nommée existante. Si l'ACL nommée est vide ou introuvable, elle est ajoutée au début de la liste des ACL de liaison pour la ressource.

L'identité doit disposer d'un accès UPDATE au groupe nommé. Si l'identité est nulle, l'identité par défaut indiquée dans NewGroupManager () est utilisée.

AddAfterACL(chaîne groupName, chaîne afterName, chaîne aclName, identité *x509). (erreur)

Ajoute une ACL de liaison au groupe après l'ACL nommée existante. Si l'ACL nommée est vide ou introuvable, elle est ajoutée à la fin de la liste des ACL de liaison pour le groupe.

L'identité doit disposer d'un accès UPDATE au groupe nommé. Si l'identité est nulle, l'identité par défaut indiquée dans NewGroupManager () est utilisée.

RemoveBindACL(chaîne groupName, chaîne aclName, identité *x509). (erreur)

Supprime l'ACL nommée de la liste d'ACL de liaison du groupe nommé.

L'identité doit disposer d'un accès UPDATE au groupe nommé. Si l'identité est nulle, l'identité par défaut indiquée dans NewGroupManager () est utilisée.

GetAll(identité *x509). Certificate) ([]Groupe, erreur

Obtenir tous les groupes.

L'identité doit disposer d'un accès en lecture à ces groupes. Si l'identité est nulle, l'identité par défaut indiquée dans NewGroupManager () est utilisée.

Fonctions de ressource

Définition de la structure Resource :
type Resource struct {
     Name string
     Description string
     BindACLs []string      // The name list of ACL, controls who can access this resource
}

Fonctions de ressource :

Fuite Description
Create(ressource de ressource, identité *x509). (erreur)

Créer une ressource. Les ressources nommées en double ne sont pas autorisées.

L'identité doit avoir un accès CREATE à la ressource bootstrap nommée ". Ressources" Si l'identité est NULL, l'identité par défaut indiquée dans NewResourceManager() est utilisée.

Get(chaîne resName, identité *x509). Certificat (ressource, erreur)

Permet d'obtenir une ressource spécifiée.

L'identité doit disposer d'un accès en lecture à la ressource. Si l'identité est NULL, l'identité par défaut indiquée dans NewResourceManager() est utilisée.

Delete(chaîne resName, identité *x509). (erreur)

Supprimez une ressource nommée.

L'identité doit disposer d'un accès DELETE à la ressource nommée. Si l'identité est NULL, l'identité par défaut indiquée dans NewResourceManager() est utilisée.

UpdateDescription(chaîne resourceName, chaîne newDes, identité *x509). (erreur)

Mettez à jour la description.

L'identité doit disposer d'un accès UPDATE à cette ressource. Si l'identité est nulle, l'identité par défaut indiquée dans NewResourceManager() est utilisée.

AddBeforeACL(chaîne resourceName, chaîne beforeName, chaîne aclName, identité *x509). (erreur)

Ajoute une ACL de liaison à la ressource avant l'ACL nommée existante. Si l'ACL nommée est vide ou introuvable, elle est ajoutée au début de la liste des ACL de liaison pour la ressource.

L'identité doit disposer d'un accès UPDATE à la ressource nommée. Si l'identité est nulle, l'identité par défaut indiquée dans NewResourceManager() est utilisée.

AddAfterACL(chaîne resourceName, chaîne afterName, chaîne aclName, identité *x509). (erreur)

Ajoute une ACL de liaison à la ressource après l'ACL nommée existante. Si l'ACL nommée est vide ou introuvable, elle est ajoutée à la fin de la liste des ACL de liaison pour la ressource.

L'identité doit disposer d'un accès UPDATE à la ressource nommée. Si l'identité est nulle, l'identité par défaut indiquée dans NewResourceManager() est utilisée.

RemoveBindACL(chaîne resourceName, chaîne aclName, identité *x509). (erreur)

Supprime l'ACL nommée de la liste d'ACL de liaison de la ressource nommée.

L'identité doit disposer d'un accès UPDATE à la ressource nommée. Si l'identité est nulle, l'identité par défaut indiquée dans NewResourceManager() est utilisée.

CheckAccess(chaîne resName, chaîne d'accès, identité *x509). Certificat (bool, erreur)

Vérifiez si l'utilisateur actuel dispose de l'accès spécifié à la ressource nommée.

Si l'identité est nulle, l'identité par défaut indiquée dans NewResourceManager() est utilisée.

GetAll(identité *x509). Certificat) ([]ressource, erreur

Obtenez toutes les ressources.

L'identité doit disposer d'un accès en lecture à ces ressources. Si l'identité est nulle, l'identité par défaut indiquée dans NewResourceManager() est utilisée.