[Freeipa-devel] "Commit comments log" functionality in IPA

Simo Sorce ssorce at redhat.com
Thu Nov 6 06:45:49 UTC 2008


On Thu, 2008-11-06 at 01:39 -0500, Simo Sorce wrote:
> On Wed, 2008-11-05 at 19:14 -0500, Dmitri Pal wrote:
> > Hello,
> > 
> > One of the ideas that we are exploring for IPA v2 is to have sort of 
> > “commit comment” feature. The examples of the use cases are:
> > * Administrator changed and pushed out the policy. As he saves it or 
> > applies it (pushes it) he will be prompted to make a comment mainly 
> > describing why the operation was performed.
> > * Administrator changed mapping of the users and hosts to a role. He is 
> > prompted to make a comment about the operation he performed.
> > * Administrator changed host based access control rule. Same thing as 
> > above.
> > 
> > These are just several examples of where the commenting on the operation 
> > performed might be very important for audit purposes.
> > The main differentiator between the logging of different activity and 
> > such feature is that it allows administrator to leave some tips, reasons 
> > and answers to questions “why this or that operation was performed and 
> > why it was done this way”. We believe that having such functionality 
> > would be very valuable for IPA customers.
> > 
> > Bugzilla bug has a very similar functionality. It records not only 
> > comments themselves, but who left the comment and when. It also allows 
> > modifying comments later on. I have seen the implementations where the 
> > comments can't be modified but just added.
> 
> Up to here I follow you, and I think some users would find somewhat
> useful to have some sort of process management around high level UI
> functions.
> I am not sure a mandatory comment on most operations would be welcome, I
> think most Admins would just hate such a feature, as it would get in the
> way of their job, this unless, perhaps, it pops up only once per "macro"
> operation.
> If it is not mandatory admins will simply skip it.
> 
> Suppose Admin A has to change some 20 policies to fix a minor policy
> bug. If you ask him once to leave a comment, he may grumble, but he
> would probably do it. If you ask him to leave a comment for each of the
> 20 policies, he would probably A) throw the keyboard at the monitor
> after the 3rd one, B) try to find and kill us :), C) post the following
> comment for all changes: "asdfg".
> 
> > In our case we would have to implement some similar functionality but in 
> > DS. That pauses a challenge.
> 
> Ok, here I don't follow you anymore. It's understandable to have audit
> trails on some operations, but why would we want to store them in DS ??
> 
> Can you provide what are the reasons that would make a good idea to
> store this kind of data in DS instead of a log file or a log database ?
> 
> I honestly see no reason, nothing but a human operator would make any
> use of such attributes, they are not useful to any machine which is the
> real consumer of DS data.
> As you pointed on it would add an unnecessary amount of data to
> replicate around.
> 
> Also because DS is not a logging server but a directory server there are
> many other problems in trying to use it to store logs.
> 
> 
> So, while I may agree that some kind of commenting feature could be
> useful, I really do not see at all DS as the right storage for this
> stuff. Far from.
> 
> If comments are required for audit trails I think they should just go in
> the auditing system and marked as special "comment" logs. Otherwise they
> should probably simply go in a normal log file or a relational log
> database (the latter in case online searches are required).
> 
> 
> Now to some of the reasons why I don't see DS as a viable option:
> 
> - Multi-value attributes are not ordered, so you need to invent some
> scheme to store this data structured so that ordering can be preserved.
> Sure probably using the "posting" date before the content is all is
> needed, but that makes attributes not searcheable.
> 
> - You would have to create a clean up process that removes old stuff, I
> don't think that keeping around a hundred entries log for years would
> make sense.
> 
> - We would need to index yet another attribute if you want to make
> searches on it, note also that just consulting the log would require
> searches on the identity store increasing its load, something a log
> file/database would avoid completely.
> 
> - If you invent a complex format you loose the capability to do decent
> filtering on searches, meaning you will often need to do wide scope
> searches and implement filtering in the UI (slooow, and loads DS)
> 
> - You have no relation of events (ldap not beeing a relational database
> makes it particularly difficult indeed).
> 
> - If a single UI command changes many different objects, where do you
> store the comment? In one? All of them?
> If in one how do you relate changes to others ?
> If you replicate it an all objects how do you deal with access to all
> entries? (see below)
> See also scenario above about angry admins if you require a comment for
> each object being changed.
> 
> - Comments may contain sensitive information that should not be leaked,
> so comments should not me generally available for search on ldap.
> This would require to add (on the fly?) ACIs on objects that get
> comments.
> 
> - Some ACI may allow a lower level admin to perform an operation on some
> attributes, but not add objectclasses or new attributes.
> We loose the comments in this case ?
> 
> - Anyone with write access to the attribute will be able to change the
> contents, making them generally completely useless as audit trails.
> Delegation of any minor task would require write access to comments all
> over the place.

Forgot another important few:

- It would make extremely difficult for people to extract this
information. Instead of connecting to a well known relational database
with well known tools used for reporting, they would have to build a
custom parser that speaks LDAP. This thing alone would be a deadly one
imo.

- The time it will take us to build all the necessary machinery around
managing such attributes (I see you even envision a plugin :-O ) would
be considerable, and would probably be much better spent on more
critical features at this stage imo. (Piping this data in a db from
python will take no more than a day or two, building schema, plugin, and
all the testing will require weeks).

Simo.

-- 
Simo Sorce * Red Hat, Inc * New York




More information about the Freeipa-devel mailing list