ACL for Constrained Delegation?

Rick van Rein rick at openfortress.nl
Thu Feb 20 06:34:53 EST 2014


Hi Benjamin / MIT,

>> How would I setup these delegations, and only these delegations, with MIT Kerberos5?
> 
> http://k5wiki.kerberos.org/wiki/Projects/ConstrainedDelegation notes that there is a krbAllowedToDelegateTo attribute that can be set in LDAP (manually) to limit delegation.
> 
> I don't think I have an actual example handy.

Thanks for the pointer!

I looked into the LDAP specs for this attribute, and some questions remain.  An example could give a working solution, but perhaps MIT should answer these questions by updating the project documentation page?


LOOKUP:

This refers to an LDAP attribute krbAllowedToDelegateTo.  In the LDAP scheme, this is 
defined as

> ##### A list of services to which a service principal can delegate.
> attributetype ( 1.3.6.1.4.1.5322.21.2.4
>                 NAME 'krbAllowedToDelegateTo'
>                 EQUALITY caseExactIA5Match
>                 SUBSTR caseExactSubstringsMatch
>                 SYNTAX 1.3.6.1.4.1.1466.115.121.1.26)

This attribute may be incorporated into the krbPrincipalAux auxiliary class, which 
presumably is attached to krbPrincipal:

> ###### The principal data auxiliary class. Holds principal information
> ###### and is used to store principal information for Person, Service objects.
> 
> objectclass ( 2.16.840.1.113719.1.301.6.8.1
>                 NAME 'krbPrincipalAux'
>                 SUP top
>                 AUXILIARY
>                 MAY ( krbPrincipalName $ krbCanonicalName $ krbUPEnabled $ 
> krbPrincipalKey $ krbTicketPolicyReference $ krbPrincipalExpiration $ 
> krbPasswordExpiration $ krbPwdPolicyReference $ krbPrincipalType $ krbPwdHistory $ 
> krbLastPwdChange $ krbLastAdminUnlock $ krbPrincipalAliases $ krbLastSuccessfulAuth $ 
> krbLastFailedAuth $ krbLoginFailedCount $ krbExtraData $ krbAllowedToDelegateTo ) )


QUESTIONS:

 * These specifications do not clarify how the "list of services" is represented in the 
attribute -- is it done through multiple krbAllowedToDelegateTo attributes (this is 
permitted) or is there a format such as space-separation or comma-separation?

 * These specifications do not clarify how "services" are declared -- probably through 
their krbPrincipalName or krbCanonicalName?  Or does that depend on the whether there 
is a krbCanonicalName for the principal?  Are abbreviated forms (dropping the @REALM 
part) permitted/advised?


It’d be good to have these questions answered.


Thanks for any help you can give,

Rick van Rein
OpenFortress


More information about the Kerberos mailing list