Git Product home page Git Product logo

authorization.io's Introduction

authorization.io

A solution to the NASCAR login problem.

A live version and demo of this site can be found at authorization.io.

This software enables a person to find their credential curator (previously known as their identity provider) using an email address and passphrase known to them.

In general, the site accomplishes this by providing a Web polyfill to enable the decentralized lookup of services associated with a person, organization, or entity. It does this by providing a number of HTTP APIs that credential curator websites can integrate with as well as front-end code that can be used as a polyfill on websites that want to support Identity Credentials-based login.

The goal of this project is to support Identity Credentials-based login until a more complete Web Decentralized Hashtable (WebDHT) solution is standardized at W3C and Web browsers build the capability into the core of a browser. While the WebDHT work is a multi-year R&D effort, this software is provided as a placeholder so that other work that depends on Identity Credentials can proceed in parallel.

Requirements

  • npm v3+

Core Functionality

This software enables a person to:

  1. Create and store a device-specific cryptographic key in local storage.
  2. Create a decentralized identifier (DID), associate that DID with the public key associated in the previous step, and store it in a decentralized identifier document in a decentralized network.
  3. Map an email address / passphrase combination to a decentralized identifier document.
  4. Map a decentralized identifier document to a credential curator.
  5. Proxy read and write requests for credentials between credential issuers, credential consumers, and credential curators.

Development

The following section explains how to setup and develop the authorization.io software on a local development machine.

Requirements

  • node.js
  • npm
  • mongodb

Configuration

The options in the ./configs/authorization.dev.js file can be tuned to your environment as needed.

Setup

  • Setup an admin user on mongodb (see below)
  • Install the dependencies (see below)
  • Map the authorization.dev hostname to your localhost.

To setup an admin user on mongodb:

Enter the mongo shell
use admin
db.createUser( { user: "admin", pwd: "password", roles: [ "clusterAdmin", "readWriteAnyDatabase", "userAdminAnyDatabase", "dbAdminAnyDatabase"] } )

To install dependencies, do the following:

npm install

Running

Add a host alias (for example, edit /etc/hosts) to map authorization.dev to localhost.

Run the following to start up a development server from the source directory:

node authorization.dev.js

To add more verbose debugging, use the --log-level option:

node authorization.dev.js --log-level debug

Usage

Access the server at the following URL:

authorization.io's People

Contributors

aishairzay avatar bebold avatar davidlehn avatar dlongley avatar halmas94 avatar mattcollier avatar msporny avatar omarmalik avatar

Watchers

 avatar  avatar  avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.