Trevor Kuhlengel created GUACAMOLE-2224:
-------------------------------------------

             Summary: SAML-authenticated users cannot see connections inherited 
through parent group membership
                 Key: GUACAMOLE-2224
                 URL: https://issues.apache.org/jira/browse/GUACAMOLE-2224
             Project: Guacamole
          Issue Type: Bug
          Components: guacamole-auth-jdbc, guacamole-auth-sso-saml
    Affects Versions: 1.6.0
         Environment: - OS: Ubuntu 24.04
- Guacamole version: 1.6.0  
- Authentication: SAML (Azure AD as IdP) + guacamole-auth-jdbc-mysql  
- Database: MySQL 8.0  
- Java: 21  
            Reporter: Trevor Kuhlengel


h2. Summary

When a user authenticates via SAML SSO, group membership claims from the 
identity provider (e.g. Azure AD) are matched against group names in the 
Guacamole database. If the matched group is a *child* of one or more parent 
groups in the database, the user can only see connections and connection groups 
that are granted directly to that child group. Connections and connection 
groups granted to any *ancestor* group in the hierarchy are invisible to the 
user, even though database-native users who are members of the same child group 
see the full inherited permission set.

h2. Steps to Reproduce

# Configure Guacamole with the SAML SSO extension and a JDBC (MySQL/PostgreSQL) 
authentication extension.
# In the database, create a group hierarchy, e.g.:
## {{parent-group}} (has READ permission on a set of connections)
### {{child-group}} (member of {{parent-group}}) with a name matching the SAML 
group claim asserted by the IdP (sometimes the UUID of the group in the IdP, 
sometimes a friendly name depending on configuration).
# In the identity provider, configure a group claim that asserts the user is a 
member of {{child-group}}.
# Log in as a SAML-authenticated user who receives the {{child-group}} claim.

*Expected:* The user sees all connections and connection groups that 
{{parent-group}} has READ permission on, because {{child-group}} inherits those 
permissions through group membership.

*Actual:* The user sees no connections. Only connections granted directly to 
{{child-group}} (with no parent group involved) are visible.

h2. Additional Context

* Database-native users who are manually added as members of {{child-group}} 
via the Guacamole admin UI see the full inherited permission set correctly.
* The issue is specific to externally-asserted group memberships via SAML — 
groups that are assigned to a user by an SSO provider rather than through a 
direct database membership record.
* The user's effective group set as reported by the SAML extension contains 
only the raw claim identifier(s), with no expansion to include ancestor groups.
* The problem manifests in all permission-guarded queries that control the 
connection tree display (what appears in the home screen connection list), even 
when the user may have other permissions that indicate their groups are being 
partially resolved.
* No error is shown to the user; the home screen simply presents an empty 
connection list.



--
This message was sent by Atlassian Jira
(v8.20.10#820010)

Reply via email to