<div dir="ltr">Adding Bill..<div><br></div><div>It would probably still be better to use user federation for verifying credentials, but we would need some logic on how to determine what mechanism to use for primary authentication and secondary authentication. Bill was talking about adding some conditional flows to the authentication maybe that&#39;s what we need.</div><div><br></div><div>For now I&#39;d focus on OTP though and then move on to smartcard afterwards.</div></div><div class="gmail_extra"><br><div class="gmail_quote">On 19 July 2016 at 11:00, Bruno Oliveira <span dir="ltr">&lt;<a href="mailto:bruno@abstractj.org" target="_blank">bruno@abstractj.org</a>&gt;</span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">The problem here is the fact that not necessarily the<br>
first factor will be a pasword or the second factor an OTP. It<br>
could be a smartcard for example. That&#39;s why I think is a better idea to<br>
make it dynamic, because we don&#39;t have control over it to tell<br>
if the second factor will be a smartcard or an OTP for example.<br>
<br>
Does it make sense?<br>
<div><div class="h5"><br>
On 2016-07-19, Stian Thorgersen wrote:<br>
&gt; Looks like it&#39;s better to keep as is and have user federation provider<br>
&gt; validate otp credentials as well. The current OTP authenticator delegates<br>
&gt; to user federation provider, so you&#39;d end up with a separate OTP<br>
&gt; authenticator to do it with PAM.<br>
&gt;<br>
&gt; On 19 July 2016 at 00:48, Bruno Oliveira &lt;<a href="mailto:bruno@abstractj.org">bruno@abstractj.org</a>&gt; wrote:<br>
&gt;<br>
&gt; &gt; Good morning,<br>
&gt; &gt;<br>
&gt; &gt;<br>
&gt; &gt; Today to authentication against PAM with just simple username/password I<br>
&gt; &gt; implemented UserFederationProvider and added the proper PAM login to<br>
&gt; &gt; validCredentials[1]. This covers the most basic scenario.<br>
&gt; &gt;<br>
&gt; &gt; Now I would like to cover a more complex scenario like OTP and change<br>
&gt; &gt; the flow a little bit like this:<br>
&gt; &gt;<br>
&gt; &gt; 1. User providers her username<br>
&gt; &gt; 2. The next screen asks to provide how many factor our user has(For<br>
&gt; &gt; example: OTP, password). We just don&#39;t know, PAM will tell what&#39;s next.<br>
&gt; &gt; 3. We authenticate against it<br>
&gt; &gt;<br>
&gt; &gt; To see in practice against FreeIPA server, I just recorded it<br>
&gt; &gt; for a practical example[2].<br>
&gt; &gt;<br>
&gt; &gt; What would be the best approach to implement this flow? I was considering<br>
&gt; &gt; to<br>
&gt; &gt; move my authentication logic out of SSSD federation provider and create a<br>
&gt; &gt; PAM<br>
&gt; &gt; authenticator.<br>
&gt; &gt;<br>
&gt; &gt; Does it make sense?<br>
&gt; &gt;<br>
&gt; &gt; [1] -<br>
&gt; &gt; <a href="http://www.keycloak.org/docs/javadocs/org/keycloak/models/UserFederationProvider.html#validCredentials-org.keycloak.models.RealmModel-org.keycloak.models.UserCredentialModel-" rel="noreferrer" target="_blank">http://www.keycloak.org/docs/javadocs/org/keycloak/models/UserFederationProvider.html#validCredentials-org.keycloak.models.RealmModel-org.keycloak.models.UserCredentialModel-</a><br>
&gt; &gt;<br>
&gt; &gt; [2] - <a href="https://asciinema.org/a/atwnfbu0kqfasjl65weyoiz7a" rel="noreferrer" target="_blank">https://asciinema.org/a/atwnfbu0kqfasjl65weyoiz7a</a><br>
&gt; &gt;<br>
&gt; &gt;<br>
&gt; &gt; --<br>
&gt; &gt;<br>
&gt; &gt; abstractj<br>
&gt; &gt; PGP: 0x84DC9914<br>
&gt; &gt; _______________________________________________<br>
&gt; &gt; keycloak-dev mailing list<br>
&gt; &gt; <a href="mailto:keycloak-dev@lists.jboss.org">keycloak-dev@lists.jboss.org</a><br>
&gt; &gt; <a href="https://lists.jboss.org/mailman/listinfo/keycloak-dev" rel="noreferrer" target="_blank">https://lists.jboss.org/mailman/listinfo/keycloak-dev</a><br>
&gt; &gt;<br>
<br>
</div></div>--<br>
<br>
abstractj<br>
PGP: 0x84DC9914<br>
</blockquote></div><br></div>