To me this seemed to be intent from data model.

- Group is PartyGroup that can be a collection of party through 
PartyRelationship.
- PartyGroup is a Party. SecurityGroup can apply to Party hence to a PartyGroup
- SecurityGroup is not a group of users, it is a role that applies to a Party.


On closer inspection that does seem to be the case.
It seems that SecurityGroup is really a collection of user logins.. so not a 
role at all.

I see your point.. inserting a SecurityRole entity between Group and Permission 
would be more flexible. In that case SecurityGroup is really a UserLoginGroup.

Harmeet

----- Original Message -----
From: "Ruth Hoffman" <rhoff...@aesolves.com>
To: dev@ofbiz.apache.org
Sent: Tuesday, May 5, 2009 1:44:34 PM GMT -05:00 US/Canada Eastern
Subject: Re: Brainstorming: Security Configuration Patterns

Harmeet:

Groups within OFBiz are similar to roles but in the RBAC model a "role" 
is an entity in and of itself. A group or collection of groups (also 
defined in RBAC as unique entities) may have one or more roles applied 
to them just as a user might. I think the value of RBAC is in its 
extensibility.

For example, by defining "roles" we can abstract the definition of a 
permission (the security constraint in this case) away from the 
assignment of the permission.

Just my 2 cents.
Ruth
> I think an important thing missing is parentId in SecurityGroup.
> Adding that would give you heirarchy. Groups sort of are roles. Group has 
> association with Subject(UserLogin through UserLoginSecurityGroup), 
> Permission(SecurityGroupPermission), Permission is tied implicitly to action 
> and resource.. Sort of RBAC.
>
> Harmeet
>
> ----- Original Message -----
> From: "Ruth Hoffman" <rhoff...@aesolves.com>
> To: dev@ofbiz.apache.org
> Sent: Tuesday, May 5, 2009 11:05:12 AM GMT -05:00 US/Canada Eastern
> Subject: Re: Brainstorming: Security Configuration Patterns
>
> Hi All:
> One pattern I worked with some time ago is called Role Based Access 
> Control (RBAC). This would be similar to #4 below, where you have a 
> "role" - with permissions associated with that role - defining 
> authorization levels. If you are interested in exploring this further, 
> I'd be happy to elaborate.
>
> Ruth
> David E Jones wrote:
>   
>> This thread is specifically for discussing possible configuration 
>> patterns to use in OFBiz going forward. Please keep other discussion 
>> in another thread, including the merits of each possibility... let's 
>> just brainstorm in this thread.
>>
>> To get things started, here are the patterns that have been discussed 
>> recently (in high level terms, we can get into implementation and 
>> specific practices later on), these are in no particular order:
>>
>> 1. artifacts responsible for their own security (especially services 
>> and screens), and security permissions are referred to directly (ie 
>> the actual permissions are configured directly in the XML tags for the 
>> artifact)
>>
>> 2. artifacts responsible for their own security, and no direct 
>> references are used and instead an indirect security control is 
>> referred to; this is basically the permission service model we've been 
>> using where a permission service is basically a security policy that 
>> refers to permissions, can query/filter/whatever to do record level 
>> security, and in customization the permission service can be 
>> overridden or its function changed by ECA rules without touching any 
>> OOTB code or configuration
>>
>> 3. a hybrid of #1 and #2 where artifacts refer directly to permissions 
>> and there is external configuration based on those permissions that 
>> can add other qualifying permissions and/or invoke logic to change how 
>> that permission is evaluated (ie override the default behavior of 
>> requiring the user to have that permission and either add additional 
>> constraints or allow alternative constraints even if the user does not 
>> have the original permission that triggered it all); this is recursive 
>> so that if an alternative permission is configured that permission may 
>> also have further alternative permissions; also being recursive if 
>> attached logic evaluates other permissions that may have alternative 
>> permissions and/or permission logic attached to them; as I understand 
>> what Andrew has implemented, this is the pattern he followed
>>
>> 4. artifacts are not responsible for their own security except to 
>> specify whether any sort of permission is required or not (ie a 
>> require-permission attribute, would be true by default; for example 
>> most ecommerce screens would have this set to false); access control 
>> would be configured externally so that you can configure access at the 
>> most granular level possible (we would go ALL the way here, including: 
>> screens, services, forms, form fields, menu items, tree nodes, etc, 
>> etc); the access control tools would have patterns and features to 
>> facilitate grouping of artifacts, grouping of users (ie just use the 
>> current SecurityGroup entity), and support for both functionality 
>> access and record-level access
>>
>> Can anyone thing of other patterns? Again, PLEASE do not comment on 
>> which one you like better or what you think the advantages or 
>> disadvantages are of each in this thread (of course, definitely think 
>> about such things and feel free to comment in other threads, I just 
>> want this to be a "hat's off" (yes, that is a reference to Six 
>> Thinking Hats by Edward de Bono; anyone who hasn't read that should 
>> give it a go!) brainstorming session.
>>
>> Thank You!
>> -David
>>
>>
>>     
>
>
>   

Reply via email to