Skip to main content

Federation Feeder

Project description

python SAML metadata aggregator

License Travis Build Coverage Maintainability Format PyPI Version Documentation

This is a SAML metadata aggregator written in python. It is based on the model for metadata exchange by Ian Young: http://iay.org.uk/blog/2008/10/metadata_interc.html

Features

  • Fully customizable processing pipelines in yaml.

  • Easy to retrieve, analyze, transform, sign and publish SAML metadata.

  • Operate in batch or online mode using embedded HTTP server.

  • Provide a full MDX implementation.

  • Make use of PKCS#11 tokens and HSMs for key protection.

  • Fully compatible with thiss.io discovery service.

  • Fully compatible with mdq-browser frontend app.

Dependencies

  • pyXMLSecurity

  • PyKCS11 (optional)

  • pygments

  • gunicorn (for the standalone pyffd server)

  • … cf requirements.txt

More information

Project homepage: https://pyff.io/

News

0.1

Release date: UNRELEASED

0.4

Release date: Tue Jul 10 15:48:07 CEST 2012

  • Schema validation

  • Refactor dynamic loading framework

0.5

Release date: Wed Jul 11 16:31:06 CEST 2012

Because of the way OpenSSL handles self-signed certificates the XML validation extracts the public key from the certificate and uses that instead of the X509 certificate to validate an XML signature. Right now this introduces a dependency on M2Crypto which will be removed in the fugure. Note that ubuntu/debian users should install python-m2crypto instead of installing M2Crypto (http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=637904)

0.6

Release date: Thu Aug 30 08:00:00 CEST 2012

  • XML signing and validation using pyXMLSecurity

  • Support for PKCS#11-based HSMs using pykcs11

We are now using a (limited) pure-python implmementation of xmlsec which makes it easier to sign using HSMs. The only mandatory non-python dependency now is lxml.

0.7

Release date: Fri Sep 7 10:13:33 CEST 2012

  • support breaking out of pipelines using exceptions

  • kill the pipeline if selects picks 0 elements

  • more debug logging

  • more robust handling of zero-length selectors

  • completely remove pyOpenSSL dependency

  • many bugfixes and cleanup

0.8

Release date: Fri Nov 30 09:37:59 CET 2012

  • HTTP-based pyffd with MDX support

  • several bugfixes

  • indexing in MDRepository

  • completely rewritten URL fetcher with monitoring

0.9 and 0.9.1

Release date: Tue Apr 9 18:03:13 CEST 2013

  • Lots of bugfixes

  • pep8 cleanup

  • stability & testcases

0.9.2

  • Release date: Mon Apr 15 13:19:14 CEST 2013*

  • caching in pyffd now works

  • version information on cmdline

  • ‘remove’ merge strategy from Peter S

  • cleanup & bugfixes

0.9.3

  • Release date: Wed May 15 12:09:57 CEST 2013*

  • better discovery UI

0.9.4

  • Release date: Mon Sep 23 14:11:16 CEST 2013*

  • bugfixes, minor UI improvements

  • documentation imporovements

1.0.0

  • Release date: Fre 14 jun 2019 11:42:56 CEST

  • Major changes to the backend subsystem

  • New redis+whoos-based backend

  • Standalone API with WSGI-support based on pyramid

  • apscheduler used for backround tasks including resource fetch

1.0.1 — * Release date: tis 18 jun 2019 12:13:41 CEST * A samldiff tool * Minor fixes to align requirements for docker package

1.1.0 — * Release date: fre 12 jul 2019 10:27:05 CEST * simplify resource management and introduce new thread-based fetcher architecture * new icon fetching infrastructure * re-introduce predictive load order * multiple bug fixes and cleanup * documentation restructure and rewrite

1.1.1 — * Release date: tor 18 jul 2019 16:05:54 CEST * Fix bug affecting entityIDs with querystring components thx to Maja Wolniewicz <mgw@umk.pl>

1.1.2 — * Release date: ons 19 feb 2020 14:35:45 CET * Bugfixes * Documentation updates

1.1.3 — * Release date: ons 16 sep 2020 14:21:20 CEST * Limited support for i18n in JSON export - alternative and primary language choices * Bugfixes related to mime-type for metadata

1.1.4 — * Release date: tor 17 sep 2020 00:50:42 CEST * Bugfixes for language support * Support for exposing multiple language tags in discojson

1.1.5 — * Release date: tis 1 dec 2020 14:19:18 CET * Remove dependency on minify

1.2.0 & 2.0.0 — * Release date: tor 1 apr 2021 21:15:14 CEST * 1.2.0 contains several bugfixes from 1.1.5 * 2.0.0 drops all frontend components and returns pyFFd to an API-only service

2.1.0 — * Release date: ons 1 nov 2023 10:17:10 CET * Support for metadata trust extensions * Multiple bug-fixes * Coverted to pydantic 2.4.x * More typing

2.1.1

  • Fix MANIFEST issue that prevented install from sdist

2.1.2

  • Documentation updates related to sphinx

  • Clarify semantics of trust info extension metadata

  • Fix random seeding

  • Fix for data handling related to non-Z timezones in metadata

Supported by

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