====== LDAP integratie ====== ===== context ===== dit document beschrijft hoe je DokuWiki instelt zodat gebruikers voortaan met hun LDAP gebruiker/wachtwoord kunnen aanmelden. Biedt het grote voordeel dat je bestaande gebruikers kunt gebruiken en dus geen extra DokuWiki gebruikers moet aanmaken. Ook [[wiki:toegangsrechten|toegangsrechten]] op DokuWiki kunnen we op die manier instellen. ===== systeemvereisten ===== * verbindingsinstellingen van LDAP: * naam van de server en poort waarop die luistert * gebruiker die de BIND maakt (indien geen anonieme LDAP) * plaats in LDAP waar gebruiker/groepen te vinden zijn * een LDAP browser waarmee je je LDAP kunt bevragen. [[https://directory.apache.org/studio/|Apache Directory Studio]] is goed gerief. * beheerder toegang op DokuWiki * root toegang op de Linux waarop DokuWiki draait. ===== installatie ===== ==== Linux server ==== * meld aan als root * installeer volgende pakketten: * php-ldap * php-net-ldap3 * ldap-utils * tshark * controleer verbinding naar je LDAP server: ''telnet 389 (of 636)'' * voer een LDAP query uit (lijst van gebruiker): ''ldapsearch -H “ldaps:” -x -b “ou=Users,o=,dc=,dc=” -D ”“ -W ”(objectClass=posixGroup)“ '' Belangrijk is dat je vanaf je Linux LDAP queries kunt uitvoeren. Zorg dat dit probleemloos werkt voor je DokuWiki configureert. Troubleshoot voor je verdergaat! ==== Dokuwiki ==== - meld aan als admin - ga naar **Admin** > **Extension Manager** > **LDAP Auth Plugin**: **Enable** - ga naar **Admin** > **Configuration Settings** > **Authentication** > **Authentication backend**: authldap - ga naar **Admin** > **Configuration Settings** > **Authentication** > **Superuser**: @ - ga naar **Admin** > **Configuration Settings** > **Plugin ** > **Authldap** - vul de gegevens van je LDAP in. - De voorgestelde waarden zijn in grote mate bruikbaar. In mijn geval gaven de __groupfilters__ geen resultaten weer, waardoor ik het groepsprofiel van de aangemelde gebruiker niet terug kreeg. Start in dat geval je LDAP browser en zoek daar de correct waarden op. - zet zeker de waarde **Display additional debug information on errors"** aan. Dat helpt om fouten bij de verbinding op te lossen. - hieronder een voorbeeld van mijn LDAP configuratie voor mijn [[https://jumpcloud.com/daas-product/ldap-as-a-service/|Jumpcloud LDAP]]. (ik weet dat ik zou moeten obfusceren, maar dat maakt je screenshot zo vies en de LDAP is toch met BINDuser beveiligt ...) {{ :wiki:dokuwiki_ldap.png?nolink&400 |}} - ga naar **Admin** > **Configuration Settings** > **Authentication** > **Authentication backend**: authldap - ga naar **Admin** > **Configuration Settings** > **Authentication** > **Password encryption method**: md5 - meld af als admin - meld nu aan met een LDAPgebruiker. - analyseer de debug output. - LDAP server gaat op zoek naar de gebruiker - resultaat van de zoekactie - LDAP server zoekt groepen van betreffende gebruiker op - resultaat van de zoekactie {{ :wiki:dokuwiki_ldap2.png?nolink&400 |}} ===== post installatie ===== Als alles goed blijkt te werken, zet debug dan uit: - ga naar **Admin** > **Configuration Settings** > **Plugin ** > **Authldap** - zet de waarde **Display additional debug information on errors"** uit. ===== problemen, problemen ===== Niets lukt meteen. Bovenstaand voorbeeld was dan ook het resultaat van behoorlijk wat proberen. Hieronder de eerste hulp ==== authenticatie ==== als de authenticatie module volledig kapot is, kan je best je aanpassing terug draaien door onderstaande bestanden te hernoemen: - /var/www/dokuwiki/conf/local.php.bak > /var/www/dokuwiki/conf/local.php - /var/www/dokuwiki/conf/plugins.php.bak > /var/www/dokuwiki/conf/plugins.php - /var/www/dokuwiki/conf/users.auth.php.bak > /var/www/dokuwiki/conf/users.auth.php ==== LDAP verbinding ==== - monitor het netwerk verkeer tussen Linux en LDAP: ''tshark -f "host "'' - thark toont je de hele verbinding tussen Linux server en je LDAP server. Vaak vind je daar al een eerste aanwijzing ==== LDAP query ==== - voer de query die door DokuWiki wordt uitgevoerd uit in je LDAP browser. - controleer of de ingestelde filters/paden overeenkomen met de structuur van je LDAP tree. Zo staan in Jumpcloud LDAP groepen niet in de OU **Groups**, maar in de OU **Users**. Groeplidmaatschap wordt niet uitlezen in de objectclass PosixGroepen maar in groupOfNames. Zoek en ge zult vinden, mijn zoon.