Thanks for the assistance.



Sent with Proton Mail secure email.

On Friday, November 22nd, 2024 at 10:49 AM, Nick Couchman <vn...@apache.org> 
wrote:

> On Fri, Nov 22, 2024 at 9:18 AM viktor_krumm viktor_kr...@proton.me.invalid
> 
> wrote:
> 
> > Thanks for the breakdown. I suspected the issue was between the
> > interaction of the LDAP module and the SSO component, so that is not
> > surprising. I am not married to LDAP as a source of AAA, so I can trim
> > that from the flow.
> > 
> > I did get Keycloak/SSO working easy with Guacamole connections in JBDC.
> > It seems like I need to manage the two "components", Authentication and
> > Authorization in different modules then. Outside of trying to do custom
> > crafted JWKS tokens/Encrypted JSON - I don't have the knowledge to try and
> > do that kind of custom setup.
> > 
> > My understanding of SSO/JBDC together is that you need 2 accounts in 2
> > databases. 1 account on the SSO side, 1 account on the JBDC side, with the
> > email field used as the link. Is that the case?
> 
> You don't necessarily need an account on the JDBC side - you can manage
> access with group membership, only, if you want, but you can create an
> account on the JDBC side, as well, if you like, particularly if you want to
> assign permissions at a user-level. The matching of SSO account to JDBC
> account is done by the username - if the username returned by SSO matches
> one in JDBC, those accounts will be considered the same, and the
> permissions from JDBC will apply to the user who is logging in.
> 
> In the current release (1.5.5), the matching of usernames is done in a
> case-sensitive fashion, so just something to be aware of. The good news is
> that SSO systems are usually pretty consistent about returning usernames in
> the same case, so you shouldn't run into much issue with SSO + JDBC in that
> regard. In version 1.6.0 we're introducing the ability to treat usernames
> case-insensitively, which will alleviate issues with systems like LDAP
> where users might enter their username in different cases.
> 
> Finally, there's an option you can enable in the guacamole.properties file
> for the JDBC module that will auto-create JDBC accounts for any user that
> is logged in successfully from another module. If you enable this, you'll
> get JDBC accounts to match any of your SSO accounts, which you can then use
> to assign permissions or group membership. See:
> https://guacamole.apache.org/doc/gug/jdbc-auth.html#auto-creating-database-users
> .
> 
> > Either way, how do you assign connections in SSO then? Some form of group
> > memberships? I do not see in the documentation where that sort of setup is
> > described, though I could have missed it.
> 
> You have several options for this:
> * Create matching users in JDBC (either manually or auto-created) and
> assign them connections and system permissions individually.
> * Create matching users in JDBC (either manually or auto-created), create
> groups in the JDBC module, and then add the users to the groups and assign
> permissions to the groups.
> * Configure your SSO module to return user groups, and then create matching
> groups in the JDBC module, and assign the permissions to those groups. SSO
> users who log in and have one of the groups configured in the JDBC module
> will get the permissions of those groups. In this way, you can avoid having
> to create JDBC users at all for your SSO users.
> 
> -Nick

Reply via email to