Skip to content

[FEATURE] Support des certificats SSL auto-signés pour l'authentification LDAP/AD#3137

Open
SSHNuke0 wants to merge 1 commit intojeedom:developfrom
SSHNuke0:3136-ldap-selfsigned-certificates
Open

[FEATURE] Support des certificats SSL auto-signés pour l'authentification LDAP/AD#3137
SSHNuke0 wants to merge 1 commit intojeedom:developfrom
SSHNuke0:3136-ldap-selfsigned-certificates

Conversation

@SSHNuke0
Copy link
Copy Markdown

Problème résolu

L'authentification LDAP avec STARTTLS échoue systématiquement avec les certificats auto-signés (erreur "start TLS KO"). Cela rend impossible l'utilisation de Jeedom avec Samba4 AD qui utilise par défaut des certificats auto-signés.

Fixes #3136

Solution proposée

Ajout d'une checkbox "Autoriser certificats auto-signés" dans la configuration LDAP qui désactive la vérification des certificats SSL lorsqu'elle est cochée.

Modifications apportées

1. core/class/user.class.php - Deux fonctions modifiées

  • user::connect() : Configuration SSL avant ldap_connect() et ldap_start_tls()
  • user::connectToLDAP() : Configuration SSL avant ldap_connect() et ldap_start_tls()

Les options SSL sont configurées de manière conditionnelle selon la valeur de ldap:allow_selfsigned :

  • Si activé : LDAPTLS_REQCERT=never et LDAP_OPT_X_TLS_REQUIRE_CERT = LDAP_OPT_X_TLS_NEVER
  • Si désactivé : LDAPTLS_REQCERT=demand et LDAP_OPT_X_TLS_REQUIRE_CERT = LDAP_OPT_X_TLS_DEMAND

2. desktop/php/administration.php

  • Ajout d'une checkbox après l'option TLS (ligne ~1611)
  • Clé de configuration : ldap:allow_selfsigned
  • Par défaut décochée (comportement actuel conservé)
  • Tooltip explicatif pour guider l'utilisateur

Comportement

Checkbox décochée (défaut) : Vérification stricte des certificats SSL

  • Comportement actuel de Jeedom conservé
  • Sécurité maximale

Checkbox cochée : Accepte les certificats auto-signés

  • Requis pour Samba4 AD avec certificats auto-signés
  • Permet STARTTLS avec certificats non valides
  • Désactive la vérification SSL (LDAPTLS_REQCERT=never)

Tests effectués

Testé en production avec :

  • Samba4 Active Directory (certificats auto-signés)
  • STARTTLS sur port 389
  • Authentification de plusieurs utilisateurs AD
  • Checkbox décochée : STARTTLS échoue comme attendu (comportement actuel)
  • Checkbox cochée : STARTTLS fonctionne correctement

Configuration testée :

ldap:host = ldap://dc.domain.local
ldap:port = 389
ldap:tls = 1 (STARTTLS)
ldap:allow_selfsigned = 1
ldap:samba4 = 1
ldap:domain = domain.local

Compatibilité

  • Rétrocompatible à 100% (comportement par défaut strictement inchangé)
  • PHP 7.4, 8.0, 8.1, 8.2, 8.3
  • Tous serveurs LDAP (OpenLDAP, Samba4 AD, Microsoft AD, etc.)
  • Aucun changement cassant
  • Aucune dépendance ajoutée

… LDAP/AD

Ajout d'une option configurable (checkbox dans l'interface) pour
permettre l'utilisation de certificats auto-signés avec STARTTLS.

- Nouvelle checkbox dans Configuration > LDAP
- Configuration des options LDAP_OPT_X_TLS_REQUIRE_CERT
- Appliqué dans user::connect() et user::connectToLDAP()
- Sécurisé par défaut (checkbox décochée = vérification stricte)
- Requis pour environnements Samba4 AD avec certificats auto-signés

Fixes jeedom#3136
@SSHNuke0 SSHNuke0 force-pushed the 3136-ldap-selfsigned-certificates branch from d87c04f to d0fc755 Compare November 12, 2025 00:10
@zoic21 zoic21 added this to the 4.6 milestone Nov 18, 2025
@zoic21
Copy link
Copy Markdown
Contributor

zoic21 commented Jan 30, 2026

Je peux pas vraiment tester mais comme ca je dirais que ca marche oui

@Salvialf Salvialf changed the base branch from alpha to develop March 31, 2026 18:11
@Mips2648 Mips2648 self-requested a review April 16, 2026 20:53
Copy link
Copy Markdown
Collaborator

@Mips2648 Mips2648 left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Probablement que ca marche, je n'ai pas testé mais je suis contre cette PR
c'est quoi le cas d'usage? combien de personnes ont besoin de ça? ca ressemble plus à un besoin personnel
je ne pense pas qu'on doit modifier le core et rajouter des options pour une seule demande.

@SSHNuke0
Copy link
Copy Markdown
Author

SSHNuke0 commented Apr 16, 2026

Hello,

Je comprends que modifier core peut crisper.

Si il y’a moyen d’implémenter cette feature autrement, ça ne me dérange pas de réécrire la PR.

Cela dit, pour répondre aux différents points :

Probablement que ca marche

Ca vaut ce que ça vaut, mais c’est en prod et ça marche depuis la publication de cette PR sur une install de Samba4 configurée en mode AD avec le reste de la conf par défaut (Version 4.19.5 qui vient du repo, sur une Ubuntu 24.04.4 LTS qui tourne dans une Freebox Delta).

Et ça a également été testé brièvement sur un Windows Server 2022 durant le dev de la MR.

C’est quoi le cas d’usage ?

Pouvoir utiliser l’auth LDAP avec le Samba4 fourni par Ubuntu, qui par défaut gen lui-même un certificat auto-signé pour l’AD. Et ne pas devoir mettre en place une PKI ou acheter un certificat pour un usage domotique/maison.

Combien de personnes ont besoin de ça ?

Potentiellement toutes les personnes qui activent la checkbox Samba4 dans la configuration LDAP de Jeedom et qui utilisent la conf par défaut du mode LDAP fourni par le paquet du repo d’Ubuntu (ou p-e aussi d’autres distrib, j’ai pas vérifié).

Ça ressemble plus à un besoin personnel

Oui et non.

Oui, personnel. Je le reconnais, ça m’évitera de devoir patch à chaque montée de versions de Jeedom (même si c’est automatisé.)

Non, car je me dis que si il y’a déjà une option Samba4, c’est qu’ils considèrent que l’usage de Samba est ok/supporté par Jeedom.

Or, dans l’état actuel des choses, sur un Jeedom configuré avec Samba4 et sa conf par défaut, l’auth ne fonctionne pas alors même que les clients Windows eux ne bronchent pas.

Cela dit, si vous le souhaitez, je peux vous fournir un environnement de test, avec Samba4 et Jeedom, si vous souhaitez tester la PR. (Car j’entends que ça peut être chiant de reproduire cette env pour une PR.)

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

[FEATURE] Support des certificats SSL auto-signés pour l'authentification LDAP/AD

3 participants