B Utilisation de la bibliothèque de contrôle d'accès de niveau fin incluse dans l'exemple Marbles

Hyperledger Fabric fournit un contrôle d'accès de niveau fin à de nombreuses fonctions de gestion. Oracle Blockchain Platform fournit un exemple de package de billes sur l'onglet Outils de développement de la console. Il implémente une bibliothèque de fonctions que les développeurs de code chaîne peuvent utiliser pour créer des listes de contrôle d'accès pour les fonctions de code chaîne. Actuellement, il ne prend en charge que la langue Go.

Contexte

L'objectif de cette bibliothèque de contrôle d'accès est de fournir les fonctions suivantes :

  • Fournit un mécanisme permettant de contrôler les utilisateurs qui peuvent accéder à des fonctions de code chaîne particulières. La liste des utilisateurs et leurs habilitations est dynamique et partagée entre les codes chaîne.
  • Fournit des vérifications de contrôle d'accès afin qu'un code chaîne puisse vérifier facilement la liste de contrôle d'accès.
  • Au moment du déploiement des codes chaîne, vous permet de remplir la liste des ressources et des listes de contrôle d'accès avec vos membres initiaux. Une liste de contrôle d'accès doit être fournie pour autoriser les utilisateurs à effectuer des opérations de liste de contrôle d'accès.

Télécharger l'échantillon

Dans l'onglet Outils de développement, ouvrez le panneau Exemples. Cliquez sur le lien de téléchargement sous Marbles avec des ACL de niveau fin. Ce package contient trois sous-packages :
  • Fine-GrainedAccessControlLibrary.zip:

    Bibliothèque de contrôle d'accès détaillé. Il contient des fonctions dans Go qui peuvent être utilisées par les développeurs de code chaîne pour créer des listes de contrôle d'accès pour les fonctions de code chaîne.

  • fgACL_MarbleSampleCC.zip:

    Exemple de billes avec des listes de contrôle d'accès implémentées. Il inclut une variété de fonctions pour vous permettre d'examiner comment utiliser des listes de contrôle d'accès de niveau fin, des groupes et des ressources pour restreindre les fonctions à certains utilisateurs/identités.

  • fgACL-NodeJSCode.zip:

    Scripts Node.js qui utilisent le kit SDK Node.js pour exécuter l'exemple. registerEnrollUser.js peut être utilisé pour inscrire de nouveaux utilisateurs auprès de Blockchain Platform. invokeQueryCC.js peut être utilisé pour exécuter des transactions sur une instance Blockchain Platform.

Terminologie et acronymes

Terme Description
Identité Certificat X509 représentant l'identité de l'appelant ou l'identité spécifique que le code chaîne souhaite vérifier.
Modèle d'identité

Modèle correspondant à une ou plusieurs identités. Les modèles suivants sont suggérés :

  • X.509 Sujet Nom commun – CN
  • X.509 Unité organisationnelle du sujet – OU
  • X.509 Organisation Sujet – O
  • Groupe tel que défini dans cette bibliothèque – GRP
  • Attribut – ATTR

Le format d'un modèle est essentiellement une chaîne avec un préfixe. Par exemple, pour définir un modèle qui correspond à n'importe quelle identité dans l'organisation "example.com", le modèle serait "%O%example.com".

Ressource Nom de tout élément sur lequel le code chaîne souhaite contrôler l'accès. Pour cette bibliothèque, il s'agit simplement d'une chaîne arbitraire nommée contenue dans un espace de noms plat. La sémantique du nom dépend entièrement du code chaîne.
Grouper Groupe de modèles d'identité.
Liste de contrôle d'accès Liste de contrôle d'accès : entité nommée qui comporte une liste de modèles d'identité, une liste de types d'accès tels que "READ", "CREATE", "INVOKE", "FORWARD" ou tout ce que le code chaîne souhaite utiliser. Cette bibliothèque utilisera les types d'accès CREATE, READ, UPDATE et DELETE (opérations CRUD standard) pour gérer ses informations. En dehors de ces quatre éléments liés aux éléments de cette bibliothèque, ils ne sont que des chaînes sans sémantique implicite. Une application peut décider d'utiliser les accès "A", "B" et "CUSTOM".