Caching of authentication results

Dovecot supports caching the results of password and user database lookups. The following rules apply to using the authentication cache:

The authentication cache can be flushed by sending a SIGHUP to dovecot-auth.

Sending SIGUSR2 to dovecot-auth makes it log the number of cache hits and misses. You can use that information for tuning the cache size and TTL.

Settings

The settings related to the authentication cache are:

It should be pretty safe to set very high TTLs, because the only field that usually can change is the user's password, and Dovecot attempts to catch those cases (see the rules above).

Cache keys

Usually only the username uniquely identifies a user, but in some setups you may need something more, for example the remote IP address. For SQL and LDAP lookups Dovecot figures this out automatically by using all the used %variables as the cache key. For example if your SQL query contains %s, %u and %r the cache entry is used only if all of them (service name, username and remote IP) match for the new lookup.

With other databases Dovecot doesn't know what could affect caching, so you have to tell Dovecot manually. The following databases require specifying the cache key:

For example if the PAM lookup depends on username and service, you can use:

passdb pam {
  args = cache_key=%s%u *
}

Authentication/Caching (last edited 2008-01-02 02:52:02 by TimoSirainen)