replay of service tickets
Sorin Manolache
sorinm at gmail.com
Wed Mar 16 05:33:53 EDT 2016
Hello,
My apologies if it is not the right mailing list for asking this question.
I have a system consisting of an Authentication Server, a Backend and a
Client.
The Client first invokes the Authentication Server.
The Authentication Server executes
gss_acquire_cred()
gss_init_sec_context()
As a result, it obtains a kerberos service ticket that it sends to the
Client.
Next, the Client invokes the Backend and passes the obtained service ticket.
The Backend executes
gss_accept_sec_context().
The Client<->Authentication Server and Client<->Backend are HTTP. The
Client is oblivious to the fact that the data item it receives/sends is
a kerberos service ticket. For it it's just opaque data, so the Client
uses no GSS/Kerberos stack.
Assuming that the service ticket expires in N seconds, may the Client
perform several requests to the Backend using the same service ticket
(that is without making new requests to the Authentication Server)
during the N seconds until the ticket expiration?
I'm asking the question because I have two backends with two GSS stacks.
The backend with the binary GSS stack of MIT accepts the ticket several
times with no error. The second backend uses a Java GSS stack. It
accepts the ticket once but if I attempt a second request with the same
ticket then I get an exception indicating that I'm trying to replay the
ticket which it does not accept. Apparently the Java stack "remembers"
the ticket and rejects requests if it finds the ticket in its cache.
Which implementation obeys the standard? The Java one or the MIT GSS
stack? Are both approaches correct and is it just a matter of
configuring the two stacks?
Thank you in advance,
Sorin
More information about the krbdev
mailing list