<div dir="ltr">Hi everybody, <div><br></div><div>I'm working on an IDP v4 that should be able to provide a selection screen for choosing a login method (External or SAML).</div><div><br></div><div>I'm following the instructions reported here</div><div><a href="https://shibboleth.atlassian.net/wiki/spaces/IDP4/pages/1265631610/MultiFactorAuthnConfiguration" target="_blank">https://shibboleth.atlassian.net/wiki/spaces/IDP4/pages/1265631610/MultiFactorAuthnConfiguration</a> to integrate a custom flow in the MFA flow.<br></div><div><br></div><div>I defined a custom flow and a selection screen with two buttons.</div><div>Every button uses a custom event to signal the login method.</div><div><br></div><div>mfa-authn-config.xml:</div><div><br></div><div><util:map id="shibboleth.authn.MFA.TransitionMap"></div><div><br></div><div><entry key=""><br></div><blockquote style="margin:0px 0px 0px 40px;border:none;padding:0px"><div><bean parent="shibboleth.authn.MFA.Transition" p:nextFlow="custom/methodChooser" /></div></blockquote><div></entry><br><entry key="custom/methodChooser"><br>        <bean parent="shibboleth.authn.MFA.Transition"><span class="gmail-Apple-converted-space"> </span><br>            <property name="nextFlowStrategyMap"><br>                <map><br>                    <entry key="chooseExternal" value="authn/External" /><br>                    <entry key="choosePassword" value="authn/Password"/> //it will be replaced by the SAML login flow<br>                </map><br>            </property><br>        </bean><br>    </entry><span class="gmail-Apple-converted-space"> </span><br></util:map><br></div><div><br></div><div>I'm using a simple servlet to provide the External authentication and a HTPasswdCredentialValidator to test the implementation.</div><div><br></div><div>Everything seems to work fine but I still have a couple of doubts about this solution:</div><div>- Is there a better way to provide a login selection method?</div><div>- I noticed that after choosing the password method, the browser back button causes a stale request error (e.g. A problem occurred restoring the flow execution with key 'e1s2').</div><div> I haven't found yet a solution to avoid this error.</div><div><br></div><div>Thank you,</div><div><br></div><div>Cristiano </div></div>