[krbdev.mit.edu #5596] patch for providing a way to set the ok-as-delegate flag
DEEngert@anl.gov via RT
rt-comment at krbdev.mit.edu
Wed Jul 18 14:01:32 EDT 2007
nalin at redhat.com via RT wrote:
> On Wed, Jul 18, 2007 at 10:50:43AM -0400, Sam Hartman via RT wrote:
>> Here's the current Sandia patch. I'm sorry for sitting on this so
>> long.
>
> No worries.
>
>> My recommendation is that if possible you use the same flag and kadmin
>> option that they do. I'm a bit confused by the client support. As
>> far as I can tell the new function they add is static so I'm not sure
>> how you'd ever use it.
>
> Both patches toggle the same bit in the kdb entry, and as far as the
> kadmin-specific changes go, the only real difference is the user-visible
> strings. I'm not wedded to the values I used there.
>
> But I think there's a meaningful difference in how the flag (which is
> the same attribute bit in both versions) is used in the two patches.
>
> If I'm reading it right, the Sandia patch appears to use the flag to
> control whether or not the client library actually attempts to obtain a
> forwardable TGT when the application calls krb5_fwd_tgt_creds(). That
> doesn't match my reading of how the flag is expected to be used. FWIW,
> I don't see a way to call the new static function with different flags,
> either.
>
> In the case I've been looking at (gss_init_sec_context() called with
> GSS_C_DELEG_FLAG unset, but the realm admin wants credentials to be
> delegated), I don't think we get as far as calling krb5_fwd_tgt_creds().
>
> My reading of the spec is that if the flag is set in the credentials we
> use for authenticating to a service, we should delegate credentials to
> that service.
Thats not the way I read it. It is advisory information from the KDC
to the client. RFC 4120 section 2.8 says:
"The OK-AS-DELEGATE provides a way for the KDC to communicate local realm
policy to a client regarding whether an intermediate server is trusted
to accept such credentials."
It does not require the client to delegate! The Sandia mods are enforcing
a local policy that will only delegate if the KDC says the server is trusted,
and the client requests delagation, i.e. called krb5_fwd_tgt_creds() In effect
doing what Windows clients and AD do by default.
Even in Windows the "ksetup /SetRealmFlags <realm> Delegate" can be used
to tell the client assume the OK-AS-DELAGATE is always on. In effect
overriding the local client policy. I thing this only applies to non-AD
realms, as not all KDC have this feature, so this command can be used
until they do.
For example, in krb5_gss_init_sec_context(), if the
> credential which get_credentials() returns has the
> TKT_FLG_OK_AS_DELEGATE bit set, we should force GSS_C_DELEG_FLAG to be
> on. (For completeness, I guess similar changes would be desirable in
> the telnet/rsh/rlogin clients, though I haven't looked at the sources
> for those with this in mind.)
>
> We could use some of the matching code in the patch to fine-tune that
> behavior, but when I think about it some more, I can't come up with a
> really good reason that I shouldn't just be trusting the KDC's (and by
> extension the realm admin's) judgement.
>
> _______________________________________________
> krb5-bugs mailing list
> krb5-bugs at mit.edu
> https://mailman.mit.edu/mailman/listinfo/krb5-bugs
>
>
--
Douglas E. Engert <DEEngert at anl.gov>
Argonne National Laboratory
9700 South Cass Avenue
Argonne, Illinois 60439
(630) 252-5444
More information about the krb5-bugs
mailing list