Replies: 6 comments
-
|
A common requirement across different kind of groups (Organization, Workspase, Project, ...): Before getting more specific how these groups like Organization, Workspace or project, it would be helpful to control access in a way, that
Context should be selected by client and/or user at authorization time which then results in an access token just for this context (= one specific group). How to manage and store who has access? |
Beta Was this translation helpful? Give feedback.
-
|
Would this also enable functionality like this plugin https://github.com/sventorben/keycloak-home-idp-discovery ? We use it in a project and it would be a great addition to standard Keycloak. |
Beta Was this translation helpful? Give feedback.
-
|
Would really appreciate this feature! I think it would be a great addition for keycloak to allow different organizations / groups with their own user management permissions within one keycloak realm. So a big +1 from my side π |
Beta Was this translation helpful? Give feedback.
-
|
That's very interesting, and promising. I was about to possibly write my own keycloak spi extension (..and add support for multi-tenancy + multi-workspaces/teams), for a multi-tenants saas project that I'm working on. Perhaps I don't need as many things supported as what has been highlighted here (at least not for day 1 / mvp), however I see a lot of similarities between the extension I had in mind and current initiative, so I thought of sharing my high level game plan for this upcoming extension, if that can help current initiative a bit. At this point, I'm still at the point of evaluating if it's worth developing such extension, or simply going with alternative authn/authz options, which are coming more and more with such saas-related multi-tenants offering (..and so, I really think that it would be a great time for keycloak to support that asap, within one single realm to avoid duplication of resources across realms, among many other multi-realms solution limitations or pain-points). One player that I had in mind was Zitadel for instance, with their [ 1 Organization to * Projects ] multi-tenancy + multi-workspaces concept. I know Auth0 also has a concept of multiple Organizations, probably like a few other alternatives, but they don't have a free/oos option like keycloak and Zitadel has. Anyhow, here's how I was planning to extend keycloak: EXISTING / KC OOTB:(among many other ootb kc features, but those are pertinent to the extension items listed later down below...)
NEW / KC EXTENSION:
Results of those extension points, offering some great [SaaS] multi-tenants abilities:
Known Limitations for mvp:
|
Beta Was this translation helpful? Give feedback.
-
|
Looks like most of this is already implemented here: https://github.com/p2-inc/keycloak-orgs |
Beta Was this translation helpful? Give feedback.
-
|
@stianst another angle to this would be how this could be used to created underlying digital trust of organisations within and across realms by implementing this to aligned with standards such as OpenID Connect Federation 1.0 |
Beta Was this translation helpful? Give feedback.
Uh oh!
There was an error while loading. Please reload this page.
Uh oh!
There was an error while loading. Please reload this page.
-
Group options
Organization Groups
Context Groups
Client context
During an authentication request a client or the user is required to select the context if the user is associated with more than one context.
Clients can have the context scope as required or optional.
Clients select context with the context scope (name should be configurable), for example:
/auth?context=<group-name>(parameterized scope basically, canβt remember the syntax so this could be wrong)If the context scope is required, or the client doesnβt specify the value of the parameterized scope the following will happen:
User account selection
During login we need to know the organization group to apply the correct IdP and authentication policy.
Logic for looking up users by email ([email protected])
** User enumeration is an issue here, but that is an issue regardless for any realms that have self-registration enabled
** This should be a feature enabled at the realm level though
Ability to look up users with organization aware lookup (#, for example stian#redhat.com)
Clients and groups
Weβll want to be able to associate clients (service accounts and 3rd party clients) with organizations. For service accounts that could be handled by adding the service account user to a group. For other client types we will also want to be able to associate them with a group.
This allows us to put clients into a group, which allows us to allow some users to manage clients in a specific group only.
Roles
Role namespaces would allow us greater flexibility to associate roles with different things. For example:
It would also open up the ability to share a group of roles across multiple clients, as a client could default to using
clients/<client-id>namespace, but could be configured to a different role namespace.We can also do smart stuff around flattening roles into tokens by removing the full namespace, parts of it, or including the full namespace. With a new role mapper we can have a more consistent/clean layout of roles in tokens without breaking backwards compatiblity:
Beta Was this translation helpful? Give feedback.
All reactions