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.
Ensure your system has Node.js (v0.10 or later) and NPM installed.
$ git clone https://github.com/ebu/cpa-auth-provider.git
$ cd cpa-auth-provider
$ npm install
$ NODE_ENV=development bin/init-db
$ npm test
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
$ NODE_ENV=development bin/init-db
$ bin/server
Specify --help
to see available command-line options:
$ bin/server --help
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
- Chris Needham (BBC)
- Michael Barroco (EBU)
- Andy Buckingham (togglebit)
- Matthew Glubb (Kite Development & Consulting)
Copyright (c) 2014-2016, EBU-UER Technology & Innovation
The code is under BSD (3-Clause) License. (see LICENSE.txt)