When testing the PKINIT stuff I hit a stupid issue - due to a typo in the realm name in kdc.conf users were not getting the +requires_preauth attribute when being created. I quickly figured out what was happening but it got me thinking about kdc.conf in general.
Currently the default kdc.conf contains the following: [kdcdefaults] kdc_ports = 88,750 [realms] ___default_realm___ = { profile = /etc/krb5/krb5.conf database_name = /var/krb5/principal admin_keytab = /etc/krb5/kadm5.keytab acl_file = /etc/krb5/kadm5.acl kadmind_port = 749 max_life = 8h 0m 0s max_renewable_life = 7d 0h 0m 0s default_principal_flags = +preauth } The admin is expected to replace "___default_realm___" with the correct realm or add additional realm stanzas for the configured realms. The first thing to note is that the code defaults for "kdc_ports", "profile", "database_name", "admin_keytab", "acl_file" and "kadmind_port" are the same as the values specified here. i.e. the above config file snippet is equivalent to: [kdcdefaults] [realms] ___default_realm___ = { max_life = 8h 0m 0s max_renewable_life = 7d 0h 0m 0s default_principal_flags = +preauth } We could easily ship a simplified kdc.conf containing the above. The question then arises why are the settings for "max_life", "max_renewable_life" and "default_principal_flags" different to the code defaults? It seems to me to be particularily strange that "+preauth" isn't the code default. A kerberos admin may not even notice that new users aren't getting "+preauth" due to a misconfiguration. Is there any reason not to change the code defaults to the above? i.e. current proposed max_life 24h 8h max_renewable_life 1year 1month default_principal_flags +preauth If we do these changes we can scrap kdc.conf in its entirety. We can then encourage admins to stick to a single config-file - krb5.conf. Perhaps we can add a commented-out realm stanza in krb5.conf so that it's clear to admins that they can do realm configuration there. Thoughts? -M