[keycloak-dev] roles vs. groups

Bill Burke bburke at redhat.com
Tue Nov 3 16:08:12 EST 2015



On 11/3/2015 4:04 PM, Bill Burke wrote:
> Stian and I were having a conversation about roles, keycloak composite
> roles, vs. groups.  It seems that groups and roles are often confused
> and one can be equivalent to the other.  One common thread is the following:
>
> Groups are user centric. Roles are permission centric.
>
> "A group is a means of organising users, whereas a role is usually a
> means of organising rights."
>
> So, keycloak composite roles would be a way to organise rights for a set
> of applications.  For example, you might have a set of sales services,
> each sales service has an "admin" and "user" role.  You'd define a
> "sales user" and "sales admin" role which would be a composite
> containing the "admin" and/or "user" role of each sales service.
>
> Conversely, a keycloak group would provide a way to organize a set of
> users.  You would create a group called "sales associates" add members
> to it and then assign the roles members of the group can partake.
>
> Really, in Keycloak with composite roles, you can have a role act as a
> group.  So, while groups and roles are logically the sameAdding the
> concept of a group though provides distinction and clarity without
> overloading the concept of a composite.
>
> So, given that, Role mapping tab for Groups and Users would be named
> "Permissions" instead of "Role Mappings".  Each role would have a
> "Rights" tab instead of the "Composite Role" concept we have now.  That
> might bring more clarity?  Or will it just confuse concepts that are
> going to be introduced by Pedro and his Authz stuff?
>
> I'm also thinking that a Groups and Role Namespaces could be combined.
> So a group would have a set of "Permissions" (role mappings) that are
> automatically granted to user members.  The group could also define a
> set of "Roles" that apply to this group.  So "Sales" could have a
> "Manager" role.  This "Manager" role would be a composite role that
> assigns additional permissions.  This would also allow us to define
> default roles for
>

Whoops, I didn't finish....

Combining Groups and Role Namespaces would allow us to define built in 
roles for the Group that when assigned would allow management of the 
members of the group.


-- 
Bill Burke
JBoss, a division of Red Hat
http://bill.burkecentral.com


More information about the keycloak-dev mailing list