[Dovecot] auth_default_realm, pam_krb5, gssapi

Sergey Urushkin urushkin at telros.ru
Mon Jan 20 15:29:04 EET 2014


Hi,
Just writing here my note about auth_default_realm, pam_krb5 and gssapi.
It seems that 'pam' passdb and 'gssapi' auth_mechanism doesn't honor 
'auth_default_realm' setting, at least in several setups I deal with.
Here is a part of the config:
  passdb {
  args = max_requests=100 cache_key=%u%r dovecot
  driver = pam
  }
  auth_default_realm = REALM.COM
  auth_mechanisms = plain login apop gssapi
  auth_username_format = %Uu

The problem is that pam_krb5 strips default realm from username (by 
default), even if auth_default_realm is specified and even if user logs 
in as 'user1 at realm.com' (with domain part).
A part of auth.log:
  mail auth: pam_krb5(dovecot:auth): user USER1 authenticated as 
USER1 at REALM.COM

The same for GSSAPI auth, if specified authorization name doesn't 
contain domain part.
A part of mail.log:
  mail dovecot: imap-login: Login: user=<USER1>, method=GSSAPI, 
rip=172.16.0.1, lip=192.168.1.1, mpid=5828, TLS, 
session=<bpzvRmDwPACsFwCX>

For several reasons I do need username inside dovecot to contain domain 
part. So, I found a solution to this problem - modifying /etc/krb5.conf 
this way:
  [libdefaults]
  default_realm = REALM.COM
  [realms]
  REALM.COM = {
  auth_to_local = RULE:[1:$1@$0]
  }

This will add realm part to the local username despite using default 
realm.
Maybe it's better to put this example to the wiki?
Tested with ubuntu 12.04 and dovecot 2.2.10, mit kerberos 1.10, amd64.

Taking the opportunity, I'd like to ask, is there a way to make 
usernames case insensitive while using GSSAPI. The case:
klist shows:
      Principal: user1 at REALM.COM
username in thunderbird 'uSer1 at REALM.COM'. Dovecot gives me this message 
(I use auth_username_format=%Uu for pam_krb5 to be able to login with 
lowercase realm):
      dovecot: auth: 
gssapi(USER1 at REALM.COM,172.16.0.1,<IIgwMGbw3ACsFgA4>): User not 
authorized to log in as USER1 at REALM.COM

As I know kerberos usernames are case insensitive (user part), at least 
kinit and windows against AD works that way.
Seems that k5credentials passdb extra field will not help here too. Does 
anyone have an idea?

Thanks.

-- 
Best regards,
Sergey Urushkin


More information about the dovecot mailing list