discoveryFunction selection
Martin Leonhartsberger
m.leonhartsberger at cumulo.at
Tue Aug 15 11:37:37 UTC 2023
Hello,
I would like to adjust the shibboleth.authn.SAML.discoveryFunction depending on an event in the mfa flow.
So the goal is, to select an proxyIDP (there are multiple) depending on rules/events in the mfa flow.
My first idea was, to inject different discovery functions and toggle discoveryRequired or directly set the authentication authority.
Approach (not working, still starts discovery even with set AuthenticationAuthority)
<entry key="authn/Password">
<bean parent="shibboleth.authn.MFA.Transition">
<property name="nextFlowStrategyMap">
<map>
<entry key="methodSAML" value-ref="SAML-idp1" />
</map>
</property>
</bean>
</entry>
</util:map>
<bean id="SAML-idp1" parent="shibboleth.ContextFunctions.Scripted" factory-method="inlineScript">
<constructor-arg>
<value>
<![CDATA[
nextFlow = "authn/SAML";
logger = Java.type("org.slf4j.LoggerFactory").getLogger("net.shibboleth.idp.custom");
authCtx = input.getSubcontext("net.shibboleth.idp.authn.context.AuthenticationContext");
authCtx.setAuthenticatingAuthority("https://upstreamidp.localhost/idp/shibboleth");
logger.info("Upstream: " + authCtx.getAuthenticatingAuthority());
// displays in log the entity that was set the step before, though is not honored.
// discovery is triggered anyway
nextFlow;
]]>
</value>
</constructor-arg>
</bean>
Or is it possible, to access in shibboleth.authn.SAML.discoveryFunction an eventual available eventId from the previous mfa flow?
Thanks for any hints!
Best regards,
Martin
More information about the users
mailing list