Forum Linux.général Authentification LDAP Apache

Posté par (page perso) . Licence CC by-sa
0
7
avr.
2016

Bonjour,

Je voudrais faire de l'authentification Apache basée mon OpenLDAP.
Ca fonctionne quand j'authentifie les utilisateurs mais je voudrais plutôt me baser sur les groupes.

J'ai indiqué ces directives Apache :

    <Directory "/var/www/html" >
        AuthName "maboite"
        AuthType Basic
        AuthBasicProvider ldap
        AuthLDAPURL "ldap://ldap.maboite.fr/ou=Groups,dc=maboite,dc=fr?uid"
        AuthLDAPGroupAttributeIsDN on
        AuthLDAPGroupAttribute memberUid
        #Require valid-user
        Require ldap-group cn=mongroupe,ou=Groups
    </Directory>

Une recherche dans mon LDAP me répond bien :

ldapsearch -x cn=mongroupe

Ca donne ce genre de résultat :

    # extended LDIF
    #
    # LDAPv3
    # base <dc=maboite,dc=fr> (default) with scope subtree
    # filter: cn=mongroupe
    # requesting: ALL
    #

    # mongroupe, Groups, maboite.fr
    dn: cn=mongroupe,ou=Groups,dc=maboite,dc=fr
    objectClass: top
    objectClass: posixGroup
    objectClass: sambaGroupMapping
    cn: mongroupe
    gidNumber: 1084
    sambaSID: S-1-5-21-2156616899-4879564893-956456450-9784
    sambaGroupType: 2
    displayName: mongroupe
    memberUid: user1
    memberUid: user2

Mais Apache n'est pas du même avis, il me répond une erreur 401 :

[Thu Apr 07 14:10:04.272215 2016] [access_compat:error] [pid 941] [client 172.17.0.1:55368] AH01797: client denied by server configuration: /var/www/html/
[Thu Apr 07 14:10:04.289104 2016] [auth_basic:error] [pid 941] [client 172.17.0.1:55368] AH01618: user user1 not found: /

Est-ce que quelqu'un a déjà pratiqué le Apache/Groupes LDAP ?

Merci d'avance

  • # AuthLDAPGroupAttributeIsDN on

    Posté par (page perso) . Évalué à 5.

    Hello,

    Je pense qu'il faut que tu mettes AuthLDAPGroupAttributeIsDN à off

    À on, ça implique que ton attribut memberuid contienne les dn de test utilisateurs, ce qui ne semble pas être le cas.

    Sinon pour debugger ce genre de cas, tu peux mettre le loglevel d'openldap à 256, tu auras l'intégralité des requètes dans les logs, ce qui peut grandement aider.

    mes 2 ¢

    • [^] # Re: AuthLDAPGroupAttributeIsDN on

      Posté par (page perso) . Évalué à 2.

      Bonjour,

      Merci de ta réponse.
      J'ai mais AuthLDAPGroupAttributeIsDN à off.

      Ca ne marche pas mieux.
      Avec un LDAP en niveau de Debug 256 voilà ce que je peux voir quand un utilisateur Web tente une authentification :

      570765ff conn=1014 fd=14 ACCEPT from IP=[::1]:34388 (IP=[::]:389)
      570765ff conn=1014 op=0 BIND dn="" method=128
      570765ff conn=1014 op=0 RESULT tag=97 err=0 text=
      570765ff conn=1014 op=1 SRCH base="ou=Groups,dc=maboite,dc=fr" scope=2 deref=3 filter="(&(objectClass=*)(uid=user1))"
      570765ff conn=1014 op=1 SRCH attr=uid
      570765ff conn=1014 op=1 SEARCH RESULT tag=101 err=0 nentries=0 text=
      

      Merci

      Quelle est la différence entre un pigeon ?

  • # Base de recherche

    Posté par (page perso) . Évalué à 1.

    C'est parce qu'il recherche ton user1 à partir de la branche groupe.

    Il faut modifier ton authLDAPURL comme suit:

    "ldap://ldap.maboite.fr/dc=maboite,dc=fr?uid"

    salutations

    • [^] # Re: Base de recherche

      Posté par (page perso) . Évalué à 1.

      Merci de ta réponse,

      Malheureusement, ça ne marche toujours pas avec cette config :

      AuthLDAPURL "ldap://monldap.maboite.fr/dc=maboite,dc=fr?uid"
      

      Mes logs :

      5707c9d6 conn=1017 fd=13 ACCEPT from IP=[::1]:41438 (IP=[::]:389)
      5707c9d6 conn=1017 op=0 BIND dn="" method=128
      5707c9d6 conn=1017 op=0 RESULT tag=97 err=0 text=
      5707c9d6 conn=1017 op=1 CMP dn="cn=mongroupe,ou=Groups" attr="memberUid"
      5707c9d6 conn=1017 op=1 RESULT tag=111 err=32 text=
      5707c9d6 conn=1017 op=2 CMP dn="cn=mongroupe,ou=Groups" attr="objectClass"
      5707c9d6 conn=1017 op=2 RESULT tag=111 err=32 text=
      5707c9d6 conn=1017 op=3 CMP dn="cn=mongroupe,ou=Groups" attr="objectClass"
      5707c9d6 conn=1017 op=3 RESULT tag=111 err=32 text=
      

      Quelle est la différence entre un pigeon ?

      • [^] # Re: Base de recherche

        Posté par (page perso) . Évalué à 1.

        Bon je rentre de vacances, désolé du délai de réponse

        5707c9d6 conn=1017 op=1 CMP dn="cn=mongroupe,ou=Groups" attr="memberUid"

        c'est bizarre, le dn est incomplet, d'où le code d'erreur 32 "no such object".

        Peux-tu fournir ta conf apache à jour stp

        • [^] # Re: Base de recherche

          Posté par (page perso) . Évalué à 1.

          Il faut bien que tu mettes le DN complet du groupe dans ta configuration Apache :

          Require ldap-group cn=mongroupe,ou=Groups,dc=maboite,dc=fr

Suivre le flux des commentaires

Note : les commentaires appartiennent à ceux qui les ont postés. Nous n'en sommes pas responsables.