Nick Couchman,
>
>  * You can set up the database extensions to auto-create users when they
> are successfully authenticated by another module:
> https://guacamole.apache.org/doc/gug/jdbc-auth.html#auto-creating-database-users

Have no idea how I missed this 😱 It seems to answer my question completely.

I'm not sure exactly what you mean when you say that "connection
> provisioning is not supported"
>
You are correct. I chose the wrong word. I was thinking about (grafana,
clickhouse postgres)-like provisioning, when the xml (yaml/json) is put in
a specific directory of a pod and changes are monitored by the application.
This basically allows git to use the source of config files and easily
mount them via a common helm mechanism.
But thank you very much. Indeed REST API and DB operations are pretty
simple alternative options. GUACAMOLE-926 sounds tempting.

пт, 13 сент. 2024 г. в 16:53, Nick Couchman <vn...@apache.org>:

> On Fri, Sep 13, 2024 at 9:36 AM Richard Hawkins <
> richard.hawk...@medctrbarbour.org> wrote:
>
>> And on further notice. You don't want to use the database internally in
>> guacamole. I don't know if that's possible it might be. Sorry I couldn't
>> help on that.
>>
>> ------------------------------
>>
>> You can definitely apply it to active directories. You can even set up
>> groups at one time I had this working and it worked really well, but I
>> wanted MFA authentication so I removed all the active directories and went
>> strictly with MFA. I think I read somewhere I couldn’t use active directory
>> and MFA at the same time. There’s probably better solutions now that was a
>> couple of years ago. I’ve been using guacamole for about five years or so.
>> It works really well once you got going good.
>> ==
>> I am testing Apache Guacamole with the purpose to deploy it in k8s.
>> Deploying it locally and reading the manual I was not able to answer the
>> questions arised.
>> Here:
>> https://guacamole.apache.org/doc/gug/configuring-guacamole.html
>> Is said something like you have to look into a specific auth plugin on
>> how to manage users.
>> In auth plugin guides I can't find any information which would point how
>> it creates (or not creates the users).
>> This is the reason why I am forced to ask community/maintainers for help
>> to understand the best way to go. We have two requirements:
>> 1. We don't want to maintain the user list on the guacamole side. We use
>> Active Directory. We have Pomerium in k8s which is able to proxy HTTP
>> header with user name to Apache Guacamole. Or we can use OpenID. But the
>> biggest issue is if Guacamole still needs the list of users on it's side?
>> Or will it login any user? Pomerium has AD Groups based access. So, if
>> Pomerium allows proxy request to Guacamole, then this user should have the
>> ability to sign in. In simple words, the question is: What auth we can use,
>> so Apache Guacamole would be able to login the user without having the list
>> of users in its own filesystem/db.
>>
>
> The answer is kind of - if you're using a database to store connections,
> you'll also need to store information on permissions, which means storing
> users and groups. HOWEVER, we have a couple of things that should make this
> much easier to manage so that you don't have to worry as much about
> maintaining the authentication information in the database:
> * You can set up the database extensions to auto-create users when they
> are successfully authenticated by another module:
> https://guacamole.apache.org/doc/gug/jdbc-auth.html#auto-creating-database-users
> * You can use group membership in your authentication mechanism (LDAP,
> OpenID, SAML, etc.), and match up those groups on the Guacamole DB side.
> This is specifically documented for LDAP + Database integration, but the
> overall principles apply to Database + SAML/OpenID/RADIUS/CAS/etc.:
> https://guacamole.apache.org/doc/gug/ldap-auth.html#associating-ldap-with-a-database
> .
>
> Using those two items, you should be able to do things like create a group
> in Guacamole and assign it permissions, and then any users who are members
> of that same group in AD will get those permissions without having to
> specifically create them or assign them individual permissions. Hopefully
> this makes sense, but feel free to post back if you have further questions.
>
>
>> 2. The connection provisioning is not supported as far as I can see. We
>> could create a k8s job which will be retrieving the list of targets from
>> our internal systems. Then creating connections via REST API. Is this the
>> only possible solution in our case?
>>
>>
> I'm not sure exactly what you mean when you say that "connection
> provisioning is not supported" - it certainly is supported, through the
> following methods:
> * Manually enter connections on the Guacamole interface. Obviously if you
> have a lot of connections, this could take a long time.
> * Use the REST API (sorry, we don't have very good documentation for that
> at the moment) and script or automate the provisioning of connections from
> some system into the Guacamole REST API.
> * If you're using the database for storing connection information, you can
> also insert the data directly into the database, so you can automate that
> from some other system of record, as well, and just manually put the
> information into the underlying DB:
> https://guacamole.apache.org/doc/gug/jdbc-auth.html#modifying-data-manually
> .
> * The JSON authentication extension lets you do some cool stuff with
> authenticating users from another system and providing their connections
> via encrypted JSON at the time of authentication, allowing you to use
> Guacamole as a remote access system without having to maintain any
> connection, user, group, etc. information within Guacamole:
> https://guacamole.apache.org/doc/gug/json-auth.html.
> * If you're adept at Java coding, or like a good challenge, you can also
> write a custom extension that queries your system of record and presents
> connections to users based on that.
> * Finally, version 1.6.0 of Guacamole, when it is released, will include a
> bulk import function that allows importing connections from a CSV, JSON,
> and/or YAML file. This will be available both via the management GUI and
> the REST API: https://issues.apache.org/jira/browse/GUACAMOLE-926.
>
> -Nick
>

Reply via email to