Hi Scott,
On 3 Apr 2019, at 18:26, Scott Koranda wrote:
Hi,
Right now the saml2.py in src/satosa/backends/ has
def disco_query(self):
"""
Makes a request to the discovery server
:type context: satosa.context.Context
:type internal_req: satosa.internal.InternalData
:rtype: satosa.response.SeeOther
:param context: The current context
:param internal_req: The request
:return: Response
"""
return_url = self.sp.config.getattr("endpoints",
"sp")["discovery_response"][0][0]
loc = self.sp.create_discovery_service_request(self.discosrv,
self.sp.config.entityid, **{"return": return_url})
return SeeOther(loc)
Essentially this restricts the flow to one and only one IdP discovery
service that is configured statically.
I propose that this method be enhanced so that it can inspect the
context
and internal data and if it finds a URL for the discovery service to
use
it overrides what is in the configuration.
Then one can configure a request microservice that uses some logic to
set
the URL for the discovery service, such as which SP the authentication
request came from.
This is something that we also need, but we did not manage to put it in
our roadmap yet.
Since the comment for the method already includes
a mention of the
context
and internal data, I suspect this functionality was designed but never
implemented.
Any objections to me implementing it?
Please go for it and I would be happy to provide feedback/testing