[Freeipa-devel] [DESIGN] Time-Based HBAC Policies

Stanislav Laznicka slaznick at redhat.com
Wed May 18 13:28:40 UTC 2016


On 05/18/2016 02:19 PM, Alexander Bokovoy wrote:
> On Wed, 18 May 2016, Stanislav Laznicka wrote:
>>>> when removal succeeds but addition fails for some reason? The 
>>>> operation is not atomic anymore.
>>>>
>>>
>> We offline-discussed this with Honza. There should be a new command 
>> `ipa hbacrule-replace-accesstime rule_name --orig-time=icalstr1 
>> --new-time=icalstr2`. As it would be derived from LDAPQuery, the 
>> atomicity is kept. This may not be very nice for CLI but should work 
>> well for WebUI. Both icalstr1 and icalstr2 need to be encoded as 
>> newlines that appear so often in iCalendar strings would only make a 
>> mess here.
>>
>> Example of use:
>>
>> ipa hbacrule-replace-accesstime rule_name 
>> --orig-time="'BEGIN:VCALENDAR\\r\\nPRODID:-//The Company//iCal4j 
>> 1.0//EN\\r\\nVERSION:2.0\\r\\nMETHOD:REQUEST\\r\\nBEGIN:VEVENT\\r\\nUID:1 at company.org\\r\\nDTSTAMP:20160406T112129Z\\r\\nDTSTART:20101115T050000Z\\r\\nDTEND:20101115T070000Z\\r\\nRRULE:FREQ=MONTHLY;INTERVAL=5;BYDAY=MO;BYHOUR=5,6\\r\\nEND:VEVENT\\r\\nEND:VCALENDAR\\r\\n'" 
>> --new-time="'BEGIN:VCALENDAR\\r\\nPRODID:-//The Company//iCal4j 
>> 1.0//EN\\r\\nVERSION:2.0\\r\\nMETHOD:REQUEST\\r\\nBEGIN:VEVENT\\r\\nUID:1 at company.org\\r\\nDTSTAMP:20160406T112129Z\\r\\nDTSTART:20101115T050000Z\\r\\nDTEND:20101115T070000Z\\r\\nRRULE:FREQ=MONTHLY;INTERVAL=5;BYDAY=MO,TU;BYHOUR=5,6\\r\\nEND:VEVENT\\r\\nEND:VCALENDAR\\r\\n'" 
>>
>>
>> to add Tuesdays to the timespan defined by the rule.
> I would really like to see a file input support here. It would be
> simpler to operate in CLI as you would anyway create vCal files -- no
> sane person is going to deal with these strings directly on the command
> line.
>
That is correct and some basic file support is already in the patches I 
sent earlier, though replacing rules is not a part of it. However, it 
does not solve the problem as you would still need access to the files 
to work with the attributes and then change the files accordingly.

However, we've had yet another brainstorm with Petr^2, Martin^2 and 
Honza. We really don't want the above so we came up with some ideas that 
I'm listing below. Note that we also do not want more than one VEVENT 
component in any of the time rules. So, the ideas:
     1) Have the time rules as separate objects. This approach got most 
support here. Adding Simo and Jakub to CC should they have any input 
against this.
     2) Have the time rules stored as strings in the multi-valued 
accesstime attribute at each rule. These would be referenced by their 
UID property of the VEVENT component of the iCalendar string (instead of 
that pure hell above). As each of the strings can only contain one 
VEVENT which has to define a UID, the only problem would be to keep the 
uniqueness of UIDs consistent.

 From my point of view, 1) seems rather better but your experience might 
be different. Don't hesitate to share your opinions, please.

Standa




More information about the Freeipa-devel mailing list