[281] in Kerberos-V5-bugs

home help back first fref pref prev next nref lref last post

Re: kadmin and multiple realms.

daemon@ATHENA.MIT.EDU (Theodore Ts'o)
Sat Jan 16 00:55:55 1993

Date: Sat, 16 Jan 93 00:55:36 EST
From: tytso@ATHENA.MIT.EDU (Theodore Ts'o)
To: Rocky - Rakesh Patel <rapatel@theophilus.rutgers.edu>
Cc: marantz@klinzhai.rutgers.edu, gmachin@somnet.sandia.gov,
Cc: krb5-bugs@MIT.EDU
In-Reply-To: Rocky - Rakesh Patel's message of Thu, 14 Jan 1993 19:36:33 -0500 (EST),

   Date: Thu, 14 Jan 1993 19:36:33 -0500 (EST)
   From: Rocky - Rakesh Patel <rapatel@theophilus.rutgers.edu>

   I found a solution that is generic enough to use without affecting
   normal usage.  I eliminated the keyproc and keyprocarg from
   krb5_recvauth(),  and ended up having kadmind not find any
   keys for changepw/kerberos.  This was because the default keytab
   file was (/etc/v5srvtab), which meant I needed to add the service
   keys into the servers v5srvtab.  Once I traced down all the code,
   I found that out and added in the service keys, and did the trick, as
   rd_req_dec() uses the remote server principal to determine the service
   key to fetch and feeds it to krb5_kt_get_entry(). 

   I really would have preferred having it fetched from the database, but
   that would probably mean adding in changepw/kerberos specific conditions
   in rd_req_dec().  As it is, I have to update adm_process() to call
   krb5_recvauth() without the keyproc only if the server is serving
   more than one realm.

   Any comments or suggestions on this hack?

Yup:  Ick.  :-)

If it weren't for how the rcache is initialized, it would be be possible
to pass NULL as the server to krb5_recvauth(), and have it do the right
thing.  It's too late and I'm too tired to do it now, but it won't be
too hard to fix krb5_recvauth() so that you can pass a null server to
it.  I'll put it on my todo list.

Note that once this is done, if the passed in server is NULL, it is the
responsibility of the krb5_recvauth()'s caller to make sure that the
server actually used by the client was an appropriate one and not one
from outer space.

						- Ted


home help back first fref pref prev next nref lref last post