[Date Prev][Date Next] [Chronological] [Thread] [Top]

draft-ietf-ldup-inheritance-00.txt



Please publish the attached new internet draft.

Abstract:

There are several possible ways to manage inheritance of policy 
information in a directory service.  This document describes several 
known mechanisms and recommends one for general use that can be 
implemented using [LDUP]. 

To the LDUP and LDAPEXT working groups:

This is the draftified version of my notes on inheritance mechanisms
for which there is already discussion taking place on the mailing lists.
I've broken out this inheritance discussion from the LDAP Subentries
internet draft so as to keep the two discussions separate and on-track.

To the LDUP and LDAPEXT chairs:

I'd appreciate a short time to discuss this document in one or both
work group meetings in Minneapolis, if you think that appropriate.

To Rick:

Here's wondering if it arrives in base64 encoding for you ;-)

Regards,
Ed

=================
Ed Reed
Reed-Matthews, Inc.
+1 801 796 7065
http://www.Reed-Matthews.COM






INTERNET-DRAFT 
draft-ietf-ldup-inheritance-00.txt 
                                                     Ed Reed 
                                         Reed-Matthews, Inc. 
                                           February 21, 2001 
 
           Policy Inheritance Mechanisms for LDAP 
 


1  Status of this Memo 

 
This document is an Internet-Draft and is in full conformance with all 
provisions of Section 10 of RFC2026. 
 
Internet-Drafts are working documents of the Internet Engineering Task 
Force (IETF), its areas, and its working groups. Note that other groups 
may also distribute working documents as Internet-Drafts.  
 
Internet-Drafts are draft documents valid for a maximum of six months 
and may be updated, replaced, or obsoleted by other documents at any 
time. It is inappropriate to use Internet-Drafts as reference material 
or to cite them other than as "work in progress."  
 
The list of current Internet-Drafts can be accessed at 
http://www.ietf.org/ietf/1id-abstracts.txt.  
 
The list of Internet-Draft Shadow Directories can be accessed at 
http://www.ietf.org/shadow.html. 
 
This Internet-Draft expires on August 21, 2001. 
 


2  Abstract / Description 

There are several possible ways to manage inheritance of policy 
information in a directory service.  This document describes several 
known mechanisms and recommends one for general use that can be 
implemented using [LDUP]. 


3  Preamble 

At the San Diego IETF (49) in December 2000 a bar boff (1 round = $89 
or so USD so there were 20-30 people in attendance) was convened to 
consider how to deal with inheritance of policy down through a tree 
from superior to subordinate contexts.  The topic came up because it's 
an issue for access control policy, which many of us would like to see 
be able to be inheritable from parents to children, so that an access 
granted to a parent or superior organizational unit, for instance, 
could be interpreted correctly as being implicitly granted to all the 
subordinate entries of that parent.   
 


Reed                                           [Page 1 of 5] 
                  Expires August 21, 2001 


INTERNET DRAFT                               February 21, 2001 
             draft-ietf-ldup-inheritance-00.txt 

Other policy information could benefit from such inheritance, and the 
general case is that policy set at the root of an enterprise (for 
instance) administrative area is applied to the whole of the 
administrative area, even if the administrative area is partitioned and 
distributed among several servers (or groups of servers) throughout the 
enterprise.  Real world examples include Novell NDS trees, Microsoft 
ADS Forests, and probably things like the directory information tree in 
X.500 for a country, a governmental agency or any other sort of large 
organization. 


4  The Requirement 

To support the kind of top-down policy inheritance described above, 
servers holding subordinate partitions of the administrative area (in 
other words, simple subtrees rooted below the root of the 
administrative area where the policy is set) need to be informed of the 
policy that they are supposed to inherit from above. 
 
Note that I've not said anything about how the policy is represented 
yet.  It may be via attributes on the root of the administrative area, 
or it may be via subentries located immediately subordinate to the root 
of the administrative area, or by some other means.  In fact, for the 
general case that includes the full X.500 subentry definition with 
subtree specifications in the subentry, it's only necessary that the 
policy subentry applies to the entry and its attributes being governed 
(I think - David?  Helmut?  Richard?  Others?) 
 
So the question is how to make the subordinate partition of the 
namespace, that does not necessarily co-reside on a server where the 
administrative area is rooted and where the inheritable governing 
policy is asserted, how does that subordinate namespace "know" about 
the inherited policy so that it can enforce it? 


5  Possible Approaches (incomplete list) 

There are several ways this has been approached in the past, and one 
can imagine many others. 
 
1) The inheritable policy could be asserted when superior/subordinate 
references are being administratively set to glue the two namespaces 
together, either manually by the administrators or programmatically via 
some hierarchical operational binding protocol, for instance.  I think 
this is how X.500 implementations generally handle it. [Editor:  change 
this to an affirmative statement when verified] 
 
2) A specialized form of replication that knows of the need to maintain 
cached information aggregated from superior administrative areas in the 
directory information tree takes responsibility to identify inheritable 
information and to maintain copies of it on or near subordinate 
partition roots.  This makes the information available locally to the 
subordinate namespace in a "read-only" fashion that facilitates 
decision-making and makes the specialized replication scheme 
responsible for propagating policy changes to all the subordinates when 
needed.  This is how Novell's NDS does it.   


Reed                                           [Page 2 of 5] 
                  Expires August 21, 2001 


INTERNET DRAFT                               February 21, 2001 
             draft-ietf-ldup-inheritance-00.txt 

 
3) Servers holding subordinate partitions of an administrative area can 
"opportunistically cache" policy information locally.  In this 
scenario, the access control policy engine (probably, as the direct 
consumer of the inherited policy information in one example) knows that 
policy information may be defined in superior areas of the directory 
information tree that it needs to know about, and so it "walks the 
tree" until it finds what is clearly the "top" of the authoritative 
administrative area within which it is supposed to operate.  (I say it 
this way to highlight that the subordinate may well know its not 
supposed to walk the tree all the way to "dc=com", for instance, if the 
root of the organizations administrative area is "dc=oncalldba, 
dc=com", for instance)  At any rate, the policy engine walks the tree 
"as far as its supposed to go" accumulating policy information that 
applies to it and caching it locally for future use.  The walk would 
take place at server startup time, or when the partition is placed "in 
service" (if it ever goes off line), or on scheduled "has anything 
changed I need to know about" walkabouts.  Each policy engine would be 
responsible for its own cache of information and its own walkabouts (I 
like that term for this...) 
 
4) whenever policy is defined at an administrative point that applies 
to subordinate entries, a process (either client or server-based, or 
some combination of both) performs the inverse to the walkabout 
described in #3 above - that is, it descends the tree depositing policy 
information (or changing policy information it finds there) on 
subordinate entries (either on partition roots or on each leaf entry 
itself) as it goes.  This approach has the benefit of "pushing" changes 
from the point of administrative action to all the areas subject to the 
policy change, rather than relying on the "opportunistic cache" of #3.  
With some care, it need not be any more bandwidth consuming than the 
specialized replication scheme described in #2 above.  And is more 
dynamic than the static configuration of #1 above.  I think this is 
generally how Microsoft handles inheritable policy for access 
controls.  [Editor:  change this to an affirmative statement when 
verified]  
 
[Editorial note - this note already covers more than we discussed at 
the bar boff] 
 
There are probably other approaches.  In fact, we came up with one more 
at the bar boff. 
 
5) Each server holding a subordinate partition of an administrative 
area could also hold a "sparse replica" of the otherwise non-resident 
superior administrative areas that hold policy information relevant to 
the partition it does hold.  This approach would allow LDUP to be 
responsible for propagating changes to policy "as written" to 
subordinate servers that need it, avoids creating specialized 
mechanisms that need to know how to aggregate policy information 
through multiple tiers of administrative area roots (something both #2 
and #4 require, and something I for one really, really, really don't 
want to try to generalize for a standard), leaves interpretation of 
superior policy entirely up to the local policy decision functions 
(where it belongs) and "only" requires read-only replicas of the 
superior administrative root entry and its subentries.   
 

Reed                                           [Page 3 of 5] 
                  Expires August 21, 2001 


INTERNET DRAFT                               February 21, 2001 
             draft-ietf-ldup-inheritance-00.txt 

Being "read-only" replicas, the LDUP house keeping is kept to a minimum 
(because there will never be changes flowing from the subordinate copy 
to the administrative area root "master" replica).  There will be 
replication traffic, which can be scheduled or event driven.  The 
sparse replica replication agreements can be set via administrators to 
control how or what subentries are replicated (maybe only those flagged 
"inheritable").  As a read-only replica, it can be configured via 
transitive synch to take its changes from another read-only replica so 
you don't HAVE to have the situation where every server in the 
enterprise is banging away at the root-most master server for policy 
information, so we should be able to manage the network traffic scaling 
issues in large trees (though its true that using transitive synch 
lengthens the time it takes for changes to propagate to all servers).  
And, if you don't need it, don't use it.   
 
This is effectively how Novell manages schema policy propagation 
through their trees, and [may ? Editor: verify] also how Microsoft 
handles schema propagation through their forests. 
 
The cool thing is that this approach works for any number of 
inheritable policy information, including schema, password policy, etc. 
as well as for access control information. 


6  Conclusion and Recommendation 

The result of the bar boff was the publication of this note.   
 
The recommendation of this note is that mechanism #5 above be used to 
propagate policy information using LDUP when subordinate partitions of 
a directory information tree need to know about inherited policy that 
affects them.  The approach has the benefits of having considerable 
operational experience in enterprise-scale directory deployments, uses 
[LDUP] in a manner consistent with its intended usage, avoids trying to 
create a new generalized description of inheritance aggregation (and 
leaves that to the applications who will define their own required 
semantics, anyway), and generally accomplishes the (limited) objectives 
set out in the requirement statement above. 
 


7  References 

[LDUP] refers to the collection of Internet drafts and RFCs which 
describe the requirements, architecture, schema, conflict resolution 
procedures, etc. that are available from the LDUP home page: 
     http://www.ietf.org/html.charters/ldup-charter.html 


8  Copyright Notice 

Copyright (C) The Internet Society (2001). All Rights Reserved.  
 
This document and translations of it may be copied and furnished to 
others, and derivative works that comment on or otherwise explain it or 
assist in its implementation may be prepared, copied, published and 

Reed                                           [Page 4 of 5] 
                  Expires August 21, 2001 


INTERNET DRAFT                               February 21, 2001 
             draft-ietf-ldup-inheritance-00.txt 

distributed, in whole or in part, without restriction of any kind, 
provided that the above copyright notice and this paragraph are 
included on all such copies and derivative works. However, this 
document itself may not be modified in any way, such as by removing the 
copyright notice or references to the Internet Society or other 
Internet organizations, except as needed for the purpose of developing 
Internet standards in which case the procedures for copyrights defined 
in the Internet Standards process must be followed, or as required to 
translate it into languages other than English. 
 
The limited permissions granted above are perpetual and will not be 
revoked by the Internet Society or its successors or assigns. 
 
This document and the information contained herein is provided on an 
"AS IS" basis and THE INTERNET SOCIETY AND THE INTERNET ENGINEERING 
TASK FORCE DISCLAIMS ALL WARRANTIES, EXPRESS OR IMPLIED, INCLUDING BUT 
NOT LIMITED TO ANY WARRANTY THAT THE USE OF THE INFORMATION HEREIN WILL 
NOT INFRINGE ANY RIGHTS OR ANY IMPLIED WARRANTIES OF MERCHANTABILITY OR 
FITNESS FOR A PARTICULAR PURPOSE." 
 


9  Author?s Address 

Edwards E. Reed 
Reed-Matthews, Inc. 
1064 E 140 North 
Lindon, UT  84042 
USA 
E-mail: eer@oncalldba.com  
      
LDUP Mailing List: ietf-ldup@imc.org  
LDAPEXT Mailing List: ietf-ldapext@netscape.com 























Reed                                           [Page 5 of 5] 
                  Expires August 21, 2001