*Idpy meeting 23 April 2024*
Attendees: Shayna, Ivan, Hannah
0 - Agenda bash
1 - Project review
a. General -
b. OIDC libraries - https://github.com/IdentityPython (idpy-oidc,
JWTConnect-Python-CryptoJWT, etc)
- Roland has an MR that has been approved.
- https://github.com/IdentityPython/idpy-oidc/pull/99
- Comes with some changes that break certain deployments (core AI
- but has been fixed)
- Move forward and then have new release of idpy-oidc
- There has been some focus on federations and supporting
capabilities of open id federations. Most of the work is in Roland's
personal repo for fedservice.
- https://github.com/rohe/fedservice - Roland is working in a wider
context around wallets, but everything binds together through the
federations.
- Ivan is working with Nicos L to import certain capabilites to
the front end that is being built for the Géant Core AAI platform.
Currently uses idpy-oidc and will now also use fedservice for
federation
capabilities.
- There are a few items that need to be revisited: client
notification methods - private keyjwt and how it is handled internally in
the library; how to keep public keys from the metadata, how to
refresh, how
often - Ivan needs to discuss with Roland - these capabilities
are needed.
c. Satosa - https://github.com/IdentityPython/SATOSA
- Ivan is now getting back to this project. There are outstanding items
pending:
- merged an MR on master that introduces exception cases that have
wrong variable names - error handler is then crashing. Fixes
need to be
done to address this.
- Roland's open PR to fix the dependencies and how they are
checked - https://github.com/IdentityPython/SATOSA/pull/442 -
missing checks of whether idpy-oidc and other libraries are
in dependencies
- Ivan needs to fix these parts and merge, then have a new release
- There is pending work around routing workaround paths -
https://github.com/IdentityPython/SATOSA/pull/451 - instead of
running at example.com, you could have SATOSA running at
example.com/satosa. This is useful not only for deployments that
need it but also for separating out what the paths mean. Then
there can be
separate controllers and handlers for different paths. Looking into
changing the framework. PR needs some work - Kristof B is
aware. There was
a previous PR that was more complex, so this one was created
to specify the
problem in a clearer way and move forward.
- Ali and Hannah's work with the logout is very important.
- https://github.com/IdentityPython/SATOSA/pull/444 - logout from
idp side
- https://github.com/IdentityPython/SATOSA/pull/431 - logout
from service side and propagates to other entities.
- important to decide how to organize keeping state on the
server side. The cookie can not hold any more information.
- Some other issues: How to handle claims for oidc -
https://github.com/IdentityPython/SATOSA/issues/457 - mapping of
what the standard oidc claims should be - including
multi-valued which can
be represented as an array, a space separated string, etc.
What about a
non-standard claim? Certain profiles for EduPerson for example. Map an
internal claim - single value as a string, not a list. There will be
discussion on this. Main idea is to extend internal attributes mapping
file, making a more complex structure which indicates how
these values can
be compared to other values, how many items to exist, what types they
should be, etc.
d. pySAML2 - https://github.com/IdentityPython/pysaml2
- https://github.com/IdentityPython/pysaml2/pull/924
- Main concern - what to do with XMLsec1. Should there be a move to a
different way of encrypting/decrypting/signing/verifying SAML payloads?
- With which algorithms should the payload be signed or encrypted?
Which algorithms do we accept as valid for signatures to
allow decryption?
- Ivan plans to focus on this soon.
- Ivan knows people are waiting on some answers on other issues
and he is trying to get them.
- Ongoing issue: Python and its support for temporary files on the
Windows platform- Ivan has a small patch locally. Another user has a
proposed solution for checking temporary files and deleting
afterward. but
it is not a long-term solution. Ivan would prefer it to be automatic if
possible. Ivan's patch is a workaround. He will post it, but this needs
further discussion. With Linux WSL the temporary file deletion
just works,
but Windows breaks. Few users are affected, but it does come up.
- https://github.com/IdentityPython/pysaml2/pull/951 - bug fix for
domain validation - in practice everyone sets properties in the SAML
response that specify where the response came from as an IP address. This
only affects domain names. User has suggested a fix but it includes the
port. Strictly, the port is not part of the domain. Ivan has made
suggestions on the PR.
e. Any other project (pyFF, djangosaml2, pyMDOC-CBOR, etc)
- There is a new release of the pyMDOC-CBOR library.
- There was a change to support more algorithms used to serialize
payload.
- https://github.com/IdentityPython/pyMDOC-CBOR/pull/6
2 - AOB
- Next meeting May 14 due to Greek holidays.
Dear colleagues,
The InCommon Technical Advisory Committee wants your help bringing a “good
practice” approach to research and education (R&E) identity federation.
Would you please join me on Tuesday, May 7, at 1:00 PM UTC, to plan how we
might accomplish this? We will rough out a regular meeting schedule and
set some immediate goals for the Federation Readiness Check working group
then. (See below/attached for meeting details.)
A significant roadblock for new R&E community members is validating their
identity provider (IdP) or service provider (SP) deployments. Current good
federation practice involves an overwhelming variety of expectations,
standards, entity categories, frameworks, profiles, and more. There exists
no single, comprehensive resource for operational guidance and integration
testing. What documentation or test resources exist are difficult to find
even for experienced IAM professionals, are typically restricted to
federation members, and are focused almost exclusively on IdPs. While the
decentralized nature of R&E federation allows it to scale far beyond
current commercial offerings, that same decentralization makes enacting
meaningful change to IdP, SP, or federation operations seemingly
impossible. A scorecard would be a powerful tool for change.
Federation Readiness Check Working Group membership is open to the public.
Please feel free to forward this invitation to anyone you think would be
interested. Our initial meeting will be held on Tuesday, May 7, 2024, at
1:00 PM UTC via Zoom (
https://researchdata-us.zoom.us/j/81548511164?pwd=Uzh3UTXMdmldUWMK3pPWd85mr…).
We will continue the discussion on the fedtestwg mailing list (
https://lists.incommon.org/sympa/info/fedtestwg) and the
#inc-fed-ready-check-wg Slack channel (https://internet2.slack.com/).
Working group materials will be posted to the Internet2 Confluence wiki (
https://spaces.at.internet2.edu/display/inctac/federation-readiness-check-wg
).
Please note that as an Internet2 Activity, the Internet2 Intellectual
Property Policy applies the working group (
https://internet2.edu/community/about-us/policies/internet2-intellectual-pr…).
Please direct any Internet2 policy questions to legal(a)internet2.edu.
Best wishes,
Matthew
--
Matthew X. Economou, Vice President of Engineering
Research Data and Communication Technologies
P.O. Box 81 Garrett Park, MD 20896 USA
Office: +1 (301) 760-7383 x813
Mobile: +1 (513) 445-2323
Email: meconomou(a)researchdata.us
Hello,
I have two questions, if you don't mind:
1. I have a *LogoutResponse* via redirect (HTTP GET) as follows:
*/logout?SAMLResponse=...&Signature=...&SigAlg=...
*. This type of message originates from EntraID (formerly Azure).
This *SAMLResponse* does not internally contain a signature. How can I
check the signature since *parse_logout_request_response* doesn't accept
SigAlg and Signature parameters, unlike *parse_logout_request*?
2. Secondly, if my *LogoutResponse* is like */logout?SAMLResponse* (without
SigAlg or Signature parameters), how can I be sure that it contains a valid
signature? Can I rely on *want_assertions_or_response_signed*, which is
used in *AuthnResponse*, but not in *LogoutResponse(StatusResponse)*?
Thank you,
Hello idpy contributors!
Roland and I are stepping down from the idpy board, and four other seats are up for election with board members interested in continuing. This leaves us with five seats up for election for the 2024-2026 term.
We have several individuals interested in joining the board and are looking for your feedback.
Incumbent nominees:
• Ivan Kanakarakis (SUNET, lead architect for Satosa, pySAML)
• Chris Whalen (individual contributor)
• Mike Jones (OIDF, author of OIDC and JWT and OAuth)
New nominees:
• Fresia Pérez Arriagada (SUNET)
• Jakob Schlyter (Kirei)
• Warren Anderson (LIGO)
Leif Johansson (SUNET) and Christos Kanellopoulos (GÉANT) are in the middle of their 2023-2025 terms; those seats are up for election next year.
Please go to the following Zoom survey link by 18 March 2024 to place your votes for five (5) board members.
Thanks! Heather
Sorry for the delay.
*Idpy meeting 20 February 2024*
Attendees: Johan W., Johan L., Alex Perez-Mendez, Shayna, Ivan, Roland,
Mikael Frykholm, Björn Mattsson
0 - Agenda bash
1 - Demo
- Roland gave a demo of the wallet ecosystem he has built following the
Italian profile.
- The profile from Italy:
https://italia.github.io/eudi-wallet-it-docs/versione-corrente/en/
- The proposed generalized version (regardless of the country):
https://github.com/WalletInteroperabilityLab/eudi-wif
- We did not record Roland's live demo, but he has recorded a similar
demo at https://youtu.be/pQk0pEzKPQo?si=NR2lk_2ckfQBwZ7H
2 - Project review
a. General -
b. OIDC libraries - https://github.com/IdentityPython (idpy-oidc,
JWTConnect-Python-CryptoJWT, etc)
- Roland has been writing a description of the steps required to stand
up a federation using his software, and how to add another entity to the
federation, different topologies of the federation, and so on. He has a
first cut available.
- Björn Mattsson mentioned that they have been using this document to
try and get a federation up on the SWAMID side (I'm sorry, I missed the
specific project name this was for), building a Docker image to run the
different parts. They will provide feedback to Roland about using it this
way.
- based on federvice repo (https://github.com/rohe/fedservice)
- Can also be used in Core AAI, educational use case
- AARC people are also looking at this to use cross-infra exchange of
tokens. OIDC but using the federations to build trust. A client
can talk to
a resource server from another domain because that server talks to an
issuer that is part of a federated network, which trusts the
issuer of the
client.
c. Satosa - https://github.com/IdentityPython/SATOSA
- Matthew has put up PR -
https://github.com/IdentityPython/SATOSA/pull/454
- github actions added to workflow (continuous integration): clones
the repo, sets up python and anything else needed, and runs
linting with
pre-commit hooks to include flake8
- also runs basic yaml and whitespace cleanup
- developer can install precommit hook - then any got commit
command will do flake8 checks as project has defined
- same checks get run by github actions if developer forgets or
chooses to not install pre-commit
- currently flake8 config is in tox.ini and setup.cfg - that
should be stripped and flake8 config should be put in its own file
- goal: to get everything that was done in travis into github
actions (including syntax checks, style checks using isort and python
black, test phases/pytest, deploy to pypi, etc). Would like
to also add
automated container image updates for SATOSA eventually. No
credentials
need to be hardcoded when interfacing with pypi (when we get to that).
- There should be discussion on whether to merge things in pieces
or in one big PR. It is possible to bypass pre-commit hooks and github
actions will only put a "this doesn't work" badge on commits
that don't the
match flake8 checks, for this particular PR. Next the isort and python
black would probably be best to do in one PR that touches all
files, but
may affect other PRs that are out there (ask developers to rebase?).
d. pySAML2 - https://github.com/IdentityPython/pysaml2
e. Any other project (pyFF, djangosaml2, pyMDOC-CBOR, etc)
2 - AOB