Re: Different realm for different listeners?

2015-03-13 Thread Chris Adams
Once upon a time, Chris Adams  said:
> All my users are in MySQL.  Reading the docs, I see that "%l" expands to
> the local IP address "almost everywhere".  If that's available in the
> userdb SQL expansion, I could write a (somewhat convoluted) SQL
> statement that adds a domain based on the local IP.  Does that sound
> like it'll work?  Not quite as "elegant" as just setting
> auth_default_realm in separate listeners, but should work I guess.

Just a follow-up for the archives: this worked.  This is my
MySQL password_query:

password_query = \
SELECT username AS user, password, \
concat('/srv/mail/',maildir) AS userdb_home, 1000 AS userdb_uid, \
1000 AS userdb_gid \
FROM mailbox WHERE active = 1 AND username = case \
  when '%d' <> '' then '%u' \
  when '%l' = '10.0.9.73' then '%u...@domain1.com' \
  when '%l' = '10.0.9.74' then '%u...@domain2.net' \
  else '%u' end

-- 
Chris Adams 


Re: Different realm for different listeners?

2015-03-12 Thread Chris Adams
Once upon a time, Tom Hendrikx  said:
> You could drop the default realm completely, and create a second
> passdb lookup which uses only the username part to lookup credentials.
> This means that, as long as you have no conflicts as usernames
> 'j...@foo.com' vs 'j...@bar.com', you'd be able to support username
> 'john'.

The domains I need to handle are separate telephone company ISPs, so
they all want common things like "sales", so that won't work.

All my users are in MySQL.  Reading the docs, I see that "%l" expands to
the local IP address "almost everywhere".  If that's available in the
userdb SQL expansion, I could write a (somewhat convoluted) SQL
statement that adds a domain based on the local IP.  Does that sound
like it'll work?  Not quite as "elegant" as just setting
auth_default_realm in separate listeners, but should work I guess.

-- 
Chris Adams 


Re: Different realm for different listeners?

2015-03-12 Thread Mihai Badici
On Tuesday 10 March 2015 18:38:40 Tom Hendrikx wrote:
> On 10-03-15 18:20, Chris Adams wrote:
> > I see this has been asked a few times over the years (but not in
> > several years), and the response was along the lines of "maybe
> > someday", so I figured I'd see if someday was here yet...
> > 
> > I have a need to have a different default realm for different
> > listeners. Basically, I've a bunch of different domains, and a few
> > of them insist their users not be required to authenticate with
> > "user@domain" and just use "user", and I'm trying to make this work
> > without separate daemons and/or VMs.
> > 
> > I'll be using Dovecot 2.2 (most likely 2.2.10 as provided by
> > RHEL/CentOS 7).
> > 
> > Thanks.  If there's not a way to do this directly in Dovecot, does
> > anybody have any suggestion that doesn't require several different
> > VMs?
> 
> You could drop the default realm completely, and create a second
> passdb lookup which uses only the username part to lookup credentials.
> This means that, as long as you have no conflicts as usernames
> 'j...@foo.com' vs 'j...@bar.com', you'd be able to support username
> 'john'.


Well, I think "conflict" is the keyword here.
Everybody want an e-mail address called "contact" or "office" :)


> 
> When you're able to use the password in your sql WHERE statement [1]
> too, you could even work around that, because you'd only have
> mismatches when 'j...@foo.com' and 'j...@bar.com' have the same
> passphrase.
> 
> [1]
> http://wiki2.dovecot.org/AuthDatabase/SQL#Password_verification_by_SQL_serve
> r
> 
> Tom
-- 
Mihai Bădici
http://mihai.badici.ro


Re: Different realm for different listeners?

2015-03-12 Thread Tom Hendrikx
-BEGIN PGP SIGNED MESSAGE-
Hash: SHA256

On 10-03-15 18:20, Chris Adams wrote:
> I see this has been asked a few times over the years (but not in
> several years), and the response was along the lines of "maybe
> someday", so I figured I'd see if someday was here yet...
> 
> I have a need to have a different default realm for different
> listeners. Basically, I've a bunch of different domains, and a few
> of them insist their users not be required to authenticate with
> "user@domain" and just use "user", and I'm trying to make this work
> without separate daemons and/or VMs.
> 
> I'll be using Dovecot 2.2 (most likely 2.2.10 as provided by
> RHEL/CentOS 7).
> 
> Thanks.  If there's not a way to do this directly in Dovecot, does 
> anybody have any suggestion that doesn't require several different
> VMs?
> 

You could drop the default realm completely, and create a second
passdb lookup which uses only the username part to lookup credentials.
This means that, as long as you have no conflicts as usernames
'j...@foo.com' vs 'j...@bar.com', you'd be able to support username
'john'.

When you're able to use the password in your sql WHERE statement [1]
too, you could even work around that, because you'd only have
mismatches when 'j...@foo.com' and 'j...@bar.com' have the same
passphrase.

[1]
http://wiki2.dovecot.org/AuthDatabase/SQL#Password_verification_by_SQL_server

Tom
-BEGIN PGP SIGNATURE-
Version: GnuPG v1

iQIcBAEBCAAGBQJU/ywgAAoJEJPfMZ19VO/1mzQP/Anz44a5c7J6ir8mUgTVZEOn
bFOrkXHkntLSruOZ9FHrMJX4RYXTSbZTe9fUUx1zDXiU7Aj2VQ6LqueXt7LFUW2Z
jmPsxaHXBL8fSR8suwpzZ06/blz563Qi06HEZb2ixjITyvd3iVJCSPzVu3NLdsSH
oxAE50I2vzuFHqfN9JbXD98HuEdGedhOldjlw9MsXmUFthfAYN8N4AhCgzm7G1C8
wk0909pvUAjfDuY7mJU6Q9smDBRdvP4i/aZtKrs/G1ZGq8SPbClbjwLedQy88q76
F/5DcY0M+Z2hYHEZrBQimfUByANY0YvMlQubqQ/s/lsUSD2IdDX6K3lvYKIuKNSe
SHgnt9p6/yTAmX3gbsnB7fbbYQQNRrTHM8Uk8KWJhkxhWZpKt3BOoPMphMa5TCKR
9sBRZqIdN1vSd31Gu/QylKv0+zDeIXay7T+HVCf82KPHq/+zFzSZ1iR14V4TdOyz
SXNprdxRik49tiAHRTSMQwRmOHDel9+guhozSJVj0ISnTCeRAC5vSvGActA3Gl8l
8aMBLDf/VyS7B+Ss0aWOs8MwIrre9oAxMa937lLc3sNh48A7uw38wJmIB6L20q2n
QPlsYCm39wMgWvWi84rEhi663jBdRsZKBq+/Ou7oFHXkQmVmt1ToXw0mC5Bst9Ew
y832vTrhtp1Sl2Siv1RV
=KWRg
-END PGP SIGNATURE-


Different realm for different listeners?

2015-03-10 Thread Chris Adams
I see this has been asked a few times over the years (but not in several
years), and the response was along the lines of "maybe someday", so I
figured I'd see if someday was here yet...

I have a need to have a different default realm for different listeners.
Basically, I've a bunch of different domains, and a few of them insist
their users not be required to authenticate with "user@domain" and just
use "user", and I'm trying to make this work without separate daemons
and/or VMs.

I'll be using Dovecot 2.2 (most likely 2.2.10 as provided by RHEL/CentOS
7).

Thanks.  If there's not a way to do this directly in Dovecot, does
anybody have any suggestion that doesn't require several different VMs?
-- 
Chris Adams