Skip to content

italia/spid-cie-oidc-php

Repository files navigation

SPID/CIE OIDC Federation Relying Party for PHP

spid-cie-oidc-php CI badge Apache license Get invited Join the #spid openid

The SPID/CIE OIDC Federation Relying Party for PHP

Summary

What is SPID/CIE OIDC PHP

SPID/CIE OIDC PHP is:

  • A PHP class library that helps to develop a relying party for SPID/CIE
    Are you a Developer and you want to make your own relying party or a plugin for your software?
    Read the Technical documentation.

  • A standalone proxy relying party for SPID/CIE
    You can simply setup the proxy project and configure the URL where to receive users's attributes. You can also choice how the attributes will be returned from the proxy, such as plain values, signed or encrypted.
    Read How to use as a proxy.

  • A generic OIDC to SPID/CIE OIDC relying party gateway
    Can your application connect to a standard OIDC Provider, but it doesn't have extended functionalities required by the SPID/CIE OIDC Federation? No problem, you can configure your client as a relying party to SPID/CIE OIDC PHP Provider and it will make the rest.
    Read How to use as a generic OIDC Provider.

Features

  • Interactive setup
  • Wizard for certificates generation
  • Bootstrap template
  • Hooks plugins
  • Simple API
  • Proxy functions
  • Ready to use

Setup

git clone https://github.com/italia/spid-cie-oidc-php.git
composer install

After setup go to /service_name/oidc/rp/authz where service_name is the service name configured during setup.

Example projects

Start the basic example project is as simple as run:

docker pull linfaservice/spid-cie-oidc-php
docker run -it -p 8002:80 -v $(pwd)/config:/var/www/spid-cie-oidc-php/config linfaservice/spid-cie-oidc-php

On the first run the setup will ask for configurations. All configurations will be saved in the ./config directory.

The repository also provides example projects to set up a complete SPID/CIE OIDC Federation.

Read how to set up a federation with the WordPress Example Project.
Read how to set up a federation with the Drupal Example Project.

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.

Contribute as developer

Please open your Pull Requests on the dev branch. Please consider the following branches:

  • main: where we merge the code before tag a new stable release.
  • dev: where we push our code during development.
  • other-custom-name: where a new feature/contribution/bugfix will be handled, revisioned and then merged to dev branch.

In this project we adopt Semver and Conventional commits specifications.

Useful links

License and Authors

This software is released under the Apache 2 License by: