[Pacemaker] Multi-level ACLs for the CIB

Yan Gao ygao at novell.com
Wed Jan 13 12:49:00 UTC 2010


Dejan Muhamedagic wrote:
> Hi,
> 
> On Wed, Jan 13, 2010 at 10:04:12AM +0100, Andrew Beekhof wrote:
> [...]
>>>>>>> The user "ygao" is a system account.
>>>>>>> We could define several roles as we wish, such as "admin",
>>>>>>> "operator" and "monitor", which could contain a member list
>>>>>>> respectively if more than one user have the same permissions. A
>>>>>>> role also could be referenced by a particular "<user ...>"
>>>>>>> definition.
>>>>>> I find this a bit confusing: roles have members and users can
>>>>>> reference roles. Shouldn't one of the two suffice?
>>>>> An user can reference one or more roles to combine the rules with his
>>>>> particular definition.
>> I don't think you want that.
>> "One user, one role" would be my advice.
> 
> Wouldn't that be too restrictive?
How about removing the "members" in role, while preserving the multiple
references of roles ?

> 
>> Otherwise you have all sorts of potentially non-obvious cases to deal with.
>> Like if roleA allows modification of an attribute and roleB disallows
>> it, and the user has both.
> 
> First match wins: the result is undefined, i.e. depends on the
> order of roles. Which we apparently don't have. Unless the member
> element is dropped in favour of role references.
> 
>> Seriously, make the admin do the normalization (otherwise you have to
>> do it for every invocation which is going to slow you down).
>>
>> This is the schema I'd suggest
>>
>> +  <define name="element-acls">
>> +    <element name="acls">
>> +      <zeroOrMore>
>> +	<choice>
>> +	  <element name="user">
>> +	    <attribute name="id"><text/></attribute>
>> +	    <choice>
>> +	      <attribute name="role"><data type="IDREF"/></attribute>
>> +	      <zeroOrMore>
>> +              <ref name="element-acl"/>
>> +	      </zeroOrMore>
>> +	    </ichoice>
>> +	  </element>
>> +	  <element name="role">
>> +	    <attribute name="id"><data type="ID"/></attribute>
>> +	    <zeroOrMore>
>> +            <ref name="element-acl"/>
>> +	    </zeroOrMore>
>> +	  </element>
>> +	</choice>
>> +      </zeroOrMore>
>> +    </element>
>> +  </define>
>>
>> In english:
>> - Roles have ACLs
>> - Users can be assigned EITHER a role OR a set of ACLs
> 
> This is a further simplification. Though it would make the
> configuration more straightforward and easier to understand.
Ok. Once we have a consensus on all of the issues, I'll post
the updated schema including the ACL support for "attribute" later
for you to confirm.

Thanks,
  Yan

-- 
Yan Gao <ygao at novell.com>
Software Engineer
China Server Team, OPS Engineering, Novell, Inc.





More information about the Pacemaker mailing list