Cross-Platform Authentication - Authorization Provider
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
Run the tests
$ npm test
The server reads configuration settings from the file
An example config for reference is in
$ cp config.dist.js config.local.js
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
--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:
To verify the code using JSHint:
$ make lint
To run the unit tests:
$ make test
To generate a test coverage report (in the
$ make coverage
- Chris Needham (BBC)
- Michael Barroco (EBU)
- Andy Buckingham (togglebit)
- Matthew Glubb (Kite Development & Consulting)
Copyright & license
Copyright (c) 2014-2016, EBU-UER Technology & Innovation
The code is under BSD (3-Clause) License. (see LICENSE.txt)