pysaml2
pysaml2 copied to clipboard
Squash internal attribute representation
All Submissions:
- [x] Have you checked to ensure there aren't other open Pull Requests for the same update/change?
- [x] Have you added an explanation of what problem you are trying to solve with this PR?
- [x] Have you added information on what your changes do and why you chose this as your solution?
- [ ] Have you written new tests for your changes?
- [ ] Does your submission pass tests?
- [ ] This project follows PEP8 style guide. Have you run your code against the 'flake8' linter?
Explanation
We discussed the removal of internal representation mapping in pysaml2 in VC. This is a minimal PR that implements full transparant SAML attribute transportation through pysaml/satosa stack. This means external attributes should now be configured in their original SAML rerpesentation in internal_attributes.yaml instead of internal(short)Name, also known as the .to dict in attributemaps.
The PR is intended as a discussion start and points to the places where pysaml2 touches external to internal mapping and back.
I went through this and while I think it is the right thing, it breaks lots of existing use cases. I will however push this forward but try to make the transition smoother - that is add lots of deprecation messages to urge people to use the attribute names instead of attribute friendly-names. I am also thinking that I would write some things differently, but the idea is correct. In particular, I would like to find a way to normalize the exception of eduPersonTargetedID; for which I don't think we care if it has that specific attribute name (or friendly-name), but whether that attribute has nested elements (in this case the NameID node).