<div dir="ltr"><div class="" style="margin:0px;padding:0px"><p style="margin:0px;padding:0px"><font color="#333333" face="Arial, sans-serif"><span style="font-size:14px;line-height:22.2222px">Hello group,</span></font></p><p style="margin:0px;padding:0px"><font color="#333333" face="Arial, sans-serif"><span style="font-size:14px;line-height:22.2222px"><br></span></font></p><p style="margin:0px;padding:0px"><font color="#333333" face="Arial, sans-serif"><span style="font-size:14px;line-height:22.2222px">this is my first post on this mailinglist and I want to say thank you for this awesome project!</span></font></p><p style="margin:0px;padding:0px"><font color="#333333" face="Arial, sans-serif"><span style="font-size:14px;line-height:22.2222px">I had a look at many IDM / SSO solutions before and Keycloak provided the best out-of-the box </span></font></p><p style="margin:0px;padding:0px"><font color="#333333" face="Arial, sans-serif"><span style="font-size:14px;line-height:22.2222px">experience so far!</span></font></p><p style="margin:0px;padding:0px"><font color="#333333" face="Arial, sans-serif"><span style="font-size:14px;line-height:22.2222px"><br></span></font></p><p style="margin:0px;padding:0px"><font color="#333333" face="Arial, sans-serif"><span style="font-size:14px;line-height:22.2222px">I posted the following in the JIRA initially but Stian Thorgersen asked me to post this</span></font></p><p style="margin:0px;padding:0px"><font color="#333333" face="Arial, sans-serif"><span style="font-size:14px;line-height:22.2222px">on the mailing list as well.</span></font></p><p style="margin:0px;padding:0px"><font color="#333333" face="Arial, sans-serif"><span style="font-size:14px;line-height:22.2222px"><br></span></font></p><p style="margin:0px;padding:0px"><font color="#333333" face="Arial, sans-serif"><span style="font-size:14px;line-height:22.2222px">Scenario:</span></font></p><p style="margin:0px;padding:0px"><font color="#333333" face="Arial, sans-serif"><span style="font-size:14px;line-height:22.2222px">Support for conditional AuthenticationFlowExecution.</span></font></p><p style="margin:0px;padding:0px"><font color="#333333" face="Arial, sans-serif"><span style="font-size:14px;line-height:22.2222px"><br></span></font></p><p style="margin:0px;padding:0px"><font color="#333333" face="Arial, sans-serif"><span style="font-size:14px;line-height:22.2222px">Often some authentication flow steps should only be executed under certain conditions,</span></font></p><p style="margin:0px;padding:0px"><font color="#333333" face="Arial, sans-serif"><span style="font-size:14px;line-height:22.2222px">e.g. somtimes a TOTP based auth step is only required of requests come with a </span></font></p><p style="margin:0px;padding:0px"><font color="#333333" face="Arial, sans-serif"><span style="font-size:14px;line-height:22.2222px">certain request header value.</span></font></p><p style="margin:0px;padding:0px"><font color="#333333" face="Arial, sans-serif"><span style="font-size:14px;line-height:22.2222px">It would be cool if one could configure a condition on the AuthenticationFlowExecution</span></font></p><p style="margin:0px;padding:0px"><font color="#333333" face="Arial, sans-serif"><span style="font-size:14px;line-height:22.2222px">(if I&#39;m not mistaken) that if evaluated to true would execute or skip a particular authentication step.</span></font></p><p style="margin:0px;padding:0px"><font color="#333333" face="Arial, sans-serif"><span style="font-size:14px;line-height:22.2222px">This could perhaps be configured via the admin console in the Authentication -&gt; Flows tab.</span></font></p><p style="margin:0px;padding:0px"><font color="#333333" face="Arial, sans-serif"><span style="font-size:14px;line-height:22.2222px">Conditions could perhaps be simple JavaScript expressions that could be evaluated via the built-in JavaScript ScriptEngine.</span></font></p><p style="margin:0px;padding:0px"><font color="#333333" face="Arial, sans-serif"><span style="font-size:14px;line-height:22.2222px">For this it would be useful to provide a set of &quot;standard&quot; functions that can be called from the expressions (perhaps based on a whitelist).</span></font></p><p style="margin:0px;padding:0px"><font color="#333333" face="Arial, sans-serif"><span style="font-size:14px;line-height:22.2222px">Admins should also be able to define their custom functions.</span></font></p><p style="margin:0px;padding:0px"><font color="#333333" face="Arial, sans-serif"><span style="font-size:14px;line-height:22.2222px">The context could provide access to the current http request, current user, the requested client application and perhaps the keycloak configuration.</span></font></p><p style="margin:0px;padding:0px"><font color="#333333" face="Arial, sans-serif"><span style="font-size:14px;line-height:22.2222px"><br></span></font></p><p style="margin:0px;padding:0px"><font color="#333333" face="Arial, sans-serif"><span style="font-size:14px;line-height:22.2222px">The issue: <a href="https://issues.jboss.org/browse/KEYCLOAK-2108">https://issues.jboss.org/browse/KEYCLOAK-2108</a></span></font></p><div style="color:rgb(51,51,51);font-family:Arial,sans-serif;font-size:14px;line-height:22.2222px"><br></div></div></div>