Re: [389-devel] Design review: Access control on entries specified in MODDN operation (ticket 47553)

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On 02/25/2014 04:53 PM, Ludwig Krispenz wrote:
> 
> On 02/25/2014 04:45 PM, Rich Megginson wrote:
>> On 02/25/2014 08:28 AM, thierry bordaz wrote:
>>> On 02/25/2014 04:17 PM, Rich Megginson wrote:
>>>> On 02/25/2014 08:14 AM, thierry bordaz wrote:
>>>>> On 02/25/2014 03:46 PM, Rich Megginson wrote:
>>>>>> On 02/25/2014 07:42 AM, thierry bordaz wrote:
>>>>>>> On 02/25/2014 03:34 PM, Rich Megginson wrote:
>>>>>>>> On 02/25/2014 07:24 AM, thierry bordaz wrote:
>>>>>>>>> On 02/24/2014 10:47 PM, Noriko Hosoi wrote:
>>>>>>>>>> Rich Megginson wrote:
>>>>>>>>>>> On 02/24/2014 09:00 AM, thierry bordaz wrote:
>>>>>>>>>>>> Hello,
>>>>>>>>>>>>
>>>>>>>>>>>>     IPA team filled this ticket
>>>>>>>>>>>>     https://fedorahosted.org/389/ticket/47553.
>>>>>>>>>>>>
>>>>>>>>>>>>     It requires an ACI improvement so that during a MODDN a
>>>>>>>>>>>>     given user is only allowed to move an entry from one
>>>>>>>>>>>>     specified part of the DIT to an other specified part of
>>>>>>>>>>>>     the DIT. This without the need to grant the ADD permission.
>>>>>>>>>>>>
>>>>>>>>>>>>     Here is the design of what could be implemented to
>>>>>>>>>>>>     support this need
>>>>>>>>>>>>    
>>>>>>>>>>>> http://port389.org/wiki/Access_control_on_trees_specified_in_MODDN_operation
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>>     regards
>>>>>>>>>>>>     thierry
>>>>>>>>>>>>
>>>>>>>>>>>
>>>>>>>>>>> Since this not related to any Red Hat internal or customer
>>>>>>>>>>> information, we should move this discussion to the 389-devel list.
>>>>>>>>>>>
>>>>>>>>>> Hi Thierry,
>>>>>>>>>>
>>>>>>>>>> Your design looks good.  A minor question.  The doc does not mention
>>>>>>>>>> about "deny".  For instance, in your example DIT, can I allow
>>>>>>>>>> "moddn_to" and "moddn_from" on the top "dc=example,dc=com" and deny
>>>>>>>>>> them on "cn=tests".  Then, I can move an entry between cn=accounts
>>>>>>>>>> and staging, but not to/from cn=tests?  Or "deny" is not supposed to
>>>>>>>>>> use there?
>>>>>>>>>>
>>>>>>>>>> Thanks,
>>>>>>>>>> --noriko
>>>>>>>>>
>>>>>>>>> Hi Noriko,
>>>>>>>>>
>>>>>>>>> Thanks for having looked at the document. You are right, I missed to
>>>>>>>>> document how 'DENY' aci would work.
>>>>>>>>>
>>>>>>>>>  I updated the design
>>>>>>>>> http://port389.org/wiki/Access_control_on_trees_specified_in_MODDN_operation#ACI_allow.2Fdeny_rights
>>>>>>>>> to indicate how a DENY rights could be used.
>>>>>>>>>
>>>>>>>>> By default if there is no ACI granting 'allow', the operation is
>>>>>>>>> rejected. So in that case, without ACI applicable on 'cn=tests', MODDN
>>>>>>>>> to/from 'cn=tests' will not be authorized.
>>>>>>>>> Adding a DENY to target 'cn=tests' would also work but I think it is
>>>>>>>>> not required.
>>>>>>>>>
>>>>>>>>> In the example I added, the 'ALLOW' right is granted to a tree
>>>>>>>>> (cn=accounts,SUFFIX) except to a subtree of it
>>>>>>>>> (cn=except,cn=accounts,SUFFIX)
>>>>>>>>
>>>>>>>> So in order to do a MODDN operation, you need both the moddn_from aci
>>>>>>>> and moddn_to aci?
>>>>>>>>
>>>>>>>> For example:
>>>>>>>>
>>>>>>>> dn: dc=example,dc=com
>>>>>>>> aci: (target="ldap:///cn=staging,dc=example,dc=com";)(version 3.0; acl
>>>>>>>> "MODDN from"; allow (moddn_from))
>>>>>>>>  userdn="ldap:///uid=admin_accounts,dc=example,dc=com"; ;)
>>>>>>>>
>>>>>>>> If I only have this aci, will it allow anything?  That is, if I don't
>>>>>>>> have a (moddn_to) aci somewhere, will this (moddn_from) aci allow me to
>>>>>>>> move anything?
>>>>>>>
>>>>>>> Yes it will allow you to do a MODDN if you are granted the 'ADD' right
>>>>>>> on the new superior entry.
>>>>>>>
>>>>>>> I think this double ACI can be an issue as freeipa was hoping to use a
>>>>>>> single ACI. But I have not found a solution to grant move (to/from) in a
>>>>>>> single aci syntax.
>>>>>>
>>>>>> I think it is very important to specify both the source and the
>>>>>> destination of a MODDN operation.  I don't think this will be possible in
>>>>>> all cases without having 2 target DNs in a single ACI statement.
>>>>>
>>>>> My concern is that if we have something like :
>>>>>
>>>>> aci: target_rule (version 3.0; acl "MODDN control"; allow (moddn_to,
>>>>> moddn_from)
>>>>>  bind_rule;)
>>>>>
>>>>> and 'target_rule' defines two DNs, then moddn_to/from are granted for both
>>>>> DNs. so in our case, the user would be allowed to move an entry
>>>>> staging->accounts but also account->staging.
>>>>
>>>> Right.  It is necessary to be able to specify moddn_from="DN1" modrn_to="DN2"
>>>
>>> Ok yes it would work.
>>>
>>> Now I am unsure of the benefit of having a single aci with that new
>>> 'target_rule' syntax compare to two aci with the current syntax. I can
>>> imagine a performance gain in terms of aci scan and evaluation but wonder if
>>> there is an other benefit.
>>
>> One problem with having two acis is referential integrity - keeping the pairs
>> in sync with other changes.  Having to keep track of two acis is much more
>> than twice as difficult as keeping track of a single aci.
>>
>> I can appreciate that it will be very difficult to change the aci syntax in
>> such a way as to support two target clauses in a single aci.  And, it might
>> not be sufficient to simply have
>>
>> aci: (target_from="ldap:///dn_from";)(target_to="ldap:///dn_to";)...
> That would be a possibility, we could have multiple acis of the form
> aci:
> (target_from="ldap:///dn_from";)(target_to="ldap:///dn_to";)..allow(moddn);.......
> 
> to define all allowed moves.
> So two new targets and one new permission: moddn

That would be preferable for me as well. I think we want to be able to control
the from-to pair in one ACI. Because if we have containers like the following:

- cn=system users,SUFFIX
- cn=staged system users,SUFFIX

- cn=staged users,SUFFIX
- cn=users,SUFFIX

And if I have an unprivileged user with the original ACIs, i.e.

- moddn_from staged system users
- moddn_to system users

- moddn_from staged users
- moddn_to users

the user would be able to move staged system users to users or staged users to
system users - which IMO is not OK.

Martin
--
389-devel mailing list
389-devel@xxxxxxxxxxxxxxxxxxxxxxx
https://admin.fedoraproject.org/mailman/listinfo/389-devel





[Index of Archives]     [Fedora Directory Announce]     [Fedora Users]     [Older Fedora Users Mail]     [Fedora Advisory Board]     [Fedora Security]     [Fedora Devel Java]     [Fedora Desktop]     [ATA RAID]     [Fedora Marketing]     [Fedora Mentors]     [Fedora Package Review]     [Fedora Art]     [Fedora Music]     [Fedora Packaging]     [CentOS]     [Fedora SELinux]     [Big List of Linux Books]     [KDE Users]     [Fedora Art]     [Fedora Docs]

  Powered by Linux