Segnalazione #294
Problema con password utente e caratteri speciali
0%
Description
Se un utente ha come password qualcosa contenente caratteri speciali, tipo "è", poi l'utente non riesce ad autenticarsi sul proxy.
Verifica il passaggio di credenziali verso squid, o in alternativa valutare una limitazione ai caratteri non ascii7 come valore di password tramite PAM e Octonet.
Rilevato nella versione precedente di FUSS, prima verificare che si riproduca anche con la versione 8.x
Related issues
Associated revisions
History
Updated by Simone Piccardi over 7 years ago
- Assignee changed from Simone Piccardi to Christopher R. Gabriel
Dalla documentazione di squid:
# # "utf8" on|off # HTTP uses iso-latin-1 as character set, while some authentication # backends such as LDAP expects UTF-8. If this is set to on Squid will # translate the HTTP iso-latin-1 charset to UTF-8 before sending the # username & password to the helper.
aggiungendo a /etc/squid3/squid.conf
la riga:
auth_param basic utf8 on
l'autenticazione funziona anche con password contenenti lettere accentate tipo "è" (verifica manuale puntando firefox al proxy con la configurazione cambiata a mano), la modifica al fuss-server è in 69fc6e9.
Updated by Christopher R. Gabriel over 7 years ago
- Assignee changed from Christopher R. Gabriel to Simone Piccardi
Bene, se e' gia' nel repository fate pure il pacchetto.
Updated by Simone Piccardi over 7 years ago
- Assignee changed from Simone Piccardi to Elena Grandi
Elena, lo passo a te per la realizzazione della nuova versione del pacchetto con le altre tue modifiche in attesa.
Updated by Elena Grandi over 7 years ago
- Assignee changed from Elena Grandi to Simone Piccardi
Ho verificato la versione attuale di fuss-server su un server locale esistente: in /etc/squid3/squid.conf viene effettivamente aggiunta la riga in questione, ma ho fatto prove con una password contenente il carattere ü
e l'auth continua a non funzionare
Updated by Simone Piccardi over 7 years ago
- Status changed from Nuovo to In elaborazione
- Assignee changed from Simone Piccardi to Elena Grandi
Le mie verifiche sono state per password con caratteri come è ed ü che con opzione disattiva non vengono riconosciute e con opzione attiva invece funzionano.
Ho provato con ŭ (ottenuta come compose u u) e con questa non funziona, sospetto un problema di codifica a questo punto nel passaggio della password ad LDAP (impostazione fatta nel mio caso con smbldap-passwd
).
Updated by Elena Grandi over 7 years ago
- Related to Segnalazione #311: Il cambio di password con caratteri non-ascii non salva il valore corretto added
Updated by Elena Grandi over 7 years ago
- Assignee changed from Elena Grandi to Christopher R. Gabriel
Le modifiche presenti sul fuss-server sono incluse in fuss-server 8.0.14-1, appena pubblicata sul repo.
Non ho verificato che risolvessero anche da me il problema.
Updated by Christopher R. Gabriel over 7 years ago
- Status changed from In elaborazione to Commenti
- Assignee changed from Christopher R. Gabriel to Simone Piccardi
Riassegno a Simone per chiusura, visto che la verifiche le aveva fatte lui.
Updated by Christopher R. Gabriel over 7 years ago
Provato con 'ciào' come password, non risolve.
Updated by Simone Piccardi over 7 years ago
- Assignee changed from Simone Piccardi to Christopher R. Gabriel
Ho installato l'ultima versione (fuss-server-jessie-amd64-201706211104.iso) e una volta creato il fuss-server ho fatto un test (firefox nella macchina virtuale) mettendo 127.0.0.1:8080 come proxy.
Ho creato l'utente prova2 con password pìppò usando gli smbldap-tools (smbldap-useradd e smbldap-passwd) e mi sono regolarmente autenticato sia al login (con su da un altro utente ordinario) che nel proxy.
Ho provato a creare da octonet l'utente prova3 con password ciào ma ho ottenuto il seguente errore nel browser:
ValueError: 'charmap' codec can't encode character '\xc0' in position 2: character maps to <undefined>
Questo l'errore in /var/log/octofuss/octofussd.log
.
2017-06-26T19:33:30+0200 [stderr#error] Traceback (most recent call last): 2017-06-26T19:33:30+0200 [stderr#error] File "/usr/lib/python3/dist-packages/octofuss/xmlrpc.py", line 155, in _wrap_call 2017-06-26T19:33:30+0200 [stderr#error] res = callable(*args) 2017-06-26T19:33:30+0200 [stderr#error] File "/usr/lib/python3/dist-packages/octofuss/tree.py", line 62, in set 2017-06-26T19:33:30+0200 [stderr#error] return self.lset(_tolist(path), value, **kw) 2017-06-26T19:33:30+0200 [stderr#error] File "/usr/lib/python3/dist-packages/octofuss/tree.py", line 235, in lset 2017-06-26T19:33:30+0200 [stderr#error] return tree.lset(path[1:], value, **kw) 2017-06-26T19:33:30+0200 [stderr#error] File "/usr/lib/python3/dist-packages/octofuss/tree.py", line 235, in lset 2017-06-26T19:33:30+0200 [stderr#error] return tree.lset(path[1:], value, **kw) 2017-06-26T19:33:30+0200 [stderr#error] File "/usr/lib/python3/dist-packages/octofuss/tree.py", line 556, in lset 2017-06-26T19:33:30+0200 [stderr#error] return el.lset(path[1:], value) 2017-06-26T19:33:30+0200 [stderr#error] File "/usr/lib/python3/dist-packages/octofuss/tree.py", line 406, in lset 2017-06-26T19:33:30+0200 [stderr#error] if sub: return sub.__set__(self, value) 2017-06-26T19:33:30+0200 [stderr#error] File "/usr/share/octofussd/plugins/usersplugin/common.py", line 399, in setPassword 2017-06-26T19:33:30+0200 [stderr#error] self.data.sambaLMPassword = passlib.hash.lmhash.encrypt(value) 2017-06-26T19:33:30+0200 [stderr#error] File "/usr/lib/python3/dist-packages/passlib/utils/handlers.py", line 558, in encrypt 2017-06-26T19:33:30+0200 [stderr#error] self.checksum = self._calc_checksum(secret) 2017-06-26T19:33:30+0200 [stderr#error] File "/usr/lib/python3/dist-packages/passlib/handlers/windows.py", line 62, in _calc_checksum 2017-06-26T19:33:30+0200 [stderr#error] return hexlify(self.raw(secret, self.encoding)).decode("ascii") 2017-06-26T19:33:30+0200 [stderr#error] File "/usr/lib/python3/dist-packages/passlib/handlers/windows.py", line 92, in raw 2017-06-26T19:33:30+0200 [stderr#error] secret = secret.upper().encode(encoding) 2017-06-26T19:33:30+0200 [stderr#error] File "/usr/lib/python3.4/encodings/cp437.py", line 12, in encode 2017-06-26T19:33:30+0200 [stderr#error] return codecs.charmap_encode(input,errors,encoding_map) 2017-06-26T19:33:30+0200 [stderr#error] UnicodeEncodeError: 'charmap' codec can't encode character '\xc0' in position 2: character maps to <undefined> 2017-06-26T19:33:30+0200 [stdout#info] Exception <class 'UnicodeEncodeError'> is not whitelisted 2017-06-26T19:33:30+0200 [stdout#info] Exception <class 'UnicodeError'> is not whitelisted
Ho cambiato password all'utente precedente sempre con smbldap-passwd (usando ciào), e di nuovo mi sono autenticato correttamente sul proxy che sulla console (login e su da utente diverso).
Tutte password sono state immesse componendole sul terminale e poi passandole ai comandi, ed a firefox, con un taglia e incolla via pulsante centrale del mouse.
Updated by Christopher R. Gabriel over 7 years ago
- Assignee changed from Christopher R. Gabriel to Simone Piccardi
Pubblicato nuovo octofussd che risolve il problema, vedi #311
Updated by Simone Piccardi over 7 years ago
- Status changed from Commenti to Chiuso
Confermo il corretto funzionamento con le versioni correnti dei pacchetti, octonet non da più errori ed l'utente viene creato con la password indicata.
Adding forced latin1 -> utf8 conversion for LDAP helper use.
refs: #294