That’s quite interesting nice work, I’ll definitely give it a try, as I’m currently building a mutli-tenants saas and was looking at oss iam tools such as keycloak to solve my identity/auth. requirements, but after several readings on the topic, it seems like its ootb multi-tenants support is far from ideal, which has made me start looking at other oss iam solutions.
@xgp, one of the main limitation that I’ve read about keycloak multi-tenants support is with the 1 tenant per realm approach recommendation where it seems like after hitting around 400 tenants/realms, keycloak becomes unusable / very slow, I’m sure you’re aware…
(I’m not even evaluating the other keycloak multi-tenants solution/suggestion of 1 realm total and then1 tenant per group mapping, it feels too much hacky to me and also comes with huge limitations, such as I believe not able to map a very specific external org./tenant IDP to the mapped tenant/group in keycloak, which is acting as an identity broker, that is, a very common requirement in the multi-tenants b2b industry…)
Having said all that, I would have a few questions for you re that extension:
Q1- Do you know roughly how many tenants/organizations your extension can support, before keycloak starts to fall on its knees? If you don’t know, perhaps you know a minimum number that you know for sure still works pretty well, from the current production projects that you briefly mentioned above that are using your extension? (else, perhaps it would be interesting to run some kind of quick load/perf. testing about it, similar to what this guy has done here around number of created ‘realms’, but here in the case of this extension around ‘organizations’)
Q2- Can you confirm my below understanding re your explanation:
- Identity Providers provide a subset of the Keycloak IdP APIs that allows Organization administrators to manage their own IdP.
Does this allow me to configure an external IDP for a given organization/tenant only? Is this purely a UI/API admin configuration feature addition, or is there anything else I’m missing with this? Everything else is same as with keycloak ootb functionalities around external identities configs? (e.g., same protocols supported saml/oidc, email/domain mapping, idp-initiated supported, etc)
Q3- What is your docker images release strategy? e.g., I see that you released for instance latest keycloak version 20.0.3 (currently) patched with your extension the same day keycloak made the same version available (quite impressive!), going forward do you plan on always trying to keep up with their releases in a matter of days/weeks/months or even sometimes skip versions etc? I’m just trying to see what to expect if I start using your extension and depend on it for years to come what it may looks like… (obviously, no one has a crystal ball I understand that, so perhaps what are your short/mid term goals here…).
Q4- In preparation for the worst to manage expectations ahead of time, prior to selecting this nice extension, I’m wondering what would be a great migration strategy, if this extension ever stops being released/maintained? Would there be an easy way you think to extract all the custom data that this extension introduces (e.g. the new entities and relations to new or existing/ootb entities/models) by api? If yes, then I suppose one strategy could be to get a new realm created for each extracted organization (and then all the rest should follow, e.g. clients, users, roles, etc), would that make some sense to you?
Q5- Is this discourse group the best place to ask you any other potential questions about your extension, or is there any other ways / location that you prefer (…as I am seriously considering using it, especially since it seems to be supporting the current latest keycloak version at time of this writing, e.g. 20.0.3, and through docker) ?
many thanks!