7 Network Working Group E. Stokes
8 Request for Comments: 2820 D. Byrne
9 Category: Informational IBM
17 Access Control Requirements for LDAP
21 This memo provides information for the Internet community. It does
22 not specify an Internet standard of any kind. Distribution of this
27 Copyright (C) The Internet Society (2000). All Rights Reserved.
31 This document describes the fundamental requirements of an access
32 control list (ACL) model for the Lightweight Directory Application
33 Protocol (LDAP) directory service. It is intended to be a gathering
34 place for access control requirements needed to provide authorized
35 access to and interoperability between directories.
37 The keywords "MUST", "SHOULD", and "MAY" used in this document are to
38 be interpreted as described in [bradner97].
42 The ability to securely access (replicate and distribute) directory
43 information throughout the network is necessary for successful
44 deployment. LDAP's acceptance as an access protocol for directory
45 information is driving the need to provide an access control model
46 definition for LDAP directory content among servers within an
47 enterprise and the Internet. Currently LDAP does not define an
48 access control model, but is needed to ensure consistent secure
49 access across heterogeneous LDAP implementations. The requirements
50 for access control are critical to the successful deployment and
51 acceptance of LDAP in the market place.
53 The RFC 2119 terminology is used in this document.
58 Stokes, et al. Informational [Page 1]
60 RFC 2820 Access Control Requirements for LDAP May 2000
65 The major objective is to provide a simple, but secure, highly
66 efficient access control model for LDAP while also providing the
67 appropriate flexibility to meet the needs of both the Internet and
68 enterprise environments and policies.
70 This generally leads to several general requirements that are
75 This section is divided into several areas of requirements: general,
76 semantics/policy, usability, and nested groups (an unresolved issue).
77 The requirements are not in any priority order. Examples and
78 explanatory text is provided where deemed necessary. Usability is
79 perhaps the one set of requirements that is generally overlooked, but
80 must be addressed to provide a secure system. Usability is a security
81 issue, not just a nice design goal and requirement. If it is
82 impossible to set and manage a policy for a secure situation that a
83 human can understand, then what was set up will probably be non-
84 secure. We all need to think of usability as a functional security
89 G1. Model SHOULD be general enough to support extensibility to add
90 desirable features in the future.
92 G2. When in doubt, safer is better, especially when establishing
95 G3. ACL administration SHOULD be part of the LDAP protocol. Access
96 control information MUST be an LDAP attribute.
98 G4. Object reuse protection SHOULD be provided and MUST NOT inhibit
99 implementation of object reuse. The directory SHOULD support policy
100 controlling the re-creation of deleted DNs, particularly in cases
101 where they are re-created for the purpose of assigning them to a
102 subject other than the owner of the deleted DN.
104 3.2 Semantics / Policy
106 S1. Omitted as redundant; see U8.
108 S2. More specific policies must override less specific ones (e.g.
109 individual user entry in ACL SHOULD take precedence over group entry)
110 for the evaluation of an ACL.
114 Stokes, et al. Informational [Page 2]
116 RFC 2820 Access Control Requirements for LDAP May 2000
119 S3. Multiple policies of equal specificity SHOULD be combined in
120 some easily-understood way (e.g. union or intersection). This is
121 best understood by example. Suppose user A belongs to 3 groups and
122 those 3 groups are listed on the ACL. Also suppose that the
123 permissions for each of those groups are not identical. Each group is
124 of equal specificity (e.g. each group is listed on the ACL) and the
125 policy for granting user A access (given the example) SHOULD be
126 combined in some easily understood way, such as by intersection or
127 union. For example, an intersection policy here may yield a more
128 limited access for user A than a union policy.
130 S4. Newly created directory entries SHOULD be subject to a secure
133 S5. Access policy SHOULD NOT be expressed in terms of attributes
134 which the directory administrator or his organization cannot
135 administer (e.g. groups whose membership is administered by another
138 S6. Access policy SHOULD NOT be expressed in terms of attributes
139 which are easily forged (e.g. IP addresses). There may be valid
140 reasons for enabling access based on attributes that are easily
141 forged and the behavior/implications of doing that should be
144 S7. Humans (including administrators) SHOULD NOT be required to
145 manage access policy on the basis of attributes which are not
146 "human-readable" (e.g. IP addresses).
148 S8. It MUST be possible to deny a subject the right to invoke a
149 directory operation. The system SHOULD NOT require a specific
150 implementation of denial (e.g. explicit denial, implicit denial).
152 S9. The system MUST be able (semantically) to support either
153 default-grant or default-deny semantics (not simultaneously).
155 S10. The system MUST be able to support either union semantics or
156 intersection semantics for aggregate subjects (not simultaneously).
158 S11. Absence of policy SHOULD be interpretable as grant or deny.
159 Deny takes precedence over grant among entries of equal specificity.
161 S12. ACL policy resolution MUST NOT depend on the order of entries
164 S13. Rights management MUST have no side effects. Granting a
165 subject one right to an object MUST NOT implicitly grant the same or
166 any other subject a different right to the same object. Granting a
170 Stokes, et al. Informational [Page 3]
172 RFC 2820 Access Control Requirements for LDAP May 2000
175 privilege attribute to one subject MUST NOT implicitly grant the same
176 privilege attribute to any other subject. Granting a privilege
177 attribute to one subject MUST NOT implicitly grant a different
178 privilege attribute to the same or any other subject. Definition: An
179 ACL's "scope" is defined as the set of directory objects governed by
180 the policy it defines; this set of objects is a sub-tree of the
181 directory. Changing the policy asserted by an ACL (by changing one
182 or more of its entries) MUST NOT implicitly change the policy
183 governed by an ACL in a different scope.
185 S14. It SHOULD be possible to apply a single policy to multiple
186 directory entries, even if those entries are in different subtrees.
187 Applying a single policy to multiple directory entries SHOULD NOT
188 require creation and storage of multiple copies of the policy data.
189 The system SHOULD NOT require a specific implementation (e.g. nested
190 groups, named ACLs) of support for policy sharing.
192 3.3 Usability (Manageability)
194 U1. When in doubt, simpler is better, both at the interface and in
197 U2. Subjects MUST be drawn from the "natural" LDAP namespace; they
200 U3. It SHOULD NOT be possible via ACL administration to lock all
201 users, including all administrators, out of the directory.
203 U4. Administrators SHOULD NOT be required to evaluate arbitrary
204 Boolean predicates in order to create or understand policy.
206 U5. Administrators SHOULD be able to administer access to
207 directories and their attributes based on their sensitivity, without
208 having to understand the semantics of individual schema elements and
209 their attributes (see U9).
211 U6. Management of access to resources in an entire subtree SHOULD
212 require only one ACL (at the subtree root). Note that this makes
213 access control based explicitly on attribute types very hard, unless
214 you constrain the types of entries in subtrees. For example, another
215 attribute is added to an entry. That attribute may fall outside the
216 grouping covered by the ACL and hence require additional
217 administration where the desired affect is indeed a different ACL.
218 Access control information specified in one administrative area MUST
219 NOT have jurisdiction in another area. You SHOULD NOT be able to
220 control access to the aliased entry in the alias. You SHOULD be able
221 to control access to the alias name.
226 Stokes, et al. Informational [Page 4]
228 RFC 2820 Access Control Requirements for LDAP May 2000
231 U7. Override of subtree policy MUST be supported on a per-
232 directory-entry basis.
234 U8. Control of access to individual directory entry attributes (not
235 just the whole directory entry) MUST be supported.
237 U9. Administrator MUST be able to coarsen access policy granularity
238 by grouping attributes with similar access sensitivities.
240 U10. Control of access on a per-user granularity MUST be supported.
242 U11. Administrator MUST be able to aggregate users (for example, by
243 assigning them to groups or roles) to simplify administration.
245 U12. It MUST be possible to review "effective access" of any user,
246 group, or role to any entry's attributes. This aids the administrator
247 in setting the correct policy.
249 U13. A single administrator SHOULD be able to define policy for the
250 entire directory tree. An administrator MUST be able to delegate
251 policy administration for specific subtrees to other users. This
252 allows for the partitioning of the entire directory tree for policy
253 administration, but still allows a single policy to be defined for
254 the entire tree independent of partitioning. (Partition in this
255 context means scope of administration). An administrator MUST be able
256 to create new partitions at any point in the directory tree, and MUST
257 be able to merge a superior and subordinate partition. An
258 administrator MUST be able to configure whether delegated access
259 control information from superior partitions is to be accepted or
262 U14. It MUST be possible to authorize users to traverse directory
263 structure even if they are not authorized to examine or modify some
264 traversed entries; it MUST also be possible to prohibit this. The
265 tree structure MUST be able to be protected from view if so desired
266 by the administrator.
268 U15. It MUST be possible to create publicly readable entries, which
269 may be read even by unauthenticated clients.
271 U16. The model for combining multiple access control list entries
272 referring to a single individual MUST be easy to understand.
274 U17. Administrator MUST be able to determine where inherited policy
275 information comes from, that is, where ACLs are located and which
276 ACLs were applied. Where inheritance of ACLs is applied, it must be
277 able to be shown how/where that new ACL is derived from.
282 Stokes, et al. Informational [Page 5]
284 RFC 2820 Access Control Requirements for LDAP May 2000
287 U18. It SHOULD be possible for the administrator to configure the
288 access control system to permit users to grant additional access
289 control rights for entries which they create.
291 4. Security Considerations
293 Access control is a security consideration. This documents addresses
298 This glossary is intended to aid the novice not versed in depth about
299 access control. It contains a list of terms and their definitions
300 that are commonly used in discussing access control [emca].
302 Access control - The prevention of use of a resource by unidentified
303 and/or unauthorized entities in any other that an authorized manner.
305 Access control list - A set of control attributes. It is a list,
306 associated with a security object or a group of security objects.
307 The list contains the names of security subjects and the type of
308 access that may be granted.
310 Access control policy - A set of rules, part of a security policy, by
311 which human users, or their representatives, are authenticated and by
312 which access by these users to applications and other services and
313 security objects is granted or denied.
315 Access context - The context, in terms of such variables as location,
316 time of day, level of security of the underlying associations, etc.,
317 in which an access to a security object is made.
319 Authorization - The granting of access to a security object.
321 Authorization policy - A set of rules, part of an access control
322 policy, by which access by security subjects to security objects is
323 granted or denied. An authorization policy may be defined in terms
324 of access control lists, capabilities, or attributes assigned to
325 security subjects, security objects, or both.
327 Control attributes - Attributes, associated with a security object
328 that, when matched against the privilege attributes of a security
329 subject, are used to grant or deny access to the security object. An
330 access control list or list of rights or time of day range are
331 examples of control attributes.
333 Credentials - Data that serve to establish the claimed identity of a
334 security subject relative to a given security domain.
338 Stokes, et al. Informational [Page 6]
340 RFC 2820 Access Control Requirements for LDAP May 2000
343 Privilege attributes - Attributes, associated with a security subject
344 that, when matched against control attributes of a security object,
345 are used to grant or deny access to that subject. Group and role
346 memberships are examples of privilege attributes.
348 Security attributes - A general term covering both privilege
349 attributes and control attributes. The use of security attributes is
350 defined by a security policy.
352 Security object - An entity in a passive role to which a security
355 Security policy - A general term covering both access control
356 policies and authorization policies.
358 Security subject - An entity in an active role to which a security
363 [ldap] Kille, S., Howes, T. and M. Wahl, "Lightweight Directory
364 Access Protocol (v3)", RFC 2251, August 1997.
366 [ecma] ECMA, "Security in Open Systems: A Security Framework"
367 ECMA TR/46, July 1988.
369 [bradner97] Bradner, S., "Key Words for use in RFCs to Indicate
370 Requirement Levels", BCP 14, RFC 2119, March 1997.
394 Stokes, et al. Informational [Page 7]
396 RFC 2820 Access Control Requirements for LDAP May 2000
399 7. Authors' Addresses
407 Phone: +1 512 458 4037 ext 5012
409 EMail: blakley@dascom.com
418 Phone: +1 512 838 3725
420 EMail: stokes@austin.ibm.com
429 Phone: +1 512 838 1930
431 EMail: djbyrne@us.ibm.com
437 Mountain View, CA 94043
440 Phone: +1 650 937 4948
442 EMail: prasanta@netscape.com
450 Stokes, et al. Informational [Page 8]
452 RFC 2820 Access Control Requirements for LDAP May 2000
455 8. Full Copyright Statement
457 Copyright (C) The Internet Society (2000). All Rights Reserved.
459 This document and translations of it may be copied and furnished to
460 others, and derivative works that comment on or otherwise explain it
461 or assist in its implementation may be prepared, copied, published
462 and distributed, in whole or in part, without restriction of any
463 kind, provided that the above copyright notice and this paragraph are
464 included on all such copies and derivative works. However, this
465 document itself may not be modified in any way, such as by removing
466 the copyright notice or references to the Internet Society or other
467 Internet organizations, except as needed for the purpose of
468 developing Internet standards in which case the procedures for
469 copyrights defined in the Internet Standards process must be
470 followed, or as required to translate it into languages other than
473 The limited permissions granted above are perpetual and will not be
474 revoked by the Internet Society or its successors or assigns.
476 This document and the information contained herein is provided on an
477 "AS IS" basis and THE INTERNET SOCIETY AND THE INTERNET ENGINEERING
478 TASK FORCE DISCLAIMS ALL WARRANTIES, EXPRESS OR IMPLIED, INCLUDING
479 BUT NOT LIMITED TO ANY WARRANTY THAT THE USE OF THE INFORMATION
480 HEREIN WILL NOT INFRINGE ANY RIGHTS OR ANY IMPLIED WARRANTIES OF
481 MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE.
485 Funding for the RFC Editor function is currently provided by the
506 Stokes, et al. Informational [Page 9]