italia / spid-cie-oidc-nodejs

The SPID/CIE OIDC Federation for Node.js
Apache License 2.0
11 stars 3 forks source link

SPID/CIE OIDC Federation, for Node.js

npm Relying Party Test Node.js CI Test Coverage Get invited Join the #spid openid

SPID/CIE OIDC Federation is a suite of Node.js libraries and example projects designed to ease the creation of an Openid Connect Federation.

⚠️ This project is a work-in-progress. Currently only the Relying Party has been completed.

👀 Watch this repository over GitHub to stay informed.

Library Status
OpenID Connect Trust Anchor In roadmap
OpenID Connect Identity Provider In roadmap
OpenID Connect Relying Party Ready

preview

Packages

[SPID/CIE OIDC Federation Relying Party (spid-cie-oidc)

A Node.js library that exposes utility functions to configure your web-application endpoints in order to support the SPID/CIE authentication over the OpenID Federation Authentication protocol.

Example projects

Example Express application (and React)

An example full web server built with Express v4 with the Relying Party library manually integrated (Passport or similar facilities have not been used).

The user-facing application is built with React v17, scaffolded with Create React App v5.

Useful links

Contribute

Your contribution is welcome, no question is useless and no answer is obvious, we need you.

Contribute as end user

Please open an issue if you've discoveerd a bug or if you want to ask some features.

Implementation Notes

The jose library is used fro JWT encryption and signature related operations.

This project proposes an implementation of the italian OIDC Federation profile with automatic_client_registration and the adoption of the trust marks as mandatory.

If you're looking for a fully compliant implementation of OIDC Federation 1.0, with a full support of explicit client registration, please look at idpy's fedservice.

License and Authors

This software is released under the Apache 2 License by:

Notes

Npm package publishing

A github action is configured here to publish the package automatically.

To publish a new version of the package create a new release here.

To change npmjs secret (article).