On February 8, 2025 7:40 am, Thomas Skinner wrote: >> do we want to mangle the group names to include the OIDC-realm name, >> like we do for LDAP/AD syncing? that way it is more clear that those >> groups originated from OIDC.. downside is that you can't use a group >> shared between OIDC and other realms.. > > More on this: it looks like in LDAP/AD sync, the group is suffixed > with `-$realm`, which does meet the requirements of the existing regex > character requirements for groups. We could do the same thing with the > OIDC groups. I will add that suffix in as the option to be consistent. > > ----- > > On a similar but separate note, I think that it may be more clear of > where groups come from to have them optionally suffixed with something > like `@$realm` like is already done for users. The verify function for > groups could be adjusted to validate on a regex that makes the suffix > optional and validates it as `group_regex@realm_regex`. The downside > of this change is that it would break any existing groups or the > module would need to be adjusted to continue to support or migrate the > groups with the old suffix. An upside of this change is eliminating > inadvertent group collisions. For example:
groups are not really scoped to a realm though, we only did this "soft-namespace" for the sync feature to avoid accidents (similar to the one you describe below). > Consider we have 2 realms: AD/LDAP "ad-admins" and OIDC "oidc". Realm > "ad-admins" suffixes groups automatically and realm "oidc" is > configured to not suffix. Realm "ad-admins" contains a group > "privileged" and a realm "oidc" claim sends a group > "privileged-ad-admins". > > With the existing configuration, the group "privileged" from realm > "ad-admins" becomes "privileged-ad-admins" in PVE. The user with the > group "privileged-ad-admins" in the OIDC claim is then granted access > to this group on login. This could lead to potential erroneous group > membership because the group names could overlap. yes, this is why I think OIDC groups should also always add the suffix, just like LDAP/AD. that way, any group name collision must stem from a manually created group containing the suffix (which can still happen, but is a lot less likely than without). > > If the suffix was changed to include a character that would not exist > in the group name (e.g. "@"), then it would be impossible to have this > overlap. Additionally, this suffixing option could be extended to any > other realm type that could introduce groups into PVE. I can see > scenarios where having the option to enable/disable group suffixes for > all realms would be useful. If the admin controls all the > authentication services (or at least can ensure no inadvertent > collisions would occur), the suffix is not needed. Non-suffixed group > names could also simplify ACL delegation. If the admin cannot > guarantee inadvertent collisions in group names, then suffixes that do > not include a valid group character would be necessary to prevent > collisions. > > If PVE is interested in moving towards this, I'd be happy to start > authoring a patch to support it. If nothing else, I can file a bug and > we can continue discussion there. I think this would be a very hard transition given that user.cfg contents are at the very core of PVE - and it would break valid use cases like pre-configuring groups that are part of a AD/LDAP-sync or OIDC-autocreation scope. but if other people think this is worth exploring, I am of course not objecting to further discussing it :) _______________________________________________ pve-devel mailing list pve-devel@lists.proxmox.com https://lists.proxmox.com/cgi-bin/mailman/listinfo/pve-devel