samba keytab support for AD and kinit -k
Rakesh Patel
rapatel at optonline.net
Sun Nov 28 18:53:49 EST 2004
Sam Hartman wrote:
>>>>>>"Bob" == <Bob.Smart at csiro.au> writes:
>>>>>>
>>>>>>
>
> Bob> Unfortunately when I test it with "kinit -k" it says "can't
> Bob> find KDC". An ordinary kinit works.
>
>You actually need kinit -k principalname
>
>So run klist -k, find the principal name and kinit -k with that
>principal.
>
>--Sam
>
>
The issue is that in the Windows KDC, an SPN can not be used as a "user"
for authentication
and computers normally do not contain a UPN entry. In the case of UNIX
host keytabs, it is
not unusual to attempt to use the host key as a primary authentication
mechanism, though
not an optimal or appropriate mechanism, it is occasionally utilized
using kinit -k. For example,
years back, I used it to create a dedicated credentials cache for
nss_ldap (and nscd) on Solaris
without having to create a separate keytab to be maintained. The
problem is that the version
I just tested with on Fedora Core 3 + all updates
(samba-3.0.8-0.pre1.3), registers a UPN
using the short host name and generates the keys in /etc/krb5.keytab
using FQDNs. This
means the kinit -k option is unusable, as specifying "kinit -k
host/SHN at REALM" (SHN = Short Host Name) will
return an error indicating the key is not in the keytab, while "kinit -k
host/FQDN at REALM" will
return from the KDC as client not found. I was able to correct this by
setting the UPN
to be the same as the entry in /etc/krb5.keytab and it addressed the
issue. Given that Windows
does not utilize a UPN at all for hosts joined to a domain and the only
reason we may have
added the UPN is to permit the host key to be used for authentication,
is there any reason
we can't use the FQDN for the UPN? I recall seeing some discussions on
that a long time
ago, but was distracted at the time.
An additional item I forget to mention - we had coded the "net ads
keytab create" function to leave
old verions in place in case someone had an active credentials cache
with that version, however no
functionality was added to clean the old version up. There were early
stabs at addressing that,
but we dropped the code at the time. I believe it is not unreasonable
to provide options to "net ads keytab"
to flush old entries.
There were also concerns about managing other service specific keys in
the host keytab,
but that adds complexity not to mention that they probably should be in
their own keytab files with separate
permissions (preferably non-root). The advantages of using Samba
utilities to manage that when
participating in a Windows KDC are numerous. Maybe I will have to make
some time for more code
contributions to help address that, though the issue of UPN vs. SPN
comes into play again if one
needs to seed a credentials cache with the service key used as the
primary (user) authenticator.
Rakesh Patel.
More information about the Kerberos
mailing list