<div dir="ltr"><div>Hi Stian,<br><br>Indeed, changing the authentication/password policy works for new users when created from Admin Console. The custom password hashing implementation works fine.<br><br>However, creating a user  WITH credentials using this:<br><br><a href="http://keycloak.github.io/docs/rest-api/index.html#_create_a_new_user">http://keycloak.github.io/docs/rest-api/index.html#_create_a_new_user</a><br><br>does not work as expected. The user is created but the &#39;credentials&#39; array is empty in the resulting user record. I exported the realm and verified that. Is the one above the correct method to use?<br><br>I can only set the password for a user using this:<br><a href="http://keycloak.github.io/docs/rest-api/index.html#_set_up_a_temporary_password_for_the_user">http://keycloak.github.io/docs/rest-api/index.html#_set_up_a_temporary_password_for_the_user</a><br>But this does  not take into account already &quot;hashedSaltedValue&quot;.<br><br>PUT <a href="http://127.0.0.1:8080/auth/admin/realms/test/users/216f6050-9c94-47d1-9b96-8534841305df/reset-password">127.0.0.1:8080/auth/admin/realms/test/users/216f6050-9c94-47d1-9b96-8534841305df/reset-password</a><br>For example i tried sending this:<br><br>{<br>    &quot;type&quot; : &quot;password&quot;,<br>    &quot;hashedSaltedValue&quot; : &quot;****&quot;,<br>    &quot;salt&quot; : &quot;****&quot;,<br>    &quot;hashIterations&quot; : 1,<br>    &quot;algorithm&quot; : &quot;restcomm-md5&quot;<br>}<br><br>but i got a &quot;400 Bad Request&quot; with &quot;No password provided&quot;. Anyway, the &#39;reset-password&#39; path does not seem the way to go here.<br><br></div><div><br></div><span style="color:rgb(51,51,51);font-family:Consolas,&quot;Andale Mono&quot;,monospace;font-size:14px;font-style:normal;font-variant:normal;font-weight:normal;letter-spacing:normal;line-height:20px;text-align:start;text-indent:0px;text-transform:none;white-space:pre-wrap;word-spacing:0px;display:inline!important;float:none;background-color:rgb(250,250,250)"></span><div class="gmail_extra"><br><div class="gmail_quote">On Mon, Dec 21, 2015 at 4:43 PM, Stian Thorgersen <span dir="ltr">&lt;<a href="mailto:sthorger@redhat.com" target="_blank">sthorger@redhat.com</a>&gt;</span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div dir="ltr">In authentication / password policy you can configure what hashing algorithm new passwords are hashed with. If you change that value then update the users password either through admin console or account management it should use your provider.<div><br></div><div>However, this is probably not what you want as you are implementing a md5 hash provider which is weaker than the built in provider. I assume you want to import users with passwords that are hashed using md5? If so you need to specify the algorithm for the password in the json when you import the user. For example:</div><div><br></div><div><div>&quot;users&quot; : [ {</div><div>    &quot;username&quot; : &quot;myuser&quot;,</div><div>    &quot;enabled&quot; : true,</div><div>    &quot;credentials&quot; : [ {</div><div>      &quot;type&quot; : &quot;password&quot;,</div><div>      &quot;hashedSaltedValue&quot; : &quot;***************&quot;,</div><div>      &quot;salt&quot; : &quot;**************&quot;,</div><div>      &quot;hashIterations&quot; : 1000,</div><div>      &quot;algorithm&quot; : &quot;<span style="font-size:12.8px">restcomm-md5</span>&quot;</div><div>    } ]</div><div>  } ]</div></div></div><div class="HOEnZb"><div class="h5"><div class="gmail_extra"><br><div class="gmail_quote">On 21 December 2015 at 13:48, Orestis Tsakiridis <span dir="ltr">&lt;<a href="mailto:orestis.tsakiridis@telestax.com" target="_blank">orestis.tsakiridis@telestax.com</a>&gt;</span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div dir="ltr">Btw, hHere is a screenshot of the &#39;switch&#39; i referred to:<br></div><div><div><div class="gmail_extra"><br><div class="gmail_quote">On Mon, Dec 21, 2015 at 2:47 PM, Orestis Tsakiridis <span dir="ltr">&lt;<a href="mailto:orestis.tsakiridis@telestax.com" target="_blank">orestis.tsakiridis@telestax.com</a>&gt;</span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div dir="ltr"><div><div>Hello again!<br><br></div>So, i&#39;ve recently pulled your master branch and started working on it (HEAD was 0197c69ac3d6e8d90a6e7c93e1eaf) and implemented the password hashing SPI. <br><br></div><div>Actually, i implemented PasswordHashProvider and PasswordHashProviderFactory and created a  provider .jar as described in <a href="http://keycloak.github.io/docs/userguide/keycloak-server/html/providers.html" target="_blank">http://keycloak.github.io/docs/userguide/keycloak-server/html/providers.html</a>.<br><br>So, all went fine there. Deployment on keycloak had no issues too.<br><br>I&#39;m wondering however how i enable this custom Password Hash Provider. Is there a switch that instead of using the &quot;Pbkdf2PasswordHashProvider&quot; to use my custom &quot;RestcommPasswordHashProvider&quot;.<br><br></div><div>All i&#39;ve found is the &quot;Authentication/Password Policy/Hash algorithm&quot;  in the Administration Console UI that directly maps to &quot;Pbkdf2PasswordHashProvider&quot; but adding a new entry and changing this to &quot;restcomm-md5&quot; (the id of the new provider) seems to have no effect.<br><br></div><div>Any ideas ?<br><br><br></div></div><div><div><div class="gmail_extra"><br><div class="gmail_quote">On Thu, Dec 3, 2015 at 1:22 PM, Orestis Tsakiridis <span dir="ltr">&lt;<a href="mailto:orestis.tsakiridis@telestax.com" target="_blank">orestis.tsakiridis@telestax.com</a>&gt;</span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div dir="ltr"><div><div>Great! I will keep an eye on it.<br><br></div>BR<span><font color="#888888"><br><br></font></span></div><span><font color="#888888">Orestis<br></font></span></div><div><div><div class="gmail_extra"><br><div class="gmail_quote">On Thu, Dec 3, 2015 at 12:18 PM, Stian Thorgersen <span dir="ltr">&lt;<a href="mailto:sthorger@redhat.com" target="_blank">sthorger@redhat.com</a>&gt;</span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div dir="ltr">That&#39;d be great. If you watch this <a href="https://issues.jboss.org/browse/KEYCLOAK-1900" target="_blank">https://issues.jboss.org/browse/KEYCLOAK-1900</a> you&#39;ll know when it&#39;s in master.<div><br></div><div>Hopefully it should be added within a few days.</div></div><div><div><div class="gmail_extra"><br><div class="gmail_quote">On 3 December 2015 at 10:08, Orestis Tsakiridis <span dir="ltr">&lt;<a href="mailto:orestis.tsakiridis@telestax.com" target="_blank">orestis.tsakiridis@telestax.com</a>&gt;</span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div dir="ltr"><div><div><div><div><div>Ok Stian.<br><br></div>I will try to implement auth_spi. <br><br></div>Btw, if you need any early adopters for your new Password Hashing SPI feature, we will gladly use it in our new &quot;Restcomm as a Service&quot;  implementation and send feedback.<br><br></div><br>Thanks<br><br></div>Orestis<br><br></div>Telestax<br></div><div><div><div class="gmail_extra"><br><div class="gmail_quote">On Tue, Dec 1, 2015 at 4:51 PM, Stian Thorgersen <span dir="ltr">&lt;<a href="mailto:sthorger@redhat.com" target="_blank">sthorger@redhat.com</a>&gt;</span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div dir="ltr"><a href="http://keycloak.github.io/docs/userguide/keycloak-server/html/auth_spi.html" target="_blank">http://keycloak.github.io/docs/userguide/keycloak-server/html/auth_spi.html</a><br></div><div><div><div class="gmail_extra"><br><div class="gmail_quote">On 1 December 2015 at 15:39, Orestis Tsakiridis <span dir="ltr">&lt;<a href="mailto:orestis.tsakiridis@telestax.com" target="_blank">orestis.tsakiridis@telestax.com</a>&gt;</span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div dir="ltr"><div>Thanks Stian.<br><br></div>Can you send me some documentation or source code pointers about &quot;modifying the password authenticator&quot; ? Are we talking about a Java class, overriding login form ? sth else?<br><br><br></div><div><div><div class="gmail_extra"><br><div class="gmail_quote">On Tue, Dec 1, 2015 at 3:12 PM, Stian Thorgersen <span dir="ltr">&lt;<a href="mailto:sthorger@redhat.com" target="_blank">sthorger@redhat.com</a>&gt;</span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div dir="ltr">So looks like we will indeed have password hash spi in 1.8. It&#39;ll be released in early January.<div><br></div><div>If you can&#39;t wait for that I think it would be better to not import users with a password at all and instead send reset password links to their email address. That would assume all users have emails registered. Or you could also modify the password authenticator and make it run md5 the value of the input password for users that haven&#39;t updated their password yet.</div></div><div><div><div class="gmail_extra"><br><div class="gmail_quote">On 1 December 2015 at 13:36, Orestis Tsakiridis <span dir="ltr">&lt;<a href="mailto:orestis.tsakiridis@telestax.com" target="_blank">orestis.tsakiridis@telestax.com</a>&gt;</span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div dir="ltr">Ok, so i guess i&#39;ll have to go with a workaround, password reset, etc as i&#39;ve described.<br><br>Thanks Stian<br></div><div><div><div class="gmail_extra"><br><div class="gmail_quote">On Tue, Dec 1, 2015 at 2:29 PM, Stian Thorgersen <span dir="ltr">&lt;<a href="mailto:sthorger@redhat.com" target="_blank">sthorger@redhat.com</a>&gt;</span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div dir="ltr">We are planning to add a Password Hashing SPI, which will allow plugging in additional hashing mechanisms. It&#39;s not ready quite yet though.</div><div class="gmail_extra"><br><div class="gmail_quote"><div><div>On 1 December 2015 at 13:25, Orestis Tsakiridis <span dir="ltr">&lt;<a href="mailto:orestis.tsakiridis@telestax.com" target="_blank">orestis.tsakiridis@telestax.com</a>&gt;</span> wrote:<br></div></div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div><div><div dir="ltr"><div><div><div><div>Hello,<br><br></div>I&#39;m trying to create some migration scripts that will port users from Application1 into keycloak. Users in Application1 already have usernames, passwords etc. I use the admin rest api to create the users.<br><br></div>The problem i&#39;m facing is that user passwords in Application1 database are already hashed using md5. So, i don&#39;t really know the actual passwords (security wise that makes sense). <br><br></div><div>The only solution i&#39;ve come down to is store the password as they are in keycloak (md5ed) and tell the users to use the hashed value instead of the plaintext one wieh signing in. Then, force them to reset passwords. Not the best UX  :-(<br></div><div><br></div>Is there a way to tell keycloak that &quot;these passwords are already hashed in md5&quot; so, &quot;store them as they are&quot; and &quot;when a user tries to sign in, first hash his password with md5 and the compare to the value stored in db&quot;  or sth like that?<br><br></div>Any alternatives come to mind ?<br><div><div><div><div><div><br><br></div><div>Regards <br><span><font color="#888888"><br>Orestis<br></font></span></div></div></div></div></div></div>
<br></div></div>_______________________________________________<br>
keycloak-user mailing list<br>
<a href="mailto:keycloak-user@lists.jboss.org" target="_blank">keycloak-user@lists.jboss.org</a><br>
<a href="https://lists.jboss.org/mailman/listinfo/keycloak-user" rel="noreferrer" target="_blank">https://lists.jboss.org/mailman/listinfo/keycloak-user</a><br></blockquote></div><br></div>
</blockquote></div><br></div>
</div></div></blockquote></div><br></div>
</div></div></blockquote></div><br></div>
</div></div></blockquote></div><br></div>
</div></div></blockquote></div><br></div>
</div></div></blockquote></div><br></div>
</div></div></blockquote></div><br></div>
</div></div></blockquote></div><br></div>
</div></div></blockquote></div><br></div>
</div></div></blockquote></div><br></div>
</div></div></blockquote></div><br></div></div>