[OpenAFS] Re: gssklog[d] works with berkeley.edu kerberos
realm, but needed a hack -- why?
Jeffrey Hutzelman
jhutz@cmu.edu
Thu, 28 Apr 2005 11:04:09 -0400
On Thursday, April 28, 2005 01:55:05 AM -0700 Adam Megacz
<megacz@cs.berkeley.edu> wrote:
>
> "Douglas E. Engert" <deengert@anl.gov> writes:
>> Looks like they let you register the principal gssklog/...@BERKLEY.EDU
>
> Correct; I requested that a few days ago and imported the secret key
> they generated for me into /etc/krb5.keytab.
>
>>> -s gssklog/reconfigurable.cs.berkeley.edu@BERKELEY.EDU \
>
>> The -s option is for the GSSAPI import name, which is not the same as
>> a krb5 principal name, as the gss is expecting <service>@<host>
>> If the krb5 gss is being used, you should not need the -s option,
>> as the defaults for creating a principal will be gssklog/<host>@<realm>
>
> Right, but if I don't specify the "-s" option, it tries:
>
> len=69,
> name=gssklog/reconfigurable.cs.berkeley.edu@RECONFIGURABLE.CS.BERKELEY.EDU
>
> ... it's using the "home" realm for the "@<realm>" part. It ought to
> be using the foriegn realm. If I use "-s gssklog@BERKELEY.EDU", it's
> *almost* right:
>
> len=41, name=gssklog/arachne.berkeley.edu@BERKELEY.EDU
>
> Again, I have no clue what arachne is. How do I forcibly override this?
I think you missed a point that Doug made, and in fact he missed part of
its significance...
The argument to -s is not a Kerberos principal name.
It is a GSSAPI host-based service name, as described in section 4.1 of
RFC2743. The form of such a name is 'service@hostname'; since GSSAPI is
generic, it has no concept of "realm".
In the case of the Kerberos V5 mechanism, a GSSAPI host-based service name
of the form 'service@hostname' is mapped onto a Kerberos principal name
like 'service/hostname@REALM', where the realm is derived from the hostname
in the standard fashion. So, when you give a service name like
'gssklog/reconfigurable.cs.berkeley.edu@BERKELEY.EDU', the mechanism takes
'gssklog/reconfigurable.cs.berkeley.edu' as the service name, and
'BERKELEY.EDU' as the hostname. Following a bad recommendation in RFC2743,
it then attempts to "canonicalize" the hostname by looking it up in DNS.
If you look up BERKELEY.EDU's address in DNS, and then do a reverse lookup
on that address, you'll find that arachne.berkeley.edu is BERKELEY.EDU's
canonical hostname.
Doug is also right that you don't need the -s in this case, because the
default service name 'gssklog@reconfigurable.cs.berkeley.edu' is correct.
However, you do need to add an appropriate domain_realm mapping to your
krb5.conf so that this hostname is mapped into the BERKELEY.EDU realm.
-- Jeffrey T. Hutzelman (N3NHS) <jhutz+@cmu.edu>
Sr. Research Systems Programmer
School of Computer Science - Research Computing Facility
Carnegie Mellon University - Pittsburgh, PA