Reference implementation of ETSI 103 407: Cross Platform Authentication, Authentication Provider
Clone or download
chrisn Merge pull request #87 from ebu/fix-dockerfile
Specify ubuntu image tag in DockerFile
Latest commit 86de3f3 May 10, 2016
Permalink
Type Name Latest commit message Commit time
Failed to load latest commit information.
bin
lib
models
public
routes
test
views
.gitignore
.jshintrc
.jshintrc-test
.travis.yml
Dockerfile
LICENSE.txt
Makefile
README.md
config.dist.js
config.docker.js
config.js
config.test.js
package.json

README.md

Cross-Platform Authentication - Authorization Provider

Build Status

This project contains a reference implementation of the Cross-Platform Authentication Authorization Provider.

This software implements version 1.0 of the Cross-Platform Authentication Protocol (ETSI TS 103 407).

More information on the EBU Cross-Platform Authentication project.

Prerequisites

Ensure your system has Node.js (v0.10 or later) and NPM installed.

Getting started

$ git clone https://github.com/ebu/cpa-auth-provider.git
$ cd cpa-auth-provider
$ npm install
$ NODE_ENV=development bin/init-db

Run the tests

$ npm test

Configure

The server reads configuration settings from the file config.local.js. An example config for reference is in config.dist.js.

$ cp config.dist.js config.local.js

Edit config.local.js to set the necessary configuration options:

  • Identity provider OAuth 2 client ID, client secret, and callback URL. GitHub and Facebook are supported as identity providers
  • Database connection settings
  • Verification URL at the Authorization Provider, to be displayed to the user
  • Service provider domain names and access tokens

Initialise the database

$ NODE_ENV=development bin/init-db

Start the server

$ bin/server

Specify --help to see available command-line options:

$ bin/server --help

Development

This project includes a Makefile that is used to run various tasks during development. This includes JSHint, for code verification, Istanbul for test coverage, and JSDoc for documentation.

As general-purpose tools, these should be installed globally:

$ sudo npm install -g jshint istanbul jsdoc

To verify the code using JSHint and run the unit tests:

$ make

To verify the code using JSHint:

$ make lint

To run the unit tests:

$ make test

To generate a test coverage report (in the coverage directory);

$ make coverage

Related projects

Contributors

Copyright & license

Copyright (c) 2014-2016, EBU-UER Technology & Innovation

The code is under BSD (3-Clause) License. (see LICENSE.txt)