Skip to content

Python toolchain for building an OpenID4VP and SATOSA backend based on the Italian Wallet Solution

License

Notifications You must be signed in to change notification settings

MurruAlessio/eudi-wallet-it-python

 
 

Repository files navigation

eudi-wallet-it-python

CI build Python version py-versions GitHub issues Get invited Join the #spid openid

EUDI Wallet Python toolchain is a suite of Python libraries designed to make it easy the implementation of an EUDI Wallet Relying Party according to the Italian specification.

Please note: the scope of this project is giving tools and helpers to build a EUDI Wallet compliant to the national specs. All the components listed below are tailored to this scope.

The toolchain contains the following components:

Name Description
tools.jwk Creation of JSON Web Key (JWK) according to RFC7517.
tools.jwt Creation of signed or encrypted JSON Web Token (JWT) according to RFC7519, RFC7515 and RFC7516
tools.ui.qrcode Creation of QRCodes
oauth2.dpop Tools for issuing and parsing DPoP artifacts, according to OAuth 2.0 Demonstrating Proof-of-Possession at the Application Layer (DPoP)
oauth2.par Tools for issuing and parsing Pushed Authorization Requests, according to OAuth 2.0 Pushed Authorization Requests
openid4vp.request Tools for issuing OpenID4VP requests objects
openid4vp.redirect Tools for parsing OpenID4VP responses
openid4vp.federation OpenID Connect Federation Wallet Relying Party Entities and Trust Mechanisms
dif.presentation_exchange DiF Presentation Exchange 2.0
satosa.openid4vp.backend SATOSA Openid4VP Relying Party backend

Setup

Install enviroment and dependencies

apt install python3-dev python3-pip git
python3 -m pip install --upgrade pip
sudo pip install virtualenv

Activate the environment. It's optional and up to you if you want to install in a separate env or system wide

virtualenv -p python3 env
source env/bin/activate

Install using pip

pip install eudi-wallet-python

Install using github

pip install git+https://github.com/italia/eudi-wallet-it-python

Example project

The example project is a docker-compose that runs a demo composed by the following component:

  • Wordpress with SAML2 support and Bootstrap Italia template preregistered to the IAM Proxy.
  • Satosa-Saml2Spid IAM Proxy with a preconfigured OpenID4VP backend

Satosa configuration

See README-SATOSA.md.

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 found 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.

Authors

  • Giuseppe De Marco
  • Pasquale De Rose
  • Alessio Amurri
  • Nicola ...
  • ...

About

Python toolchain for building an OpenID4VP and SATOSA backend based on the Italian Wallet Solution

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • Python 59.1%
  • Shell 40.9%