Search code examples
oauth-2.0single-sign-onkeycloakopenid-connect

Keycloak for IDM


First and foremost, this post doesn't have any intention to strike down any parties as mentioned in my question. In fact, I'm not sure whether i should ask this question to this forum or not, but after some thoughtful considerations i decided to just post it here due to my curiosity.

Shortly speaking, I'm working on IAM platform for one of my customer. I've prepared it using keycloak within a day which also cover custom provider to connect with their legacy user internal database. But I got a pretty shock statement from my customer that they don't trust keycloak since it's free and open source. They only trust commercial products, and they suggested me to go with either forgerock or okta. I have my own way to answer that statement, but I would also like to hear some feedbacks from the experts here with regards to that matter. Thanks in advance.


Solution

  • Maybe the customer concern is that there is no commercial support with Keycloak. It's a very practical concern, eg if you are not available at some future time and all apps are broken when something strange happens after upgrading the Authorization Server.

    Of course on the technical side of things, keep code portable by implementing standards based solutions, so that you can switch providers. Avoid stuff like Keycloak Adapters if they are vendor specific.

    DEPLOYMENT

    As a containerized solution, Keycloak's deployment model supports multi cloud and means you can run in any cloud provider.

    Then again, the Platform as a Service model of some providers is often attractive - no infra to manage and the hope of high availability. With some PAAS providers the trade off may be that there is less control over behavior.

    WHAT ARE THE REAL REQUIREMENTS?

    • Commercial support
    • Guidance on app scenarios
    • High Availability
    • Ease of management
    • Extensibility
    • Portability

    Different customers have different viewpoints and there is no right answer. The usual thing that software architects do is understand their audience, make recommendations, but let the customer decide - they are the boss after all.