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

A partir de la version 1.2, Hyperledger Fabric fournissait un contrôle d'accès détaillé à de nombreuses fonctions de gestion. Oracle Blockchain Platform fournit un exemple de package de billes dans l'onglet Outils de développement de la console, en implémentant 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. Il ne prend actuellement en charge que la langue Go.

Contexte

L'objectif de cet exemple de bibliothèque de contrôle d'accès est de fournir les éléments suivants :

  • Fournit un mécanisme permettant de contrôler les utilisateurs pouvant accéder à des fonctions de code chaîne particulières.
  • La liste des utilisateurs et leurs habilitations doit être 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.
  • Lors du déploiement du code chaîne, vous pouvez remplir la liste des ressources et les 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'exemple

Dans l'onglet Outils de développement, ouvrez le panneau Exemples. Cliquez sur le lien de téléchargement sous Marbres avec 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 listes de contrôle d'accès implémentées. Il comprend une variété de fonctions pour vous permettre d'examiner comment utiliser des listes, des groupes et des ressources de contrôle d'accès de niveau fin 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 de 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 :

  • Nom commun du sujet X.509 - CN
  • X.509 Unité organisationnelle du sujet - Unité opérationnelle
  • Organisation du sujet X.509 - 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 ce à quoi le code chaîne veut 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 disposant d'une liste de modèles d'identité, d'une liste de types d'accès tels que "READ", "CREATE", "INVOKE", "FORWARD" ou de tout élément 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. Outre ces quatre éléments relatifs 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 de "A", "B" et "CUSTOM".