On 24/01/2017 20:31, Francesco Chicchiriccò wrote:
> On 24 jan 2017 18:29:22 CET, Colm O hEigeartaigh <cohei...@apache.org> ha 
> scritto:
>> Hi Francesco,
>>
>> Thanks for your detailed reply! It's going to take me some time to wrap
>> my
>> head around all of the details. :-)
> Oh, sorry for this, but these ideas have been ringing in my head for quite 
> some time...
> I have also others, all in the direction of further improving Syncope, and I 
> am happy to discuss here to clarify, better define, go beyond my direct 
> experience, etc.
>
>> Let me just ask an initial question...when you define privilege management
>> as " the ability to discover, define and map the rights that users own
>> on external resources" - are you referring only to resources in the
>> Syncope terminology here - Identity stores like LDAP etc.?
>>
>> The reason I ask is that our interest is in being able to define
>> privileges for external services (say some arbitrary REST service requires a 
>> given
>> entitlement). Is this use-case accommadated by your proposal, or are we
>> talking about separate things here?
> Interesting point, indeed.
> I admit that below I was exactly referring to Syncope's External Resources, 
> but your sample about REST service is significant.
>
> Let's suppose we introduce the new concept of Application: what kind of 
> communication will Syncope establish with it?
> Coming to your sample: what would be the use case of managing in Syncope the 
> privileges available into an external REST service? How would you fetch them? 
> Supposing you're able to associate them to (groups of) users, wow would you 
> push such association to the REST service?
>
> That's why I initially thought to reuse ConnId connectors for this purpose.

After some further thinking on this topic, I have realized that my perspective 
was simply wrong.

I was assuming that Syncope will *provision* privileges to applications in the 
same way as today it provisions users to resources, but I realize instead that 
we should reverse the perspective:

* Syncope defines applications, privileges and access policies (User U1 is 
allowed to access application A1 with privilege P1)
* Syncope provides REST endpoint(s) that applications can invoke to check if 
their users own certain privileges

Essentially, Syncope will provide all means to define and evaluate access 
policies, and I don't see any reason to not adopt the relevant standards in 
this domain, e.g. XACML.

Does it sound better?
Regards.

>> On Fri, Jan 20, 2017 at 8:30 AM, Francesco Chicchiriccò<ilgro...@apache.org> 
>> wrote:
>>
>>> With "dynamic entitlements", I think you are referring to privilege 
>>> management, e.g. the ability to discover, define and map the rights that 
>>> users own on external resources.
>>>
>>> I would not confuse this, however, with Syncope entitlements: starting with 
>>> 2.0, in fact, we now finally have a stable mechanism for which entitlements 
>>> are defined as constants in Java classes (and extensions might add their 
>>> own, as shown by the Camel Provisioning Manager), with positive effects on 
>>> code organization both for Core's Spring Security configuration and Admin 
>>> Console's delegated administration.
>>>
>>> I think that privilege management is a great addition to Syncope; here are 
>>> few items coming to my mind:
>>>
>>> 1. privileges must be represented as (JPA) entities, have their own TO, 
>>> REST endpoint, Admin Console management, etc. (as all other entities)
>>> 2. privileges should be defined / discovered in external resource(s): 
>>> resource R1 defines privileges P1, P2, P3; resource R2 defines privileges 
>>> P4,P5; about discovery, ConnId does not provide (yet?) any primitive
>>> 3. privileges should be grouped somehow and finally assigned to users, but 
>>> depend on each external resource
>>> 4. privileges are not really for users (in the way Syncope defines them) 
>>> but rather for accounts, e.g. the mapped counterpart of a Syncope user onto 
>>> a given external resource.
>>>
>>> I think we could take the chance to add both privilege management and 
>>> multi-account management (see SYNCOPE-957): both features require in fact a 
>>> new concept to be introduced in Syncope: accounts.
>>>
>>> Naturally, I don't see any chance to land all above in 2.0 (considerable 
>>> changes involved, even for internal storage); it will be 2.1 at least.
>>>
>>> Regards.
>>>
>>> [1] 
>>> https://lists.apache.org/thread.html/5e6936a1a9e7fef1f42e7e2261e5fd5dd3ab6aaee669cc82f16284c6@%3Cuser.syncope.apache.org%3E
>>> [2] 
>>> https://lists.apache.org/thread.html/947d7261a242cb729aafb551b28fa9bad6c81c2e02eb6f2ec98b7a0a@1428995050@%3Cuser.syncope.apache.org%3E
>>> [3] 
>>> https://lists.apache.org/thread.html/4662efa8948fc9bba944d8d85ddf902d6c900530ccf78d50df9adb90@1386320489@%3Cuser.syncope.apache.org%3E
>>> [4] 
>>> https://lists.apache.org/thread.html/be01e1d26de4f7b9ce38026364566dc606496d19eba7e008efa227a0@1375945339@%3Cuser.syncope.apache.org%3E
>>> [5] 
>>> https://lists.apache.org/thread.html/e4b5727f8506cdca10cf2a6e4332ed23e9c6f73679fa397bb277abe4@1367333293@%3Cuser.syncope.apache.org%3E
>>>
>>> On 19/01/2017 17:53, Colm O hEigeartaigh wrote:
>>>> Hi all,
>>>>
>>>> I'd like to discuss the possibility of supporting dynamic entitlements in 
>>>> Apache Syncope. The goals being to explore if the Apache Syncope community 
>>>> feels that this is a good idea, and if so to try to break the various work 
>>>> items down and start creating JIRAs etc.
>>>>
>>>> Entitlements in Apache Syncope are currently statically defined and are 
>>>> used for internal authorization purposes only. The problem arises when you 
>>>> start considering things like integrating SCIM with Syncope, as the 
>>>> concepts of roles/entitlements in SCIM do not map naturally to groups in 
>>>> Syncope.
>>>>
>>>> So it would be great to be able to map roles/entitlements associated with 
>>>> users directly to the same concepts in Syncope. I don't know whether it 
>>>> might be desirable to have different types of entitlements, e.g. whether 
>>>> we want to maintain a separation between "internal" entitlements used
>>>> for authorization in Syncope, and general entitlements meant for external 
>>>> consumption.
>>>>
>>>> The task would involve some UI work to be able to create entitlements. I'm 
>>>> not sure off-hand if we require REST changes, as we can get the 
>>>> entitlements of a User by getting the roles of the user, and then querying 
>>>> the entitlements associated with the role etc.
>>>>
>>>> Is it possible to associate roles with a group and then have members of 
>>>> that group inherit the entitlements?
>>>>
>>>> WDYT?
>>>>
>>>> Colm.
-- 
Francesco Chicchiriccò

Tirasa - Open Source Excellence
http://www.tirasa.net/

Member at The Apache Software Foundation
Syncope, Cocoon, Olingo, CXF, OpenJPA, PonyMail
http://home.apache.org/~ilgrosso/


Reply via email to