[phpldapadmin] SASL/GSSAPI

"Ethan Moore" <[email protected]>
Newsgroups gmane.comp.ldap.davedap
Message-ID <[email protected]>
Hello list...

I've been working on getting PLA to work in my environment with
SASL/GSSAPI authentication.  I was able to make it work, but it did
require a few modifications to PLA (I believe only one of them is GSSAPI
specific).

Attached is the patch file I generated via `diff ds_ldap.php
ds_ldap.php.orig`.  Forgive me if I did this part backwards.

With these modifications PLA is working in my environment on apache
2.2.11, php 5.2.10-p10-gentoo, mod_fastcgi, and mod_auth_kerb 5.4.

There is one issue I have yet to resolve, which I will try to explain.  If
you attempt to move through the ldap tree quickly, you will receive a
javascript popup "There was a problem with the request".  On the backend,
the SASL bind is failing, with an error that 'no credential cache was
found'.  It appears that authentication is cached by apache or
mod_auth_kerb, thus, a new credential cache is not created and the bind
fails.  This can be solved by waiting 10-30 seconds before performing each
function in PLA (slightly annoying, but it works).  Maybe that makes
sense.  I'm not 100% sure where the issue lies, so I have not been able to
come up with a solution.  My guess is mod_auth_kerb, but I'm not an
experienced enough php programmer to know if there would be something that
could fix this on the PLA side.

I was not able to make this work using php as a module, as noted above, I
had to use fastcgi.  I could not get the environment to set correctly I
believe and the binds would fail with a 'credential cache permissions
incorrect' error (though the credential cache file was owned by apache
w/0600 permissions).

I'm happy to provide any additional assistance or testing with regards to
this.

Thanks,

ethan

------------------------------------------------------------------------------
Let Crystal Reports handle the reporting - Free Crystal Reports 2008 30-Day 
trial. Simplify your report design, integration and deployment - and focus on 
what you do best, core application coding. Discover what's new with 
Crystal Reports now.  http://p.sf.net/sfu/bobj-july

______________________________________
phpLDAPadmin development mailing list.
To unsbuscribe: https://lists.sourceforge.net/lists/listinfo/phpldapadmin-devel
http://phpldapadmin.sourceforge.net/
ds_ldap.php.patch (application/octet-stream, 1.1 KB)
197c197
<                       $bind['result'] = $this->startSASL($resource,$method);
---
>                       $this->startSASL($resource,$method);
606,614c606
<               if (strcasecmp($this->getValue('sasl','mech'), "gssapi") == 0) {
<                       if (isset($_ENV['REDIRECT_KRB5CCNAME'])) {
<                               putenv("KRB5CCNAME={$_ENV['REDIRECT_KRB5CCNAME']}");
<                       }
<               } else {
<                       error(__METHOD__.' has NOT been tested, please let us know if it works and which version of PHP you are using.','info');
<               }
<
<
---
>               error(__METHOD__.' has NOT been tested, please let us know if it works and which version of PHP you are using.','info');
617c609
<               if (! $this->getValue('server','sasl') || ! function_exists('ldap_start_tls'))
---
>               if (! $this->getValue('server','sasl') || ! function_exists('ldap_start_tls'));
659,660c651
<                       $CACHE['authz_id'],
<                       Null,
---
>                       $CACH['authz_id'],
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.