The SPID/CIE OIDC Federation Relying Party for PHP

Overview

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:

You might also like...
A PHP library for the Campaign Monitor API

createsend A PHP library which implements the complete functionality of the Campaign Monitor API. Installation Composer If you use Composer, you can r

PHP 5.3+ library which helps you to interact with the DigitalOcean API

DigitalOcean The version 2 of the API will be available soon ! Please visit DigitalOceanV2 and contribute :) This PHP 5.3+ library helps you to intera

A versatile PHP Library for Google PageSpeed Insights

PhpInsights An easy-to-use API Wrapper for Googles PageSpeed Insights. The JSON response is mapped to objects for an headache-free usage. Installation

PHP library for the GitHub API v3

GitHub API v3 - PHP Library Currently under construction. Overview Provides access to GitHub API v3 via an Object Oriented PHP library. The goal of th

Twitter REST API for PHP 5.3+

README The Wid'op Twitter REST library is a modern PHP 5.3+ API allowing you to easily interact with Twitter 1.1. In order to sign your request with t

A PHP Stream wrapper for Amazon S3

S3StreamWrapper A simple stream wrapper for Amazon S3. Example ?php use S3StreamWrapper\S3StreamWrapper; S3StreamWrapper::register(); $options = a

PHP library to use IOTA REST API to help node management and tangle queries

iota.php About PHP library to use IOTA REST API to help node management and tangle queries. Please be aware that this library is in an early developme

A simple Object Oriented PHP Client for Termii SMS API

Termii Client A simple Object Oriented PHP Client for Termii SMS API. Uses Termii API. Requirements PHP = 7.2 Guzzlehttp ~6|~7 Installation Via Compo

PHP package to manage google-api interactions

Google-api-client PHP package to manage google-api interactions Supports: Google Drive API Google Spreadsheet API Installation composer require obrio-

Comments
  • [Doc] Document how to run/build the Docker image in the docker compose of a example Federation

    [Doc] Document how to run/build the Docker image in the docker compose of a example Federation

    [Doc] Document how to run/build the Docker image in the docker compose of a example Federation

    Following this example https://github.com/italia/spid-cie-oidc-django#docker-compose

    all the example SPID/CIE RP projects must be configurable, runnable and usable in the docker-compose of the example federation. Please provide a Dockerfile, and push the docker image to dockerhub or any other public repository of docker image, with instruction about how to build/pull it and how to configure it in the example federation compose file.

    documentation enhancement 
    opened by peppelinux 1
  • Setup

    Setup

    Ciao,

    forse mi è sfuggito qualcosa, ma non ho trovato documentazione a riguardo.

    Quando eseguo composer install mi chiede diversi parametri e non sono sicuro come compilarli:

    Nello specifico:

    authority_hint con valore di default http://trust-anchor.org:8000/

    Su questo non ho trovato informazioni neanche sulle linee guida.

    redirect_uri

    Ho lasciato quello proposto (in base al nome che ho dato all'enpoint del relying party):

    /spid_openid/test.php

    Forse dipende dal fatto di non avere compilato bene i parametri ma, quando cerco di andare su /spid_openid/oidc/rp/authz come descritto sulla guida va a cercare un file sqlite che non c'è:

    ../data/store-rp.sqlite

    Unable to open database: bad parameter or other API misuse [C:\Sviluppo\QUESTIT\spid-cie-oidc-php-main\lib\OIDC\RP\Database.php:45]

    opened by fredericks 8
  • missing jwks_uri support

    missing jwks_uri support

    https://github.com/italia/spid-cie-oidc-php/blob/main/lib/Federation/EntityStatement.php#L88

    what's happen if a metadata has a jwks_uri claim instead of jwks?

    enhancement 
    opened by peppelinux 3
  • Please remove constant from the code

    Please remove constant from the code

    here: https://github.com/italia/spid-cie-oidc-php/blob/main/www/index.php#L54

    we need backup values but all these params must be moved to a general config file

    opened by peppelinux 2
Releases(v0.3.0)
  • v0.3.0(Apr 11, 2022)

Owner
Developers Italia
Open source code and developers community of the Italian government
Developers Italia
Lightweight PHP library for WhatsApp API to send the whatsapp messages in PHP provided by ultramsg.com

Ultramsg.com WhatsApp API PHP SDK Lightweight PHP library for WhatsApp API to send the whatsappp messages in PHP provided by Ultramsg.com Installation

Ultramsg 117 Dec 26, 2022
Google-api-php-client - A PHP client library for accessing Google APIs

Google APIs Client Library for PHP Reference Docs https://googleapis.github.io/google-api-php-client/main/ License Apache 2.0 The Google API Client Li

Google APIs 8.4k Dec 30, 2022
Wise-php - This library is written to accommodate the wise API's use in php projects With Wise

Wise-php - This library is written to accommodate the wise API's use in php projects With Wise you can automate payments, connect your business tools, and create ways to manage your finances. You can also power your cross-border and domestic payouts.

Albert Xhani 15 Nov 17, 2022
It's a PHP Application to simplify working with Google Sheets SDK for php.

About GoogleSheetsPHP It's a PHP Application to simplify working with Google Sheets SDK for php. Note: i used Slim 3 to construct the application but

Sami Alateya 5 Dec 20, 2022
Official repository of the AWS SDK for PHP (@awsforphp)

AWS SDK for PHP - Version 3 The AWS SDK for PHP makes it easy for developers to access Amazon Web Services in their PHP code, and build robust applica

Amazon Web Services 5.7k Jan 1, 2023
A framework agnostic PHP library to build chat bots

BotMan If you want to learn how to create reusable PHP packages yourself, take a look at my upcoming PHP Package Development video course. About BotMa

BotMan 5.8k Jan 3, 2023
PHP library for the Stripe API.

Stripe PHP bindings The Stripe PHP library provides convenient access to the Stripe API from applications written in the PHP language. It includes a p

Stripe 3.3k Jan 5, 2023
A simple PHP GitHub API client, Object Oriented, tested and documented.

PHP GitHub API A simple Object Oriented wrapper for GitHub API, written with PHP. Uses GitHub API v3 & supports GitHub API v4. The object API (v3) is

KNP Labs 2k Jan 7, 2023
A PHP library for communicating with the Twilio REST API and generating TwiML.

twilio-php The default branch name for this repository has been changed to main as of 07/27/2020. Documentation The documentation for the Twilio API c

Twilio 1.4k Jan 2, 2023
Mailgun's Official SDK for PHP

Mailgun PHP client This is the Mailgun PHP SDK. This SDK contains methods for easily interacting with the Mailgun API. Below are examples to get you s

Mailgun Team 1k Dec 23, 2022