OpenCloud 7.4.0~ynh1 – lien public avec mot de passe systématiquement refusé (401)

What app is this about, and its version: OpenCloud 7.4.0~ynh1
What YunoHost version are you running: YunoHost 12.1.40.1
What type of hardware are you using: Virtual machine

Describe your issue

Bonjour,

Je rencontre un problème avec les liens publics protégés par mot de passe dans OpenCloud installé via YunoHost.

Précision : j’ai réalisé les tests et préparé ce message avec l’aide d’une IA. Les commandes et résultats ci-dessous proviennent bien de mon installation, mais le diagnostic proposé a été construit avec son aide. Il est donc tout à fait possible que certaines de nos interprétations soient erronées.

Configuration :

YunoHost sur Debian 12
OpenCloud : 7.4.0~ynh1
OpenCloud installé sur un sous-domaine dédié en HTTPS
certificat Let’s Encrypt
reverse proxy Nginx géré par YunoHost

Problème :

Les liens publics sans mot de passe fonctionnent normalement.

En revanche, lorsque je crée un lien public protégé par un mot de passe conforme aux exigences affichées par OpenCloud (8 caractères minimum, majuscule, minuscule, chiffre et caractère spécial), le mot de passe est systématiquement refusé.

J’ai reproduit le problème en navigation privée et depuis un autre navigateur.

Vérifications effectuées

Le lien public lui-même semble correctement créé et reconnu. Lors de l’accès au partage, les logs OpenCloud montrent notamment :

GET /s/
status=200

OpenCloud retrouve ensuite le partage public :

skipping auth check for: /dav/public-files/
get public share by token

mais l’accès WebDAV aboutit à :

PROPFIND /dav/public-files/
status=401

Dans les outils de développement de Firefox, j’ai également vérifié que la requête correspondant au partage protégé contient :

Authorization: Basic …

Je ne reproduis bien entendu pas la valeur de cet en-tête.

J’ai vérifié la configuration Nginx YunoHost avec :

sudo grep -nEi “authorization|auth|remote” /etc/nginx/proxy_params_with_auth

et elle contient notamment :

proxy_set_header Authorization $http_authorization;

Côté configuration OpenCloud, j’ai :

PROXY_ENABLE_BASIC_AUTH=true

ainsi que :

WEBDAV_CORS_ALLOW_HEADERS=[Authorization Origin Content-Type Accept X-Requested-With X-Request-Id Cache-Control]

J’ai enfin recherché une éventuelle configuration locale relative à la limitation des tentatives de mot de passe :

sudo grep -RniE “publiclink|password.*attempt|brute|throttle|rate”
/home/yunohost.app/opencloud/config
/etc/yunohost/apps/opencloud 2>/dev/null

sans trouver de paramètre correspondant.

Résumé du comportement
lien public sans mot de passe : OK
lien public avec mot de passe : KO
token du partage reconnu : OK
en-tête Authorization: Basic présent côté navigateur : OK
Nginx configuré pour transmettre Authorization : OK
requête PROPFIND /dav/public-files/ : 401

Avec l’aide de l’IA, nous avons progressivement essayé d’isoler le problème. À ce stade, nous nous demandons s’il pourrait s’agir soit d’un problème lié au traitement de l’authentification Basic des liens publics protégés, soit d’une particularité de l’intégration OpenCloud/YunoHost.

Je préfère cependant ne pas modifier davantage la configuration sans l’avis de personnes connaissant OpenCloud et son packaging YunoHost.

Est-ce que quelqu’un peut reproduire ce comportement avec OpenCloud 7.4.0~ynh1 ?

Et voyez-vous une erreur dans notre diagnostic ou un paramètre YunoHost/OpenCloud que nous aurions manqué ?

Je peux bien entendu fournir des logs supplémentaires ou effectuer d’autres tests si nécessaire.

Merci par avance pour votre aide.

Share relevant logs or error messages

https://paste.yunohost.org/raw/omexeqotud

Bonjour @melaine

Peux-tu essayer ceci ?

sudo yunohost app setting opencloud protect_against_basic_auth_spoofing -v false
sudo yunohost app ssowatconf