kangkang333 / hyperledger-fabric-based-access-control

A Hyperledger Fabric Based Access Control system to mediate access control flow from centralized applications.

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Hyperledger-Fabric-Based-Acess-Control

Build Status Codacy Badge

Welcome to the Hyperledger Fabric Based Access Control project.

This project aims to mediate the access control flow coming from a centralized system, enhancing auditability and access control policy enforcement. It discourages illicit accesses, as the system administrators are not able to tamper the access logs (if applicable).

Paper

This project yielded a scientific paper, currently available at arXiv: https://arxiv.org/pdf/2006.04384.pdf

Pre-requisites

Make sure following tools are installed:

  • NodeJS ^10.15 (tested with 10.18.1)
  • Docker (latest)
  • Docker-compose (latest)

Installation steps

  1. Install the prerequesites and fabric-samples. NOTE: Install Fabric v2.0 with curl -sSL https://bit.ly/2ysbOFE | bash -s -- 2.0.0 1.4.4 0.4.18
  2. To avoid any conflict with previous network, remove all docker containers.
  • docker kill $(docker ps -q)
  • docker rm $(docker ps -aq)
  1. Start the Fabric Network and javascript version of abacFabric chaincode by running: ./startFabric

  2. You may run transactions against the ledger, specified at the end of script execution

  3. Navigate to the abacFabric directory

  4. Go to javascript and run npm install. NOTE: The client is still being refactored

Demonstration

  1. To enroll an admin user, run node enrollAdmin.js

  2. With the enrolled admin, register another user with node registerUser.js

  3. Run node index.js file to run the web application. I your terminal you should see the message "app is listening on port 3000 ..."

  4. In your browser go to the address localhost:3000. Now you record subjects and resources attributes and policies in JSON format on the ledger. Query the stored data. And check the access permissions based on stored data and given rule.

Shutting the network down

  1. To stop the network, run ./stopFabric

Test

Tests from the older version are located in the test folder

About

A Hyperledger Fabric Based Access Control system to mediate access control flow from centralized applications.

License:Apache License 2.0


Languages

Language:HTML 96.9%Language:JavaScript 2.2%Language:Shell 0.9%