Hi Scott,
For example, the second element in the list is
['eppn', 'name_id:urn:oasis:names:tc:SAML:2.0:nameid-format:persistent']
which means that the combination of eduPersonPrincipalName and SAML2
persistent NameID would be the identifier.
alright, this makes much more sense now.
that's a
nice idea, delegating errors on a different service, as
satosa is not very flexible as to what to present in case of an error
I think it is the best approach and will allow SATOSA to focus on doing
fewer things well.
But it does suggest we will want some type of "standard" for
communicating the errors from SATOSA to the other service.
Right now I am just redirecting the browser to the error service with a
query string that includes the SP and IdP entityIDs so we can track
which SPs users were trying to access and which IdPs did not give us
anything we can use as an identifier.
I am not particularly happy with that either but I need something right
now and hope that some type of "standard" could evolve.
yes, I agree - this needs some thinking.
I am wondering if any other project might have use for
the microservice?
Any other thoughts?
I do not really have a use case in my mind, but the way I see what
you're trying to do is, as a fallback mechanism for an attribute to
get a value.
I don't think of it that way.
I think of it as the only approach to be able to uniquely identify a
user for a VO that federates widely across eduGAIN where the practice of
what attributes an IdP will assert varies across the entire spectrum.
Let me put it a different way to the list: if your SATOSA proxy is
federating with IdPs from InCommon, most EU countries, Japan, Australia,
Chile, and India, how do you make sure that you uniquely identify each
user so that a simple SP behind the proxy can just look at $REMOTE_USER?
Given the definition of the R&S entity category and that IdPs do
re-assign ePPN, as well as the realities of IdPs only sending a targeted
identifier sometimes, I don't see any way to do this other than use the
ordered list I am proposing?
alright, I can see the reasoning, but the mechanism is a fallback list
Attribute
mapping does that but with less flexibility (ie
no special conditions with name_id, no error handling etc). I was
thinking if this can be implemented using the AttributeProcessor
service that was merged lately (but I need to understand the
requirements first).
Thanks. I will look at that in more detail.
I tried that now that I get the bigger picture and this is the
processor I came up with:
https://gist.github.com/c00kiemon5ter/4f0a46d750b3b612373d3f97b1024547
Feel free to use/copy whatever you like.
Cheers,
--
Ivan Kanakarakis