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

Re: Loading LDAP schema files into cn=config

On 3/7/2011 2:18 ÏÎ, Howard Chu wrote:

We've been discussing this problem (ACL rule descriptions) for quite a while. My current thinking is that somehow we can use attribute options to help. Visually it might be better to associate the option with the original attribute, e.g.
This would require defining a new (and strange) type of attribute option though, since the value with the option has no relation (syntactically) to the original attribute type.

The other alternative is to add a generic description attribute, and tag it with the attribute that a comment refers to:
    description;x-olcAccess: blah blah blah

This is a lot simpler for us to implement.

Sorry for jumping back to this issue again, but I think that this is an important issue from an administrator's point of view and AFAIK it has not been tackled yet.

I would like to suggest two possible (alternative) changes on the olcAccess attribute:

1. In order to achieve proper display order of olcAccess rules (since most clients automatically sort values based on characters), I would like to ask that the default numbering is not {0}...{n}, but {00000} ... {n} where n is a 5-digit integer (I will depict this as DDDDD). This scheme would support 100.000 (0 - 99999) rules and I believe that it would be sufficient for all practical needs. (If not, it could be made a 6 digit figure; if it is too much already, it could be a 4-digit figure.) Please note that proper ordering/listing of these rules is important in everyday administration!

As an example, instead of:

   olcAccess: {0}to dn.subtree=...
   olcAccess: {1}to dn.regex=...


   olcAccess: {00000}to dn.subtree=...
   olcAccess: {00001}to dn.regex=...

2. On comments about ACL rules: numbering could provide a possible solution (if it's technically feasible and software architects consider it appropriate). olcAccess could take two possible values, one for comments and one for the rule itself; "numbering" could in this case be: {DDDDDc} and {DDDDDr} where D is a digit, c refers to a comment and r refers to the rule itself. This approach would have the advantage that most ldap clients would display rules and comments together in proper sequence. Of course {DDDDDc} would be optional. OpenLDAP software would:

1. Automatically add the {DDDDDr} tag (for new rules), as it now adds
   an {X} numeric index.
2. Allow admins to manually add olcAccess values starting with a
   {DDDDDc} and it would ignore them when evaluating rules.
3. This scheme would allow the automatic inclusion of existing ACL
   comments when converting from slapd.conf, by including {DDDDDc}
   values for the olcAccess attribute, as needed.

As an example:

   olcAccess: {00000c}*** Provide access to subtree xxxx ***
   olcAccess: {00000r}to dn.subtree=...
   olcAccess: {00001c}*** Provide access to whatever ***
   olcAccess: {00001r}to dn.regex=...

To take this a bit further, multiple {DDDDDc} could be allowed and it would be up to the administrator(s) to use an initial string to allow proper sorting of such comments (for example {00000c}[00]...{00000c}[01] etc.). OpenLDAP software would ignore these values in evaluating rules anyway.

Just my 2c on an everyday maintenance problem, or a seed for further or other proposals.

By the way, a question: in case someone manually deletes (accidentally or intentionally) a rule so that a gap in numbering occurs, will OpenLDAP continue to evaluate subsequent rules? For example, if someone deletes existing rule {12} (current numbering scheme), will the system evaluate ACLs after {11} (like {13}, {14} etc.)?

Thanks for your time,