[horde] Horde authentication with IMP in a load-balanced environment

Andy Dorman adorman at ironicdesign.com
Mon Mar 30 22:08:10 UTC 2015


Hi all, we are having difficulty working around our unique setup to 
authenticate with IMP and I wonder if one of the developers could point 
us in the right direction to fix this.  My apologies in advance, I am 
NOT an experienced PHP programmer and am a bit hazy on variable scopes 
and I believe that is a BIG part of my problem below.

We are running the Latest Debian, Cyrus IMAP, and Horde 5.2.1 and Imp 
6.2.2 with LDAP for user credentials.  We are currently authenticating 
using Horde and LDAP, but we would like the opening app to be IMP and to 
do that we need to authenticate with IMP.

The tricky part happens because we have a load balanced cluster of web 
servers, each server supporting a block of our IMAP accounts.  So I 
might log into web server A and my IMAP is on server B.  So we have to 
make sure the IMAP hostname is set correctly in order to fetch mail.

When we are using Horde auth with LDAP this is easily handled in 
imp/backends.local.php.  Just grab the auth credentials, do a quick LDAP 
guery to get the IMAP server name and then set up the advanced IMAP 
server hostname in $servers['advanced']['hostspec']

However, if I switch Horde to authenticate using IMP, then 
imp/backends.local.php does NOT have the authenticated username & 
credentials, so it can't query LDAP to get the hostname.

I thought I could get around this by using imp/hooks.local.php 
preauthenticate (since it DOES have access to the un-authenticated 
username and credentials and I was able to use that to query LDAP to set 
$credentials['server']), BUT I have been unable to figure out how to set 
the IMAP $servers['advanced'] array from imp/hooks.local.php.

So I am unable to set up the proper IMAP server when trying to 
authenticate with IMP...

Can anyone give me the answer to one of these questions when 
authenticating Horde with IMP?

1. How can I access the unauthenticated username/password in 
imp/backends.local.php?

OR

2. How can I access the the $servers['advanced'] array in 
imp/hooks.local.php

OR

3. Am I going about this completely wrong and there is a better way to 
set the IMP IMAP backend hostname when authenticating with IMP?

Thank you for any help.

-- 
Andy Dorman



More information about the horde mailing list