[ 
https://issues.apache.org/jira/browse/GUACAMOLE-1239?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17886858#comment-17886858
 ] 

Corentin Soriano commented on GUACAMOLE-1239:
---------------------------------------------

[~vnick] I noticed a problem with openid extension on tomcat start :

 
{code:java}
Oct  4 09:24:16 vm03 server[21227]: 09:24:16.525 [main] DEBUG 
o.a.g.extension.ExtensionModule - Reading extension: 
"00-guacamole-auth-sso-openid.jar"
Oct  4 09:24:16 vm03 server[21227]: 09:24:16.578 [main] DEBUG 
o.a.g.extension.ExtensionClassLoader - Libraries bundled within extension 
"/etc/guacamole/extensions/00-guacamole-auth-sso-openid.jar" have been copied 
to te
mporary directory 
"/var/cache/tomcat/temp/guac-extension-lib-3055119022005830145".
Oct  4 09:24:16 vm03 server[21227]: 09:24:16.583 [main] DEBUG 
o.a.g.extension.ExtensionModule - Reading extension: 
"02-guacamole-history-recording-storage.jar"
Oct  4 09:24:16 vm03 server[21227]: 09:24:16.585 [main] DEBUG 
o.a.g.extension.ExtensionModule - Reading extension: 
"01-guacamole-auth-jdbc-mysql.jar"
Oct  4 09:24:16 vm03 server[21227]: 09:24:16.640 [main] DEBUG 
o.a.g.extension.ExtensionClassLoader - Libraries bundled within extension 
"/etc/guacamole/extensions/01-guacamole-auth-jdbc-mysql.jar" have been copied 
to te
mporary directory 
"/var/cache/tomcat/temp/guac-extension-lib-6115850144200710151".
Oct  4 09:24:16 vm03 server[21227]: 09:24:16.645 [main] INFO  
o.a.g.extension.ExtensionModule - Multiple extensions are installed and will be 
loaded in order of decreasing priority:
Oct  4 09:24:16 vm03 server[21227]: 09:24:16.645 [main] INFO  
o.a.g.extension.ExtensionModule -  - [openid] "OpenID Authentication Extension" 
(/etc/guacamole/extensions/00-guacamole-auth-sso-openid.jar)
Oct  4 09:24:16 vm03 server[21227]: 09:24:16.645 [main] INFO  
o.a.g.extension.ExtensionModule -  - [mysql] "MySQL Authentication" 
(/etc/guacamole/extensions/01-guacamole-auth-jdbc-mysql.jar)
Oct  4 09:24:16 vm03 server[21227]: 09:24:16.645 [main] INFO  
o.a.g.extension.ExtensionModule -  - [recording-storage] "Session Recording 
Storage" (/etc/guacamole/extensions/02-guacamole-history-recording-storage.jar)
Oct  4 09:24:16 vm03 server[21227]: 09:24:16.646 [main] INFO  
o.a.g.extension.ExtensionModule - To change this order, set the 
"extension-priority" property or rename the extension files. The default 
priority of extensio
ns is dictated by the sort order of their filenames.
Oct  4 09:24:16 vm03 server[21227]: 09:24:16.646 [main] DEBUG 
o.a.g.extension.ExtensionModule - [0] Binding AuthenticationProvider 
"org.apache.guacamole.auth.openid.OpenIDAuthenticationProvider".
Oct  4 09:24:16 vm03 server[21227]: 09:24:16.857 [main] ERROR 
o.a.g.extension.ProviderFactory - authentication provider extension failed to 
start: Unable to create injector, see the following errors:
Oct  4 09:24:16 vm03 server[21227]: 1) [Guice/BindingAlreadySet]: Environment 
was bound multiple times.
Oct  4 09:24:16 vm03 server[21227]: Bound at:
Oct  4 09:24:16 vm03 server[21227]: 1  : 
SSOAuthenticationProvider$1.configure(SSOAuthenticationProvider.java:115)
Oct  4 09:24:16 vm03 server[21227]: 2  : 
OpenIDAuthenticationProviderModule.configure(OpenIDAuthenticationProviderModule.java:46)
Oct  4 09:24:16 vm03 server[21227]: Learn more:
Oct  4 09:24:16 vm03 server[21227]:  
https://github.com/google/guice/wiki/BINDING_ALREADY_SET
Oct  4 09:24:16 vm03 server[21227]: 1 error
Oct  4 09:24:16 vm03 server[21227]: ======================
Oct  4 09:24:16 vm03 server[21227]: Full classname legend:
Oct  4 09:24:16 vm03 server[21227]: ======================
Oct  4 09:24:16 vm03 server[21227]: Environment:                        
"org.apache.guacamole.environment.Environment"
Oct  4 09:24:16 vm03 server[21227]: OpenIDAuthenticationProviderModule: 
"org.apache.guacamole.auth.openid.OpenIDAuthenticationProviderModule"
Oct  4 09:24:16 vm03 server[21227]: SSOAuthenticationProvider$1:        
"org.apache.guacamole.auth.sso.SSOAuthenticationProvider$1"
Oct  4 09:24:16 vm03 server[21227]: ========================
Oct  4 09:24:16 vm03 server[21227]: End of classname legend:
Oct  4 09:24:16 vm03 server[21227]: ========================
Oct  4 09:24:16 vm03 server[21227]: 09:24:16.858 [main] DEBUG 
o.a.g.extension.ProviderFactory - 
org.apache.guacamole.auth.openid.OpenIDAuthenticationProvider instantiation 
failed.
Oct  4 09:24:16 vm03 server[21227]: 
java.lang.reflect.InvocationTargetException: null
Oct  4 09:24:16 vm03 server[21227]: #011at 
java.base/jdk.internal.reflect.NativeConstructorAccessorImpl.newInstance0(Native
 Method)
Oct  4 09:24:16 vm03 server[21227]: #011at 
java.base/jdk.internal.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:62)
Oct  4 09:24:16 vm03 server[21227]: #011at 
java.base/jdk.internal.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)
Oct  4 09:24:16 vm03 server[21227]: #011at 
java.base/java.lang.reflect.Constructor.newInstance(Constructor.java:490)
Oct  4 09:24:16 vm03 server[21227]: #011at 
org.apache.guacamole.extension.ProviderFactory.newInstance(ProviderFactory.java:59)
Oct  4 09:24:16 vm03 server[21227]: #011at 
org.apache.guacamole.extension.AuthenticationProviderFacade.<init>(AuthenticationProviderFacade.java:90)
Oct  4 09:24:16 vm03 server[21227]: #011at 
org.apache.guacamole.extension.ExtensionModule.bindAuthenticationProvider(ExtensionModule.java:234)
 {code}
In OpenIDAuthenticationProviderModule.java, I removed line 46 to avoid this 
issue but I don't know if this workaround is the right solution :
{code:java}
46        bind(Environment.class).toInstance(environment); {code}
Can you check that please?

 

> Make usernames case insensitive in DB 
> --------------------------------------
>
>                 Key: GUACAMOLE-1239
>                 URL: https://issues.apache.org/jira/browse/GUACAMOLE-1239
>             Project: Guacamole
>          Issue Type: Improvement
>          Components: Documentation, guacamole-auth-jdbc, 
> guacamole-auth-jdbc-mysql, guacamole-auth-jdbc-postgresql, guacamole-auth-ldap
>            Reporter: Magnus Lübeck
>            Assignee: Nick Couchman
>            Priority: Minor
>             Fix For: 1.6.0
>
>
> [~cameronp] already summarized this well in GUACAMOLE-404:
>  
> Quote:
> "We have ldap auth working for us via active directory. We have issues with 
> case senstivity around logins. For example most users have no idea if their 
> username is
> User.Name
> or USER.NAME or whatever. - active directory doesnt care about case, and 
> neither does ldap authentication.
> But when they log in to guac and do not match the case of their login 
> exactly, guac allows them to log in, but they just don't have any machines to 
> connect to.
> Wondering if it could be made to either fail the logins if it doesn't match 
> correct case, or ignore case when matching the username in the local guac db."
>  
> So, when I ran across GUACAMOLE-404, and this email 
> [https://www.mail-archive.com/dev@guacamole.apache.org/msg03715.html] where 
> [~vnick] discuss this topic in depth, I realized that I need to chip in my 
> point of view. In the documentation it is mentioned that one can restrict 
> user login, to avoid confusion that a user can log in per LDAP but not have 
> any connections, 
> http://guacamole.incubator.apache.org/doc/gug/jdbc-auth.html#jdbc-auth-restrict.
> I am not sure where I would start lobbying for either asking for a default 
> case insensitive username management, or the option to make the 
> Postgresql/Mysql/etc usernames case insensitive. I would happily chip in 
> time, money, or other stimulus to bring this discussion further.
>  
> This writeup from google is a text I have visited from time to time, as I 
> think it is well written and makes many points in a clear manner.
> [https://cloud.google.com/blog/products/gcp/12-best-practices-for-user-account]
>  
> Point 11: Make user IDs case insensitive
> Quote:
> "Your users don't care and may not even remember the exact case of their 
> username. Usernames should be fully case-insensitive. It's trivial to store 
> usernames and email addresses in all lowercase and transform any input to 
> lowercase before comparing.
> Smartphones represent an ever-increasing percentage of user devices. Most of 
> them offer autocorrect and automatic capitalization of plain-text fields. 
> Preventing this behavior at the UI level might not be desirable or completely 
> effective, and your service should be robust enough to handle an email 
> address or username that was unintentionally auto-capitalized."
>  
> I had a very long discussion about this with a work colleague today. He has 
> to support a group of customers, of which we get a list of CAPITALIZED 
> usernames to import into our Active Directory domain controller. These users 
> are quite used to work in an environment where they don't have to care. I 
> have observed our customers log in and many users either log in with their 
> username in lowercase, some log in with their username's first letter 
> CAPITALIZED. Very rarely do they log in with all caps.
>  
> To make matters a bit worse, is that we integrate Guacamole with oauth2_proxy 
> in front of it. Oauth2_proxy sends the users first to our KeyCloak 
> installation, which happily authenticates the user with any permutation they 
> choose to enter. Since we do want to have the users log into the RDP servers 
> with their own credentials they are asked to log in again (a 2nd time, since 
> we don't get the password through otherwise). It is very confusing for our 
> users that they can log into KeyCloak but not into Guacamole.



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

Reply via email to