IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Apache Discussion :

ldap bind modules php


Sujet :

Apache

  1. #1
    Membre éclairé

    Inscrit en
    Février 2004
    Messages
    342
    Détails du profil
    Informations forums :
    Inscription : Février 2004
    Messages : 342
    Par défaut ldap bind modules php


    sous apache 2.2.8 (version à confirmer mais bon)

    je voudrais que toute requete vers le server web fasse necessairement l'objet d'un controle login/pass vers un annuaire LDAP de mes utilisateurs.
    Pas d'exception.

    le server ne marche qu'en https de tte facon.
    je pensais à une authentification digest plutot que basic, à condition que ca n'introduise pas (trop) de complexité supplémentaire.

    je voudrais aussi que le login utilisé pour la requete apparaissent clairement dans le access.log de apache afin de parser le fichier par la suite. J'ai besoin d'etre éventuellement capable de savoir qui a accédé quoi et qd

    j'ai pensé à implémenter ca au niveau php. Si j'arrive bien à faire l'authentification et l'authorization bien des ldap_bind(...), je n'arrive pas à faire apparaitre le login dans le access.log (normal je suppose puisque le format de log est défini dans les fichiers conf de apache non?)

    de plus, si je laisse qqs users envoyer leurs propres scripts php, alors le fait qu'ils rajoutent un include('check_login.php') dans ts leurs scripts parce que je l'aurais demandé est laissé à leur bon vouloir, voire sujet à oubli/erreur...

    sans parler que moi aussi mon code php de login peut etre sujet à erreur. personne n'est parfait. Ca fait donc plus sens de déléguer cette partie à du code super stable et bien maintenu par des experts.

    bref, plutot au niveau apache donc. ca me mettrait plus en confiance.

    mais comment faire?
    je suppose qu'il faut installer et configurer un module... mais lequel ?

    en cherchant LDAP sur apache, je suis tombé sur plusieurs modules.

    mod_ldap pour apache 2.0 => http://httpd.apache.org/docs/2.0/mod/mod_ldap.html
    mod_ldap pour apache 2.2 => http://httpd.apache.org/docs/2.2/mod/mod_ldap.html
    (on pourrait taper ds le LDAP, mais peut-on faire un bind avec ca?)

    mod_auth_ldap pour apache 2.0 => http://httpd.apache.org/docs/2.0/mod/mod_auth_ldap.html
    mod_auth_ldap pour apache 2.2 => ne semble pas exister... ?!?

    mod_authnz_ldap pour apache 2.0 => ne semble pas exister... ?!?
    mod_authnz_ldap pour apache 2.2 => http://httpd.apache.org/docs/2.2/mod...thnz_ldap.html

    bon déjà http://httpd.apache.org/docs/2.2/fr/...tures_2_2.html
    semble indiquer que nz dans le nom n'est pas un hommage à son programeur neozelandais mais juste un changement de nom.
    (Ce module est flaggué "Status: Extension", VS le précédent flaggué "Status: Experimental" ca veut dire que mod_authnz_ldap est stable? on peut lui faire confiance en production?)

    qqn peut me confirmer que
    => vu ce queje veux faire, c'est une bonne approche de déléguer à apache le login
    => c'est bien apache mod_authnz_ldap le module que je dois utiliser dans ce cas
    ?

    merci



    ps: je mets ici des liens des topics interessants sur le sujet ue m'a trouvé la fonction recherche
    http://www.developpez.net/forums/d60...ap-p-htpasswd/
    http://www.developpez.net/forums/d39...ive-directory/
    http://www.developpez.net/forums/d47...ation-ldap-ad/
    http://www.developpez.net/forums/d44..._auth_ldap-so/

    pps: _mac_, julp ? une idée ....

  2. #2
    Membre expérimenté

    Profil pro
    Inscrit en
    Juin 2002
    Messages
    6 152
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2002
    Messages : 6 152
    Par défaut
    Citation Envoyé par fourchette Voir le message
    j'ai pensé à implémenter ca au niveau php. Si j'arrive bien à faire l'authentification et l'authorization bien des ldap_bind(...), je n'arrive pas à faire apparaitre le login dans le access.log (normal je suppose puisque le format de log est défini dans les fichiers conf de apache non?)
    Oui mais par une gestion de l'authentification par un module Apache, le login devrait figurer dans le log d'accès (via l'option de formatage %u ou encore %{REMOTE_USER}e).

    Citation Envoyé par fourchette Voir le message
    => vu ce queje veux faire, c'est une bonne approche de déléguer à apache le login
    Oui mais rien ne sera plus "souple" que PHP. Et le navigateur retransmettra à chaque nouvelle ressource demandée les identifiants.

    Citation Envoyé par fourchette Voir le message
    => c'est bien apache mod_authnz_ldap le module que je dois utiliser dans ce cas
    ?
    Oui c'est bien ce module, stable. On peut sans doute en trouver des comparables non officiels, mais ils n'auront pas la maturité ni les fonctionnalités ni le support ni ... que celui-ci (il y a des fonctionnalités de cache par exemple derrière).

  3. #3
    Membre éclairé

    Inscrit en
    Février 2004
    Messages
    342
    Détails du profil
    Informations forums :
    Inscription : Février 2004
    Messages : 342
    Par défaut
    Citation Envoyé par julp Voir le message
    Oui mais par une gestion de l'authentification par un module Apache, le login devrait figurer dans le log d'accès (via l'option de formatage %u ou encore %{REMOTE_USER}e).


    Oui mais rien ne sera plus "souple" que PHP. Et le navigateur retransmettra à chaque nouvelle ressource demandée les identifiants.
    nickel! ce %u / %{REMOTE_USER}e
    semble etre exactement ce qu'il me faut

    le fait de retransmettre de nouveau les credentials est-il un pb en soit ?
    (rappel: le canal est https...)

    ce qui m'emmène à cross linker un de mes post aujourd'hui sans réponse:
    comment faire en sorte que la session soit fermée et que browser cesse de renvoyer les credentials?
    => http://www.developpez.net/forums/d69...ermer-session/


    Citation Envoyé par julp Voir le message
    Oui c'est bien ce module, stable. On peut sans doute en trouver des comparables non officiels, mais ils n'auront pas la maturité ni les fonctionnalités ni le support ni ... que celui-ci (il y a des fonctionnalités de cache par exemple derrière).
    => parfait, j'ai fait bonne pioche a priori donc

  4. #4
    Membre éclairé

    Inscrit en
    Février 2004
    Messages
    342
    Détails du profil
    Informations forums :
    Inscription : Février 2004
    Messages : 342
    Par défaut
    Citation Envoyé par julp Voir le message
    Oui mais rien ne sera plus "souple" que PHP.
    qqch qui me vient à l'esprit.
    je voudrais aussi implémenter le comportement suivant
    * la troisieme fois que le mm ip/login échoue dans le controle login/pass, refuser les tentatives de login/pass de ce couple ip/login pdt 3 minutes.

    en php, c'est relativement facile.

    mais avec mod_authnz_ldap (ou autre module apache...)

    c'est possible ? sans etre trop complexe ?

  5. #5
    Membre expérimenté

    Profil pro
    Inscrit en
    Juin 2002
    Messages
    6 152
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2002
    Messages : 6 152
    Par défaut
    Citation Envoyé par fourchette Voir le message
    le fait de retransmettre de nouveau les credentials est-il un pb en soit ?
    (rappel: le canal est https...)
    Parfois, fonctionnellement parlant, oui.

    Citation Envoyé par fourchette Voir le message
    ce qui m'emmène à cross linker un de mes post aujourd'hui sans réponse:
    comment faire en sorte que la session soit fermée et que browser cesse de renvoyer les credentials?
    => http://www.developpez.net/forums/d69...ermer-session/
    Les deux entêtes sont nécessaires et, malheureusement pour vous, le comportement qui en découle.

    Citation Envoyé par fourchette Voir le message
    je voudrais aussi implémenter le comportement suivant
    * la troisieme fois que le mm ip/login échoue dans le controle login/pass, refuser les tentatives de login/pass de ce couple ip/login pdt 3 minutes.
    Rien, de base, à ma connaissance ne le permet. Peut être avec un nouveau module Apache externe mais il peut potentiellement avoir conflit avec les multiples modules d'authentification. (apparemment ce module ne supporte pas non plus l'overlay LDAP password policy)

  6. #6
    Membre éclairé

    Inscrit en
    Février 2004
    Messages
    342
    Détails du profil
    Informations forums :
    Inscription : Février 2004
    Messages : 342
    Par défaut
    super !

    merci pour le feedback

    renvoyer les credentials de l'appli peut donc faire bugguer l'appli... effectivement selon comment elle est conçue, ca peut se comprendre.
    Mais a priori -- dans un contexte de https exclusivement -- renvoyer les credentials ne pose pas un pb de sécurité ?

    alors comme ca on ne peut pas forcer le navigateur à refermer une session de type Auth Basic ou Auth Digest ? ... sérieux?

  7. #7
    Membre éclairé

    Inscrit en
    Février 2004
    Messages
    342
    Détails du profil
    Informations forums :
    Inscription : Février 2004
    Messages : 342
    Par défaut
    Citation Envoyé par fourchette Voir le message
    alors comme ca on ne peut pas forcer le navigateur à refermer une session de type Auth Basic ou Auth Digest ? ... sérieux?
    si qqn a une idée là dessus


    Citation Envoyé par fourchette
    je voudrais aussi implémenter le comportement suivant
    * la troisieme fois que le mm ip/login échoue dans le controle login/pass, refuser les tentatives de login/pass de ce couple ip/login pdt 3 minutes.
    bon sinon pour lutter contre le brute force (notammen via ce type de défense), un de mes amis m'a recommandé

    Apache::AuthChecker

    google me ressort ce site: http://search.cpan.org/~swampfox/Apa...AuthChecker.pm

    qqn utilise ca ? c'est fiable ?

  8. #8
    Membre éclairé

    Inscrit en
    Février 2004
    Messages
    342
    Détails du profil
    Informations forums :
    Inscription : Février 2004
    Messages : 342
    Par défaut
    bon déjà... pour l'authentification avec LDAP sous apache

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
     
    <VirtualHost xxxxxxxxxxx:80>
     
            DocumentRoot /home/www-data/www
            <Directory /home/www-data/www/>
                    Options Indexes FollowSymLinks MultiViews
                    AllowOverride None
     
                    #ici du order/deny bla bla bla... je sais pas trop trop 
                    #Order allow,deny
                    #Deny from all
                    AuthType Basic
                    AuthName "bla bla bla... ici le texte que les les users voient dans le popup login/pass"
                    AuthBasicProvider ldap
                    AuthLDAPURL ldap://127.0.0.1/ou=people,dc=example,dc=com?uid
                    Require valid-user
     
     
            </Directory>
     
     
    </VirtualHost>
    sachant que derrière mes users sont stockés dans le noeud ldap ou=people,dc=example,dc=com

    ne pas oublier d'activer mod_ldap et mod_authnz_ldap

    hop hop ca marche !

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [PHP 5.2] PHP/LDAP- bind credential error
    Par megs dans le forum Langage
    Réponses: 3
    Dernier message: 13/06/2012, 15h12
  2. [LDAP] comment ajouter un module PHP
    Par sezar dans le forum Bibliothèques et frameworks
    Réponses: 2
    Dernier message: 20/03/2006, 17h45
  3. [XML] XML Data Binding vers php
    Par noa dans le forum Bibliothèques et frameworks
    Réponses: 1
    Dernier message: 01/03/2006, 16h31
  4. [LDAP] installation module ldap sous Windows
    Par hutchuck dans le forum Bibliothèques et frameworks
    Réponses: 4
    Dernier message: 16/11/2005, 10h49
  5. [LDAP] Où trouver ce module PHP pour Windows
    Par hutchuck dans le forum Bibliothèques et frameworks
    Réponses: 2
    Dernier message: 16/11/2005, 08h57

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo