The right way to kerberize a trinary service...
Everette Gray Allen
Everette_Allen at ncsu.edu
Wed Dec 3 11:19:27 EST 2003
I hope this is the right place to ask a question about kerberizing a
"service". The problem is very much like ticket forwarding or proxy
authentication with a timing twist. Note using V5 tickets only.
The setup involves 3 process: an application in users' space which will
get a service ticket, a background, processing daemon (on the same
machine but not running as any of the users) which will process data
from the application potentially long after the user has logged out (but
before the ticket expires) and a sending program which will use the
service ticket to submit this processed data to a remote machine using
an established kerberized service. So data from multiple users is being
processed on the local box by a daemon which is not any of the users but
the processed output for each user must be sent to the remote service
using the that user's sgt.
Further constraints:
a) I can only change the code for my application and the sending program.
b) I can not control when the sending program runs (depends on how much
processing is done).
c) The daemon can not fork per user.
d) I do not want to cache the service ticket using the file system (I
actually already have that model working).
If the processing daemon were on a remote server (and the source code
was available) running all the time then I would just use forwardable
tickets and be done. But since 1) the daemon is local, and 2) the
process that needs to send the data as the users is not running at the
same time as the user application then I can't fake it with "localhost
forwarding".
What I can do is pass either a text or binary "blob" in an options block
from my application to the daemon who will then just hand it to my
sending process when it is called. My question is how to package the
sgt so it can make the trip and be usable? I really don't know enough
about how forwardable or proxy tickets are meant to be used or how to
reasonably "loan" tickets to local processes I want to trust.
I understand all the reasons this can be bad, insecure, etc and I don't
want to discuss those. I want to discuss how I might accomplish what is
outlined out or what alternatives might be given the constraints.
Pointers to examples of code that forwards sgts would be great!
--
Everette Gray Allen Systems Programmer II
ITD Computing Services Macintosh Support Specialist
2620 Hillsborough St, Campus Box 7109
Raleigh, NC 27695-7109
919-515-4558 Everette_Allen at ncsu.edu
More information about the krbdev
mailing list