B Uso de la biblioteca de control de acceso detallado incluida en el ejemplo de mármoles

A partir de la versión 1.2, Hyperledger Fabric proporcionó un control de acceso detallado para muchas de las funciones de gestión. Oracle Blockchain Platform proporciona un paquete de ejemplo de mármoles en el separador Developer Tools de la consola, implantando una biblioteca de funciones que los desarrolladores de código de cadenas pueden utilizar para crear listas de control de acceso para funciones de código de cadenas. Actualmente solo admite el idioma Go.

Antecedentes

El objetivo de esta biblioteca de control de acceso de ejemplo es proporcionar lo siguiente:

  • Proporciona un mecanismo que le permite controlar qué usuarios pueden acceder a determinadas funciones de código de cadenas.
  • La lista de usuarios y sus derechos deben ser dinámicos y compartidos entre códigos de cadenas.
  • Proporciona comprobaciones de control de acceso para que un código de cadena pueda comprobar fácilmente la lista de control de acceso.
  • En el momento del despliegue del código de cadenas, permite rellenar la lista de recursos y listas de control de acceso con los miembros iniciales.
  • Se debe proporcionar una lista de control de acceso para autorizar a los usuarios a realizar operaciones de lista de control de acceso.

Descargar el ejemplo

En el separador Herramientas de desarrollador, abra el panel Muestras. Haga clic en el enlace de descarga en Marbles con ACL Detalladas. Este paquete contiene tres subpaquetes:
  • Fine-GrainedAccessControlLibrary.zip:

    Biblioteca de control de acceso detallado. Contiene funciones en Go que pueden ser utilizadas por los desarrolladores de código de cadenas para crear listas de control de acceso para funciones de código de cadenas.

  • fgACL_MarbleSampleCC.zip:

    Muestra de canicas con listas de control de acceso implantadas. Incluye una variedad de funciones que le permiten examinar cómo trabajar con listas de control de acceso detallado, grupos y recursos para restringir funciones a determinados usuarios/identidades.

  • fgACL-NodeJSCode.zip:

    Scripts Node.js que utilizan el SDK Node.js para ejecutar el ejemplo. Se puede utilizar registerEnrollUser.js para registrar nuevos usuarios con Blockchain Platform. Se puede utilizar invokeQueryCC.js para ejecutar transacciones en una instancia de Blockchain Platform.

Terminología y acrónimos

Término Descripción
Identidad Certificado X509 que representa la identidad del emisor de llamada o la identidad específica que el código de cadena desea comprobar.
Patrón de identidad

Patrón que coincide con una o más identidades. Se sugieren los siguientes patrones:

  • Nombre común del asunto X.500 - CN
  • X.509 Unidad de organización de sujetos - OU
  • Organización del asunto X.509 - O
  • Grupo como se define en esta biblioteca: GRP
  • Atributo - ATTR

El formato de un patrón es esencialmente una cadena con un prefijo. Por ejemplo, para definir un patrón que coincida con cualquier identidad de la organización "example.com", el patrón sería "%O%example.com".

Recurso Nombre de todo aquello a lo que el código de cadenas desea controlar el acceso. Para esta biblioteca es solo una cadena arbitraria con nombre contenida en un espacio de nombres plano. La semántica del nombre depende completamente del código de cadenas.
Agrupar Grupo de patrones de identidad.
ACL Lista de control de acceso: entidad con nombre que tiene una lista de patrones de identidad, una lista de tipos de acceso como "READ", "CREATE", "INVOKE", "FORWARD" o cualquier cosa que el código de cadenas desee utilizar. Esta biblioteca utilizará los tipos de acceso CREATE, READ, UPDATE y DELETE (operaciones CRUD estándar) para mantener su información. Aparte de los cuatro que se relacionan con los elementos de esta biblioteca, son solo cadenas sin semántica implícita. Una aplicación puede decidir utilizar los accesos de "A", "B" y "CUSTOM".