Skip to main content

Python toolchain for building an OpenID4VP RP with a SATOSA backend compliant to the Italian Wallet Solution.

Project description

eudi-wallet-it-python

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

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

All the components listed below are tailored to this scope.

The toolchain contains the following components:

Name Description
jwk JSON Web Key (JWK) according to RFC7517.
jwt Signed and encrypted JSON Web Token (JWT) according to RFC7519, RFC7515 and RFC7516
tools.qrcode QRCodes creation
oauth2.dpop Tools for issuing and parsing DPoP artifacts, according to OAuth 2.0 Demonstrating Proof-of-Possession at the Application Layer (DPoP)
openid4vp.federation Trust evaluation mechanisms, according to OpenID Connect Federation 1.0
satosa.openid4vp.backend SATOSA Relying Party backend, according to OpenID for Verifiable Presentations

Setup

Install enviroment and dependencies

sudo apt install python3-dev python3-pip git
sudo python3 -m pip install --upgrade pip
sudo python3 -m 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 pyeudiw or pip install pyeudiw[satosa] for the satosa backend.

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

Please read this README to get a fully working demo setup.

Satosa configuration

To install the OpenID4VP SATOSA backend you just need to:

  1. install this package
  2. copy and customize example/pyeudiw_backend.yml
  3. include the backend configuration in your satosa configuration
  4. start Satosa.

Please read README-SATOSA.md for details.

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 Murru
  • Salvatore Laiso
  • Nicola Saitto

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

pyeudiw-0.4.0.tar.gz (66.6 kB view details)

Uploaded Source

Built Distribution

pyeudiw-0.4.0-py3-none-any.whl (89.9 kB view details)

Uploaded Python 3

File details

Details for the file pyeudiw-0.4.0.tar.gz.

File metadata

  • Download URL: pyeudiw-0.4.0.tar.gz
  • Upload date:
  • Size: 66.6 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.2 CPython/3.9.17

File hashes

Hashes for pyeudiw-0.4.0.tar.gz
Algorithm Hash digest
SHA256 3fecbbb2c27654887a8f4097f4a42e078be965fdf883f331c151f06808ef3d1c
MD5 90d7022d296520a48593965ae8129e5b
BLAKE2b-256 e02aeb93c5e398237e7245ababc4ff6d10f68556a47b517ece1ef45d29f5340b

See more details on using hashes here.

File details

Details for the file pyeudiw-0.4.0-py3-none-any.whl.

File metadata

  • Download URL: pyeudiw-0.4.0-py3-none-any.whl
  • Upload date:
  • Size: 89.9 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.2 CPython/3.9.17

File hashes

Hashes for pyeudiw-0.4.0-py3-none-any.whl
Algorithm Hash digest
SHA256 ae5739bbcfc2f7c4d129adb54098f9d58c9b66c62082f39d3587c165a7cbd1cb
MD5 6378b211b83b1ed8fbcad578bc4bea3e
BLAKE2b-256 bd01e4de4c9348d1eb5653a4be935b41e78688b73dc3eb3911cb9d6348bdab75

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page