<div dir="ltr">Acknowledged. Certificate/Key Configuration Authority will facilitate setting configuration for almost all config parameters( eg. key/cert signature algorithm, encryption algorithm, signature/secure random algorithm provider, bit length, validity etc.).</div><div class="gmail_extra"><br><div class="gmail_quote">On Tue, May 26, 2015 at 6:13 PM, Bill Burke <span dir="ltr">&lt;<a href="mailto:bburke@redhat.com" target="_blank">bburke@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">I want a facility in the admin console that can create and name one or<br>
more keypairs/certificates.  Then, we can assign these keypair/certs to<br>
various aspects.  i.e., Most protocols recommend different keypairs for<br>
encryption and signatures.  Some clients may want to use HMAC over RSA, etc.<br>
<div><div class="h5"><br>
On 5/26/2015 3:23 AM, Giriraj Sharma wrote:<br>
&gt; We&#39;re looking to provide a API to easily enable Key and Certificate<br>
&gt; Management to<br>
&gt; Keycloak-based applications. We may have a comprehensive PKI/Certificate<br>
&gt; service<br>
&gt; for KC so as to fulfill all key/certificate/JOSE requirements in future<br>
&gt; roadmap. This is a future<br>
&gt; consideration/idea and is not meant as a feature to be merged soon. It<br>
&gt; will be likely to hit KC master<br>
&gt; as and when the roadmap will require.<br>
&gt;<br>
&gt; The idea is turn a realm into a Certification Authority,<br>
&gt; responsible for issue, validate, revoke and renew certificates for the<br>
&gt; identity types<br>
&gt; (eg.: realms, users, applications etc) associated with it. Thus, realm<br>
&gt; will act<br>
&gt; as the root CA or realm&#39;s certificate(X509 v1) will be self signed and<br>
&gt; certificates(X509 v3) of<br>
&gt; identity types will be signed with realm&#39;s certificate.<br>
&gt;<br>
&gt; So, there will be a pki module with key and certificate authority which<br>
&gt; will be able to<br>
&gt; perform all key and certificate related functions and hence will be used<br>
&gt; as per requirements<br>
&gt; by identity types(eg.: realms, users, applications etc).<br>
&gt;<br>
&gt; In the future, we also want to provide:<br>
&gt; - RESTful Endpoints to perform not only certificate operations, but also<br>
&gt; manage keys.<br>
&gt; Specially public keys. Probably using JSON Web Keys (JWK).<br>
&gt; - Better support for HTML5 and mobile applications that require some<br>
&gt; kind of support for certificates,<br>
&gt; asymmetric keys, signature and encryption. Specially when using JWT and<br>
&gt; JOSE.<br>
&gt; - Support Java KeyStores to load and store keys.<br>
&gt;<br>
&gt; -Implementation of lets encrypt ACME Specification.<br>
&gt; -Support for JWS and JWE, if required.<br>
&gt;<br>
&gt; After some initial work, I think we have an initial design. Still have<br>
&gt; to think about,<br>
&gt; specially regarding the configuration and storage.<br>
&gt;<br>
&gt; Basically, what we have so far are two main components:<br>
&gt; CertificateAuthority and KeyAuthority.<br>
&gt; The first is about managing keys (eg.: RSA keys) for realm and identity<br>
&gt; types.<br>
&gt; The second one is about managing certificates using the keys for a<br>
&gt; particular type.<br>
&gt;<br>
&gt; We have Key and Certificate Authority which can be injected anywhere and<br>
&gt; be used accordingly.<br>
&gt; If CDI doesn&#39;t appears to be a good choice, then, we can probably<br>
&gt; directly use these services via method<br>
&gt; invocations :<br>
&gt;<br>
&gt;      @Inject<br>
&gt;      private KeyAuthority keyAuthority;<br>
&gt;<br>
&gt;      @Inject<br>
&gt;      private CertificateAuthority certificateAuthority;<br>
&gt;<br>
&gt; More information here :<br>
&gt; <a href="https://gist.github.com/girirajsharma/8d59a674a28560ca0a91" target="_blank">https://gist.github.com/girirajsharma/8d59a674a28560ca0a91</a><br>
&gt; First cut on my local keycloak pki branch :<br>
&gt; <a href="https://github.com/girirajsharma/keycloak/commit/89f20380ece48cbdbc6426ec98d32e4d0751bd29" target="_blank">https://github.com/girirajsharma/keycloak/commit/89f20380ece48cbdbc6426ec98d32e4d0751bd29</a><br>
&gt;<br>
&gt; Cheers,<br>
&gt;<br>
&gt; --<br>
&gt; Giriraj Sharma<br>
&gt; <a href="http://about.me/girirajsharma" target="_blank">about.me/girirajsharma</a><br>
&gt;<br>
</div></div>&gt; &lt;<a href="http://about.me/girirajsharma?promo=email_sig" target="_blank">http://about.me/girirajsharma?promo=email_sig</a>&gt;<br>
<span class="">&gt;<br>
&gt; Giriraj Sharma,<br>
&gt; Department of Computer Science<br>
&gt; National Institute of Technology Hamirpur<br>
&gt; Himachal Pradesh, India 177005<br>
&gt;<br>
&gt;<br>
</span>&gt; _______________________________________________<br>
&gt; keycloak-dev mailing list<br>
&gt; <a href="mailto:keycloak-dev@lists.jboss.org">keycloak-dev@lists.jboss.org</a><br>
&gt; <a href="https://lists.jboss.org/mailman/listinfo/keycloak-dev" target="_blank">https://lists.jboss.org/mailman/listinfo/keycloak-dev</a><br>
&gt;<br>
<span class="HOEnZb"><font color="#888888"><br>
--<br>
Bill Burke<br>
JBoss, a division of Red Hat<br>
<a href="http://bill.burkecentral.com" target="_blank">http://bill.burkecentral.com</a><br>
_______________________________________________<br>
keycloak-dev mailing list<br>
<a href="mailto:keycloak-dev@lists.jboss.org">keycloak-dev@lists.jboss.org</a><br>
<a href="https://lists.jboss.org/mailman/listinfo/keycloak-dev" target="_blank">https://lists.jboss.org/mailman/listinfo/keycloak-dev</a><br>
</font></span></blockquote></div><br><br clear="all"><div><br></div>-- <br><div class="gmail_signature"><div dir="ltr"><div><div dir="ltr"><font color="#888888"><div><table border="0" cellpadding="0" cellspacing="0" style="margin:0px;padding:0px;border:0px;outline:0px;font-size:14px;font-family:proxima-nova-1,proxima-nova-2,Tahoma,Helvetica,Verdana,sans-serif;vertical-align:baseline;border-spacing:0px;color:rgb(51,51,51);line-height:18.2000007629395px"><tbody style="margin:0px;padding:0px;border:0px;outline:0px;font-weight:inherit;font-style:inherit;font-family:inherit;vertical-align:baseline"><tr style="margin:0px;padding:0px;border:0px;outline:0px;font-weight:inherit;font-style:inherit;font-family:inherit;vertical-align:baseline"><td style="padding:0px;border:0px;outline:0px;font-style:inherit;font-size:0px;font-family:inherit;vertical-align:baseline;width:auto;height:30px"> </td></tr><tr style="margin:0px;padding:0px;border:0px;outline:0px;font-weight:inherit;font-style:inherit;font-family:inherit;vertical-align:baseline"><td style="padding:0px;border:0px;outline:0px;font-style:inherit;font-family:inherit;vertical-align:baseline;width:auto"><div style="margin:0px;padding:0px;border:0px;outline:0px;font-weight:inherit;font-style:inherit;font-family:inherit;vertical-align:baseline;line-height:0"><a href="http://about.me/girirajsharma?promo=email_sig" style="margin:0px;padding:0px;border:0px;outline:0px;font-weight:inherit;font-style:inherit;font-family:inherit;vertical-align:baseline;color:rgb(58,169,233);text-decoration:none;display:inline-block" target="_blank"><table border="0" cellpadding="0" cellspacing="0" style="margin:0px;padding:0px;border:0px;outline:0px;font-weight:inherit;font-style:inherit;font-family:inherit;vertical-align:baseline;border-spacing:0px"><tbody style="margin:0px;padding:0px;border:0px;outline:0px;font-weight:inherit;font-style:inherit;font-family:inherit;vertical-align:baseline"><tr style="margin:0px;padding:0px;border:0px;outline:0px;font-weight:inherit;font-style:inherit;font-family:inherit;vertical-align:baseline"><td align="left" valign="top" style="padding:0px;border:0px;outline:0px;font-style:inherit;font-family:inherit;vertical-align:top;width:auto;line-height:1"><div style="margin:0px;padding:0px;border:0px;outline:0px;font-weight:bold;font-style:inherit;font-size:18px;font-family:proxima-nova-1,Proxima-Nova,Helvetica,Arial,sans-serif;vertical-align:baseline;line-height:1;color:rgb(51,51,51)">Giriraj Sharma</div><div style="margin:3px 0px 0px;padding:0px;border:0px;outline:0px;font-weight:inherit;font-style:inherit;font-size:12px;font-family:proxima-nova-1,Proxima-Nova,Helvetica,Arial,sans-serif;vertical-align:baseline;color:rgb(43,130,173)">about.me/girirajsharma</div></td></tr><tr style="margin:0px;padding:0px;border:0px;outline:0px;font-weight:inherit;font-style:inherit;font-family:inherit;vertical-align:baseline"><td align="left" valign="top" style="padding:8px 0px 0px;border:0px;outline:0px;font-style:inherit;font-family:inherit;vertical-align:top;width:auto;line-height:1"><div style="margin:0px;padding:0px;border:0px;outline:0px;font-weight:inherit;font-style:inherit;font-family:inherit;vertical-align:baseline;text-align:right;height:4px;background-color:rgb(197,208,224)"><img src="http://d13pix9kaak6wt.cloudfront.net/signature/colorbar.png" width="88" alt="" height="4" style="margin:0px;padding:0px;border:0px;outline:0px;font-weight:inherit;font-style:inherit;font-family:inherit;vertical-align:baseline;float:right;display:block"></div></td></tr></tbody></table></a>                                 </div></td></tr><tr style="margin:0px;padding:0px;border:0px;outline:0px;font-weight:inherit;font-style:inherit;font-family:inherit;vertical-align:baseline"><td style="padding:0px;border:0px;outline:0px;font-style:inherit;font-size:0px;font-family:inherit;vertical-align:baseline;width:auto;height:20px"> </td></tr></tbody></table>Giriraj Sharma, </div><div>Department of Computer Science </div><div>National Institute of Technology Hamirpur </div><div>Himachal Pradesh, India 177005<br></div></font></div></div></div></div>
</div>