[krbdev.mit.edu #7356] GSSAPI constrained delegation fails with default initiator cred

Greg Hudson via RT rt-comment at krbdev.mit.edu
Tue Sep 11 02:14:07 EDT 2012


An application performs GSSAPI constrained delegation by acquiring a 
GSS_C_BOTH credential, using it as the acceptor_cred_handle for 
gss_accept_sec_context, then using the resulting delegated_cred_handle 
with gss_init_sec_context.

This process works if the acceptor credential has resolved its ccache 
(which results if the credential was acquired with a specified name, for 
instance).  But if that hasn't happened yet, kg_compose_deleg_cred() 
rejects the acceptor credential as an impersonator_cred because 
kg_is_initiator_cred() returns false.

Something in the code path needs to resolve the initiator half of the 
verifier cred.  The simplest fix is to make kg_accept_krb5() use 
kg_cred_resolve() instead of krb5_gss_validate_cred().  That fix would 
cause ccache resolution to happen in cases where it isn't required (the 
caller might not have asked for a delegated credential, or the client 
might not have supplied a forwardable ticket), but that's probably okay.



More information about the krb5-bugs mailing list