Within IdentityPython we have agreed to support the Python version
that comes with the stable version of Debian. The current stable
distribution of Debian is version 11, codenamed bullseye. It was
initially released as version 11.0 on August 14th, 2021 and its latest
update, version 11.6, was released on December 17th, 2022.
Debian stable supports Python 3.9, so I am looking towards bumping the
minimum supported Python version to 3.9, for PySAML2 and then for
SaToSa. Once this is done, we will be adding typing information to the
codebases to ease contributions from other developers and start
separating the public APIs from internal code. This will aid in
documenting what is there, refactoring the code and cleaning up old
and unused code.
The plan is to create a new release with the currently merged changes.
Then, have a separate release just bumping the minimum Python version
required by the package.
Expect these new releases to happen within the next week.
Ivan Kanakarakis - sunet.se
Matthew, Roland, Johan, Ivan, Heather, Giuseppe
0 - Agenda bash
• py11 - who is maintaining this?
1 - Administrivia
a. Board slate for 2023
• Heather Flanagan (Spherical Cow Group)
• Leif Johansson (SUNET)
• Christos Kanellopoulos (GÉANT)
2 - Project review
• python minimal version update; first with pySAML2 (see notes below) and later to Satosa and other libraries
b. OIDC - https://github.com/IdentityPython (JWTConnect-Python-OidcRP, JWTConnect-Python-CryptoJWT, etc)
• Roland's video is now on YouTube. While creating the session, found things to change in the code to be more consistent. That's been complete and the OIDC federation implementation has been updated as well. Question now is what to do with the older PRs from eduTEAMS. Should those PRs be applied first, then Roland's changes, or vice versa? When the work is complete, then Roland will not do any new development (bug fixes only) unless new functionality is absolutely required. Instead will focus on writing documentation for other core developers (not users)
• PR for client credentials - nice to have, not necessary
• PR for revocation endpoint - that is deployed and running in eduTEAMS; it should come with tests and ok to merge
• PR for various changes - fixing or changing some things that came when eduTEAMS migrated to idpy oidc; changes that were never merged on oidc op.
c. Satosa - https://github.com/IdentityPython/SATOSA
One new issue reported - desire for support for more client authentication methods. Don't want to do this on pyop; should try to push them to use the new front ends.
Still wants to move Satosa to using poetry, but hasn't had time yet.
d. pySAML2 - https://github.com/IdentityPython/pysaml2
• bumping the minimum supported python version to 3.9 (as supported by latest stable Debian) - some of the updates to various libraries would be much nicer if we stick with a more recent version of python; would be able to use types (among other things). Primary cause for using types is support for better documentation. There are tools that will allow types to be stripped from the code if people in older environments need that. idpy 3.7 is the oldest supported python release, but support for that ends in June.
• Ivan to send a note to the mailing list letting people know about this change. Bumping the python version will be its own release for pySAML2, then another release adding support for mypy, then a separate release adding support for types.
• start adding typing support (and use mypy) - see python 3.9 discussion. Once you have enough info through the types, it is easier to refactor the code because you know what's there, what cases need to be covered.
• this is done in the context of Johan and Fredrik working on adding support for the Anonymous/Pseudonymous/Personalized entity categories
e. Any other project (pyFF, djangosaml2, etc)
djangosaml2 - new release out; there was a regression from the previous release.
pyFF - Matthew is planning to develop a docker official image for pyFF sometime this spring, similar to what he's developed for Satosa. What's on dockerhub now is old and not obviously maintained. Nicole Roy will also be part of this work.
• eduTEAMS uses pyFF; they have forked the image and updated it with minor modifications. The problem with pyFF is that the bigger the metadata you give it, the more memory it requires. Could look into breaking the operation into chunks. The only reason the whole payload is required is to calculate the final signature, but that can be done incrementally. Unclear if this change would break anything. eduTEAMS (Ivan) has investigating this on the list, but it's not a high priority. This would be an internal change.
• SUNET has also requested some changes and have created a branch with improvements. Need to ask Leif about this.
py11 - ok for Johan to be the maintainer and merge his PR? Yes.
3 - Documentation
Doc writing guidance:
• https://ieeexplore.ieee.org/document/625327 (pay walled)
Should we post a survey to collect information on the developer's experience to help prioritize/guide our documentation? When a developer lands on the idpy pages, do they have enough information to start contributing and engaging with the community? There are different types of developers - developers who are trying to deploy it, developers who want to add functionality, developers who are trying to find an answer to a specific question.
• Roland is focusing on writing documentation for developers who have a specific problem with the current OIDC libraries
• Heather and Ivan to review https://github.com/IdentityPython/Governance/blob/master/idpy-projects.md to see if it needs to be updated (see section on Technical quality)
Hello idpy developers!
It’s that time again! Time to accept nominations for the Board slate. Three of the current board members are at the end of their term; all three have agreed to continue on as Board members:
• Heather Flanagan (Spherical Cow Group)
• Leif Johansson (SUNET)
• Christos Kanellopoulos (GÉANT)
As a reminder regarding board seats:
"The IdentityPython Board has a minimum of three, and a maximum of seven natural persons. The founding IdentityPython Board has appointed a number of its constituting Directors to serve a half (12 month) term, and the remainder to serve a regular (24 month) term. Subsequent Directors are elected by the IdentityPython Board to regular 24-month terms according to the procedure set out in these Statutes. The founding Board will select a nominating committee of active developers and other contributors to identify candidates for ongoing Board membership. Directors are permitted to seek office for multiple terms, however, when running against other candidates the amount of terms they have consecutively served is deducted from the votes cast in their favour. This provides a balance between continuity, equal opportunities and renewal of qualities and competences."
(From the Identity Python statutes, officially published with The Commons Conservancy: https://dracc.commonsconservancy.org/0024/)
If you have interest in serving on the board, please let Ivan or I know. Nominations are open until 15 January 2023. If no new nominations come in, the board will re-appoint the current members.
A new year means a new calendar series for the idpy developers calls! For several of the regular attendees, I’ve added you directly to the calendar invitation. For others, if you would prefer to add the call directly to your calendar, you should be able to use this link to add the meeting.
Our next call will be next Tuesday, 17 January 2023, at 14:00 UTC (it’s pinned to 6am US Pacific time).
Please let me know if you have any questions, and I will see you next week!
The idpy developers call this Tuesday, 13 December is cancelled. But don’t worry, you can get your craving for idpy information satisfied through Roland’s seminar on Wednesday, 14 December!
I plan to hold a seminar on December 14th this year between 17:00-19:00 CET, on Zoom (the link will be published later).
The outline of the seminar:
"If you ever have wondered why a software package looks like it does now is your chance to get to know all about one package. In this seminar I will describe the underlying architecture of IdpyOIDC, a software implementation of all things OpenID Connect and OAuth2. The intended audience is both implementers and people the are using or plan to use IdpyOIDC in a project."
The link is available on the idpy slack channel. If you are not on that channel and would like to attend the seminar, let me know and I’ll make sure to send you the zoom link.
While our next call is scheduled for 20 December 2022, it’s highly likely we’ll cancel that for the holidays. I will send out an announcement and let you know closer to the date.
Sent from my iPad
December 14th 17:00-19:00 CET I will hold a seminar:
"If you ever have wondered why a software package looks like it does now is your chance to get to know all about one package. In this seminar I will describe the underlying architecture of IdpyOIDC, a software implementation of all things OpenID Connect and OAuth2. The intended audience is both implementers and people the are using or plan to use IdpyOIDC in a project.”
The link to the Zoom room is https://sunet.zoom.us/j/63605279502
Roland, Ivan, Matthew, Heathter
1 - Administrivia
a. Website update - need to mention all the idpy OIDC projects, djangosaml2; Heather to check GitHub to see what else is missing from the website
1 - GitHub review
a. OIDC - https://github.com/IdentityPython (JWTConnect-Python-OidcRP, JWTConnect-Python-CryptoJWT, etc)
Roland has updated the federation libraries to match the spec. Will be running an interop event in the next few weeks
Working on a seminar re: the design architecture for the OIDC projects, but that will require some updates to the code to match the architecture he originally designed. The project has strayed a bit from the original design (which is an expected evolution). Roland will announce this on the idpy slack channel. Expect at least two hours. There will be a slide deck and/or notebook that will also be published.
grantmanager has been updated as per feedback from Giuseppe
b. Satosa - https://github.com/IdentityPython/SATOSA
Matthew haas aa reference implementation of Satosa in AWS. Working on getting approvals from his employer to publish it. Will be doing Internet2 TechEx ACAMP sessions on the docker image and how to use it to get started. It's similar tot the Shibboleth reference implementation on AWS. This is intended to show a quick start to Satosa. Will want to add on proper validation testing (unsure how to do that now).
c. pySAML2 - https://github.com/IdentityPython/pysaml2
Planning to make a release (see updated document on how to publish a release). Will also name it alpha or beta to see how that works.
One big MR (https://github.com/IdentityPython/pysaml2/pull/877 - reformatting code, removed older python code, fixes as part of flake). Once this is done, will push the new docs out to readthedocs.
• pyupgrade to fix "legacy Pythonisms"
• autoflake to remove unused imports (either left behind by pyupgrade, or otherwise unused)
• flynt, to fix non-f-string string formatting
• flynt -tc, to fix string concatenation too (which is more intrusive and could be unsafe, but tests should catch things)
More changes in the queue:
• https://github.com/IdentityPython/pysaml2/pull/878 - response name id instead of response assertion name id; similar to issue 866. What's proposed directly in this PR isn't ideal for a broader audience; choices need to be explicit and under the implementer's control
• https://github.com/IdentityPython/pysaml2/pull/866 - changing the default behavior and requiring signed responses by default; there is a suggestion to not allow unsigned responses at all, but that makes testing harder. There's also a lot of broken stuff out there, so being able to turn signing off selectively is aa good debugging tool.
• https://github.com/IdentityPython/pysaml2/issues/879 - OpenSSL library updates (not related to the recent bug). Ivan wants to remove dependency on this library.
Will be diving into some of the older PRs after this new release.