<div dir="ltr"><br><div class="gmail_extra"><br><div class="gmail_quote">On 13 September 2016 at 15:41, Nalyvayko, Peter <span dir="ltr">&lt;<a href="mailto:pnalyvayko@agi.com" target="_blank">pnalyvayko@agi.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 lang="EN-US" link="#0563C1" vlink="#954F72">
<div>
<p class="MsoNormal"><span style="font-size:11.0pt;font-family:&quot;Calibri&quot;,sans-serif;color:#1f497d">Is this going to be a breaking feature or is the plan to continue supporting the current single key/realm model?</span></p></div></div></blockquote><div><br></div><div>If you only have a single active keypair and no inactive pairs it will behave exactly as today. We will change the way keys are stored in the db, but this will be taken care of by migration.</div><div> </div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div lang="EN-US" link="#0563C1" vlink="#954F72"><div><p class="MsoNormal"><span style="font-size:11.0pt;font-family:&quot;Calibri&quot;,sans-serif;color:#1f497d">
<u></u><u></u></span></p>
<p class="MsoNormal"><span style="font-size:11.0pt;font-family:&quot;Calibri&quot;,sans-serif;color:#1f497d"><u></u> <u></u></span></p>
<p class="MsoNormal"><b><span style="font-size:11.0pt;font-family:&quot;Calibri&quot;,sans-serif">From:</span></b><span style="font-size:11.0pt;font-family:&quot;Calibri&quot;,sans-serif"> <a href="mailto:keycloak-dev-bounces@lists.jboss.org" target="_blank">keycloak-dev-bounces@lists.<wbr>jboss.org</a> [mailto:<a href="mailto:keycloak-dev-bounces@lists.jboss.org" target="_blank">keycloak-dev-bounces@<wbr>lists.jboss.org</a>]
<b>On Behalf Of </b>Stian Thorgersen<br>
<b>Sent:</b> Tuesday, September 13, 2016 9:29 AM<br>
<b>To:</b> keycloak-dev &lt;<a href="mailto:keycloak-dev@lists.jboss.org" target="_blank">keycloak-dev@lists.jboss.org</a>&gt;<br>
<b>Subject:</b> [keycloak-dev] Realm key rotation support<u></u><u></u></span></p><div><div class="h5">
<p class="MsoNormal"><u></u> <u></u></p>
<div>
<p class="MsoNormal">To be able to gracefully rotate the realm keys periodically a realm needs to have more than one keypair. One keypair that is active and will be used to issue new cookies and tokens. Also, one or more keypairs that are inactive that can
 be used to verify old cookies and tokens.<u></u><u></u></p>
<div>
<p class="MsoNormal"><u></u> <u></u></p>
</div>
<div>
<p class="MsoNormal">I&#39;m going to start work on this soon, but here&#39;s some initial thoughts:<u></u><u></u></p>
</div>
<div>
<p class="MsoNormal"><u></u> <u></u></p>
</div>
<div>
<p class="MsoNormal">* Realm keys will have a list of keypairs rather than just one. Only one can be active. There will also be an expiration time on the inactive keypairs. Once expired and inactive keypair is no longer usable.<u></u><u></u></p>
</div>
<div>
<p class="MsoNormal">* There will also be an option to automatically generate a new key every N days.<u></u><u></u></p>
</div>
<div>
<p class="MsoNormal">* If a session cookie is signed with an inactive pair the cookie will be refreshed so it&#39;s signed with the active keypair<u></u><u></u></p>
</div>
<div>
<p class="MsoNormal">* Token introspect endpoint will allow any token that is signed with any keypair that is not expired<u></u><u></u></p>
</div>
<div>
<p class="MsoNormal">* If a refresh token is signed with an inactive pair the new tokens (including refresh token) will be signed with the active keypair<u></u><u></u></p>
</div>
<div>
<p class="MsoNormal">* Secret used to generate client code will be linked to the keypair. I&#39;ll need a way to specify what secret it was signed with so codes are still valid even if they where signed with an old.<u></u><u></u></p>
</div>
<div>
<p class="MsoNormal"><u></u> <u></u></p>
</div>
<div>
<p class="MsoNormal">This is only for login cookie and OIDC protocol. Is it even necessary to have support for multiple certificates for SAML? SAML doesn&#39;t have a token introspection or refresh of the assertions right, so not sure it&#39;s needed.<u></u><u></u></p>
</div>
<div>
<p class="MsoNormal"><u></u> <u></u></p>
</div>
<div>
<p class="MsoNormal">With regards to the applications. Marek has already added support for clients to fetch new keypairs for the realm. See his email on keycloak-dev for details around that.<u></u><u></u></p>
</div>
</div>
</div></div></div>
</div>

</blockquote></div><br></div></div>