August 11, 2015
Keycloak, oauth, security, Webservices
Back in 2012, I wrote about my concerns with the proliferation of WebSockets. Since WebSockets is basically just a mechanism to establish a raw socket connection and a simple protocol to send packets, potentially every application has a different communication protocol.
We recently ran into the problem of, how can we secure WebSockets in a token based architecture. While we can write helper libs on the client and server side that exchange the token on WebSocket setup, there’s a problem with token expiration. Each application (or WebSocket framework) would have to build in a way to notify the client that the token has expired, and provide a way for the client to retransmit a new refreshed token. It is already a maintenance nightmare to support basic web security and client adapter support for the various servlet engines. We would now have to multiple that by the number of WebSocket frameworks.
Basically, it is hard to impossible for projects like Keycloak to provide out of the box support for securing WebSockets. Anybody know if HTTP/2 could replace WebSockets? I haven’t dived into the protocol yet and my understanding is that its biggest advantage is pipelining HTTP requests.
November 5, 2014
java, javaee, JAX-RS, jboss, Keycloak, oauth, openid connect, SAML, SSO
(Copied from Stian’s announcement) Pretty big feature release:
- SAML 2.0 support. Keycloak already supports OpenID Connect, but with this release we’re also introducing support for SAML 2.0. We did this by pulling in and building on top of Picketlink’s SAML libraries.
- Vastly improved clustering support. We’ve also significantly improved our clustering support, for the server and application adapters. The server can now be configured to use an invalidation cache for realm meta-data and user profiles, while user-sessions can be stored in a distributed cache allowing for both increased scalability and availability. Application adapters can be configured for either sticky-session or stateless if sticky-sessions are not available. We’ve also added support for nodes to dynamically register with Keycloak to receive for example logout notifications.
- Adapter multi-tenancy support. Thanks to Juraci Paixão Kröhling we now have multi-tenancy support in application adapters. His contribution makes it easy to use more than one realm for a single application. It’s up to you to decide which realm is used for a request, but this could for example be depending on domain name or context-path. For anyone interested in this feature there’s a simple example that shows how to get started.
- Tomcat 7 Adapter. A while back Davide Ungari contributed a Tomcat 7 application adapter for Keycloak, but we haven’t had time to document, test and make it a supported adapter until now.
The next release of Keycloak should see the introduction of more application adapters, with support for JBoss BRMS, JBoss Fuse, UberFire, Hawt.io and Jetty.
For a complete list of all features and fixes for this release check out JIRA
I’d like to especially thank all external contributors, please keep contributing! For everyone wanting to contribute Keycloak don’t hesitate, it’s easy to get started and we’re here to help if you need any pointers.
September 10, 2014
java, javaee, JAX-RS, jboss, Keycloak, oauth, openid connect, opensource, REST, security, SSO
After 1 year of hard work, the team is proud to release our first final 1.0 release of Keycloak. We’ve stabilized our database schemas, improved performance, and refactored our SPIs and you should be good to go! I don’t want to list all the features, but check out our project website at http://keycloak.org for more information. You can find our download links there as well as screen cast tutorials on our documentation page.
Keycloak 1.1 will be our integration release where we start bringing Keycloak to different protocols, projects, and environments. Here’s a priority list of what we’re tackling
- SAML 2.0 – by merging with Picketlink IDP
- Uberfire/BRMS adapter
- Fuse FSW adapter
- EAP 6.x and Wildfly console integration
- Tomcat 7 adapter
- …More planned, but we’ll see how fast we can move before we announce anymore
In parallel, we hope to look into a few new features:
- TOTP Improvements like allowing multiple token generators
- IP Filtering
August 20, 2014
java, javaee, JAX-RS, Keycloak, oauth, openid connect, opensource, REST, RESTEasy, security, SSO
Many bugs fixes and cleanup. Not much for features although we did add a ton of tooltips to the admin console. We’re getting very close to a final release and are still on schedule to release 2nd week on September.
See keycloak.org for links to download and documentation.
August 6, 2014
java, JAX-RS, jboss, Keycloak, oauth, openid connect, REST, security, SSO, wildfly
After a summer of multiple vacations from various team members, we’re finally ready to release Keycloak 1.0 Beta 4. There’s not a lot of new features in the release because we focused mainly on performance, creating new SPIs, refactoring code, improving usability, and lastly fixing bugs. 64 issues completed. As usually go to the main keycloak.org page to find download links and to browse our documentation, release notes, or view our screencast tutorials. Here are some of the highlights of the release:
- Server side memory cache for all UI pages.
- Cache-control settings for UI pages
- Server side cache for all backend metadata: realms, applications, and users.
- In-memory implementation for user sessions
- New Federation SPI. Gives you a lot of flexibility to federation external stores into Keycloak
- Improved LDAP/Active Directory support
- Token validation REST API
- Support for HttpServletRequest.logout()
- Lots and lots of bugs fixes and minor improvements
You should see a big performance increase with this release as everything is cachable in memory and the database can be fully bypassed.
1.0 Final is on the way!
What’s next for Keycloak? This month we will be focusing on resolving the remaining issues logged in Jira, improving our test coverage, and updating our documentation and screencasts. No new major features. We’ll have a RC release around 3rd week of August, then our first Final release 2nd week of September!
June 19, 2014
Keycloak, oauth, openid connect, security
Mostly a bunch of bug fixes that we needed to push out for users. We’re still pretty focused on performance and hope that Beta 4 will allow Keycloak to run in a cluster with some caching capabilities. See keycloak.org for links on downloading, docs, and jira release notes.
May 29, 2014
java, JAX-RS, Keycloak, oauth, openid connect, opensource, REST, security, SSO
Keycloak Beta-1 has been released! We’re edging closer to 1.0! Please visit the Keycloak website for links to documentation and downloads. A lot of hard work the last few months by Stian, Marek, myself and other contributors to bring you loads of new features and improvements:
- LDAP/Active Directory integration built on Picketlink. Thanks Marek!
- User Session management – can now view login IP address and which applications and oauth clients have open tokens. Works with any type of app too. Can view and manage sessions through user account pages or admin console
- Audit log for important events. Integration with admin console and ability to receive emails on certain events.
- Account log viewable in user account management pages
- Export database. Allows you to export a full dump of keycloak database into an encrypted file. Will help out tremendously to migrate between Keycloak versions.
- Authentication SPI. Allows you to plug in different mechanisms to retrieve and authenticate users.
- Theme support for the admin console and any sent email.
- Per-realm admin console. You can now designate a user within a realm that is an admin of that realm.
- Documented the Admin REST API finally. (Docs still kinda suck here)
- CORS support for Admin REST API
- Support for relative URLs when configuring admin console
- Server configuration file
- Social Only Logins
- Installed application adapter
- Expanded the number of example projects
What’s next? This is the last major feature release of Keycloak. We will now be focusing on performance, clustering, security audits, testing, documentation, and usability for the next few releases. We hope to release 1.0 Final sometime in July.