+1

On Mon, Sep 12, 2016 at 11:31 AM, Udo Kohlmeyer <ukohlme...@pivotal.io>
wrote:

> So it seems that we are all in agreement.
>
> The communication channel security (via SSL) is to be separated from the
> RBAC.
>
> I suggest the enum that deals with the securing of the communication
> channels is renamed to: SecurableCommunicationChannels. This internal
> enum will not be shared with RBAC anymore nor exposed as a public API.
>
> In addition to this http will be renamed to web, which is non-protocol
> specific.
>
> --Udo
>
>
>
> On 10/09/2016 3:17 AM, Michael Stolz wrote:
>
>> Cool! I agree with this completely. Wasn't clear to me in the earlier
>> thread that we were keeping the thoughts separate.
>>
>> --
>> Mike Stolz
>> Principal Engineer, GemFire Product Manager
>> Mobile: 631-835-4771
>>
>> On Fri, Sep 9, 2016 at 1:06 PM, John Blum <jb...@pivotal.io> wrote:
>>
>> I agree with Udo here.  Securing the channel between component/services
>>> has
>>> really very little to do with Authentication/Authorization, and by
>>> "Authentication", I mean in the user-centric sense, not the SSL "trusted"
>>> sense (with "trusted" keys and such).
>>>
>>> Whether a user can or cannot do something (in other words, is
>>> "authorized",
>>> or allowed to invoke an action, given an ACL) is a function of the action
>>> being performed and the privileges/rights that a user has been granted.
>>> That is independent of whether or not the channel has been secured.
>>>
>>> I also agree with Kirk that HTTP should perhaps be renamed to WEB.
>>>
>>> Finally, while SSL is usually a cause to reboot the system, Auth has no
>>> such restrictions.  I could easily change Auth credentials of a user
>>> (e.g.
>>> revoke privileges) at runtime.
>>>
>>> My $0.02,
>>> -John
>>>
>>>
>>> On Fri, Sep 9, 2016 at 10:00 AM, Michael Stolz <mst...@pivotal.io>
>>> wrote:
>>>
>>> In a pure world I would go for all or nothing, but I always worry about
>>>>
>>> the
>>>
>>>> upgrade path. If I have to redeploy and restart EVERYTHING around the
>>>>
>>> whole
>>>
>>>> world simultaneously, it's a non-starter.
>>>>
>>>> --
>>>> Mike Stolz
>>>> Principal Engineer, GemFire Product Manager
>>>> Mobile: 631-835-4771
>>>>
>>>> On Fri, Sep 9, 2016 at 12:51 PM, Anthony Baker <aba...@pivotal.io>
>>>>
>>> wrote:
>>>
>>>> Mike, I was suggesting ON | OFF only for RBAC security, not for SSL
>>>>> configuration.  Any thoughts on that?
>>>>>
>>>>> Anthony
>>>>>
>>>>> On Sep 9, 2016, at 9:44 AM, Michael Stolz <mst...@pivotal.io> wrote:
>>>>>>
>>>>>> I think a reason that we might need to be less than all-or-nothing is
>>>>>>
>>>>> for
>>>>
>>>>> at least these two situations:
>>>>>>
>>>>>> 1. a user who started out with SSL disabled, and now wants to enable
>>>>>>
>>>>> it,
>>>>
>>>>> but can't take a full global outage, so needs to get it enabled for
>>>>>>
>>>>> the
>>>
>>>> WAN
>>>>>
>>>>>> first, and then for server-to-server and then for client/server.
>>>>>>
>>>>>> 2. SSL enabled over the WAN because that is not a trusted network,
>>>>>>
>>>>> but
>>>
>>>> they
>>>>>
>>>>>> can live without SSL for the server/server and client/server
>>>>>>
>>>>> connections
>>>>
>>>>> because they ARE in a trusted network and they don't need to pay the
>>>>>> overhead for SSL on those links.
>>>>>>
>>>>>> There are probably other scenarios as well, but these are the two
>>>>>>
>>>>> that
>>>
>>>> come
>>>>>
>>>>>> to mind quickly.
>>>>>>
>>>>>>
>>>>>>
>>>>>> --
>>>>>> Mike Stolz
>>>>>> Principal Engineer, GemFire Product Manager
>>>>>> Mobile: 631-835-4771
>>>>>>
>>>>>> On Fri, Sep 9, 2016 at 12:05 PM, Jinmei Liao <jil...@pivotal.io>
>>>>>>
>>>>> wrote:
>>>>
>>>>> That is my original thought as well. If we are protecting resources
>>>>>>> (CLUSTER and DATA), it should be protected no matter which way user
>>>>>>>
>>>>>> is
>>>
>>>> trying to access it. I guess I'll leave this to the PMs to decide.
>>>>>>>
>>>>>>> On Thu, Sep 8, 2016 at 7:37 PM, Anthony Baker <aba...@pivotal.io>
>>>>>>>
>>>>>> wrote:
>>>>>
>>>>>> Udo, Kirk - this makes sense and thanks for the discussion to help
>>>>>>>>
>>>>>>> clarify
>>>>>>>
>>>>>>>> the issue.
>>>>>>>>
>>>>>>>> Regarding GEODE-1648, does it make sense to do at all?  That is,
>>>>>>>>
>>>>>>> what
>>>
>>>> if
>>>>>
>>>>>> role-based access control is either ON | OFF instead of per
>>>>>>>>
>>>>>>> component.
>>>>
>>>>> If
>>>>>>>
>>>>>>>> we allow disabling RBAC for certain components, wouldn’t that make
>>>>>>>>
>>>>>>> it
>>>
>>>> possible to create a backdoor?  Could we start with a binary option
>>>>>>>>
>>>>>>> and
>>>>
>>>>> enable more granular control when requested by users?
>>>>>>>>
>>>>>>>> Anthony
>>>>>>>>
>>>>>>>> On Sep 8, 2016, at 4:11 PM, Kirk Lund <kl...@pivotal.io> wrote:
>>>>>>>>>
>>>>>>>>> +1 overall with some feedback...
>>>>>>>>>
>>>>>>>>> 1) I think the list is reasonable with a few nitpicks below
>>>>>>>>>
>>>>>>>>> 2) If these are Channels and not Components, then I would probably
>>>>>>>>>
>>>>>>>> name
>>>>>
>>>>>> it
>>>>>>>>
>>>>>>>>> SecurableChannels or SecurableCommunicationChannels or whatever.
>>>>>>>>>
>>>>>>>>> 3) I'd prefer HTTP be renamed to Web or other non-protocol word --
>>>>>>>>>
>>>>>>>> HTTP
>>>>>
>>>>>> is
>>>>>>>>
>>>>>>>>> a protocol and the names of the other channels are conceptual
>>>>>>>>>
>>>>>>>> channels
>>>>
>>>>> rather than a protocol (the others use TCP/IP or RMI but we don't
>>>>>>>>>
>>>>>>>> label
>>>>>
>>>>>> them as such). Or am I missing something here?
>>>>>>>>>
>>>>>>>>> 4) JMX is probably ok. Currently we are using (and securing) JMX
>>>>>>>>>
>>>>>>>> over
>>>>
>>>>> RMI
>>>>>>>
>>>>>>>> (javax.management.remote.rmi.RMIConnectorServer). There are other
>>>>>>>>> connectors for JMX including HTTP (ex: mx4j.tools.adaptor.http.
>>>>>>>>>
>>>>>>>> HttpAdaptor)
>>>>>>>>
>>>>>>>>> and SNMP (ex: com.sun.jmx.snmp.daemon.SnmpAdaptorServer). We only
>>>>>>>>>
>>>>>>>> need
>>>>>
>>>>>> JMX
>>>>>>>>
>>>>>>>>> over RMI for now, but would we add those others as new enums to
>>>>>>>>> SecurableChannels later if we add anything like that to Geode? Or
>>>>>>>>>
>>>>>>>> would
>>>>>
>>>>>> we
>>>>>>>>
>>>>>>>>> try to group those all together under the name JMX? Or decide when
>>>>>>>>>
>>>>>>>> the
>>>>
>>>>> time
>>>>>>>>
>>>>>>>>> comes?
>>>>>>>>>
>>>>>>>>> I think we should try to steer away from being overly controlled
>>>>>>>>>
>>>>>>>> by
>>>
>>>> specs
>>>>>>>
>>>>>>>> especially for reasonable changes. We all follow agile process,
>>>>>>>>>
>>>>>>>> so a
>>>
>>>> decision made one iteration could easily be undone or changed in
>>>>>>>>>
>>>>>>>> the
>>>
>>>> next
>>>>>>>
>>>>>>>> iteration and most of us are following weekly iterations.
>>>>>>>>>
>>>>>>>>> After a release anything exposed in a User API is very difficult
>>>>>>>>>
>>>>>>>> to
>>>
>>>> change
>>>>>>>>
>>>>>>>>> due to backwards compatibility constraints. I think we should be
>>>>>>>>>
>>>>>>>> much
>>>>
>>>>> more
>>>>>>>>
>>>>>>>>> careful with User APIs in Geode going forward to avoid some of the
>>>>>>>>>
>>>>>>>> problems
>>>>>>>>
>>>>>>>>> we have with pre-existing Geode User APIs that we inherited.
>>>>>>>>>
>>>>>>>>> -Kirk
>>>>>>>>>
>>>>>>>>> On Thu, Sep 8, 2016 at 2:07 PM, Udo Kohlmeyer <
>>>>>>>>>
>>>>>>>> ukohlme...@pivotal.io>
>>>>
>>>>> wrote:
>>>>>>>>
>>>>>>>>> As GEODE-420 deals with SSL comms configuration and GEODE-1648
>>>>>>>>>>
>>>>>>>>> with
>>>
>>>> Authentication&Authorization I think we need to be careful in
>>>>>>>>>>
>>>>>>>>> what
>>>
>>>> is
>>>>
>>>>> feasible and what is logical.
>>>>>>>>>>
>>>>>>>>>> For SSL comms it was decided that the following components are
>>>>>>>>>>
>>>>>>>>> relevant
>>>>>>>
>>>>>>>> [1] <https://cwiki.apache.org/confluence/display/GEODE/Revised+S
>>>>>>>>>> SL+properties>:
>>>>>>>>>>
>>>>>>>>>> * Locator => The comms channel between Locators + the initial
>>>>>>>>>>
>>>>>>>>> comms
>>>
>>>>   channel between clients and locator
>>>>>>>>>> * Cluster => Internode comms channel (peer to peer)
>>>>>>>>>> * Server => Client-server comms channel
>>>>>>>>>> * Gateway => Comms channel between WAN Gateway senders/receivers
>>>>>>>>>> * HTTP => Any HTTP comms. incl REST and Pulse
>>>>>>>>>> * JMX => Any JMX comms
>>>>>>>>>>
>>>>>>>>>> These components were selected as they seem to be logical
>>>>>>>>>>
>>>>>>>>> boundaries
>>>>
>>>>> and
>>>>>>>
>>>>>>>> communication interfaces.
>>>>>>>>>>
>>>>>>>>>> I think the specialization of HTTP, for
>>>>>>>>>>
>>>>>>>>> Authentication&Authorization
>>>>
>>>>> are
>>>>>>>
>>>>>>>> functions of those interfaces:
>>>>>>>>>>
>>>>>>>>>> * REST-admin
>>>>>>>>>> * REST-dev
>>>>>>>>>> * Pulse
>>>>>>>>>>
>>>>>>>>>> I think that comms and functions exposed by those comms should
>>>>>>>>>>
>>>>>>>>> not
>>>
>>>> be
>>>>
>>>>> mixed. I think that securing the comms channel is a factor of
>>>>>>>>>>
>>>>>>>>> "trust".
>>>>>
>>>>>> Do I
>>>>>>>>
>>>>>>>>> implicitly trust the interface/system that I am connected to or
>>>>>>>>>>
>>>>>>>>> are
>>>
>>>> connecting to.
>>>>>>>>>>
>>>>>>>>>> I think concepts like "management" is a concept in function. Do I
>>>>>>>>>>
>>>>>>>>> allow
>>>>>>>
>>>>>>>> a
>>>>>>>>
>>>>>>>>> user to access admin API's? The function of management should not
>>>>>>>>>>
>>>>>>>>> determine
>>>>>>>>
>>>>>>>>> if a system trusts another systems connection. When a new comms
>>>>>>>>>>
>>>>>>>>> interface
>>>>>>>>
>>>>>>>>> is added (say messaging), we want to be able to trust that comms
>>>>>>>>>>
>>>>>>>>> channel.
>>>>>>>>
>>>>>>>>> The "management" function should still work regardless of
>>>>>>>>>>
>>>>>>>>> interface,
>>>>
>>>>> be
>>>>>>>
>>>>>>>> it
>>>>>>>>
>>>>>>>>> jmx,http/rest,prop tcp,messaging.
>>>>>>>>>>
>>>>>>>>>> --Udo
>>>>>>>>>>
>>>>>>>>>> [1]: https://cwiki.apache.org/confluence/display/GEODE/
>>>>>>>>>>
>>>>>>>>> Revised+SS
>>>
>>>> L+properties
>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>> On 9/09/2016 5:49 AM, Swapnil Bawaskar wrote:
>>>>>>>>>>
>>>>>>>>>> GEODE-1648 and GEODE-420 are both trying to add geode properties
>>>>>>>>>>>
>>>>>>>>>> to
>>>>
>>>>> secure
>>>>>>>>
>>>>>>>>> only some components.
>>>>>>>>>>> GEODE-1648 is intending to add a property named
>>>>>>>>>>> "security-enabled-components" that will allow users to turn off
>>>>>>>>>>> authentication/authorization for some components
>>>>>>>>>>> GEODE-420 is intending to add a property named
>>>>>>>>>>>
>>>>>>>>>> "ssl-enabled-components"
>>>>>>>
>>>>>>>> that will allow users to turn off ssl. for either client/server,
>>>>>>>>>>> peer-to-peer or wan communication.
>>>>>>>>>>>
>>>>>>>>>>> Since both deal with security, I think we should have the same
>>>>>>>>>>>
>>>>>>>>>> list
>>>>
>>>>> of
>>>>>>>
>>>>>>>> components for these new geode properties. Intent of this thread
>>>>>>>>>>>
>>>>>>>>>> is
>>>>
>>>>> to
>>>>>>>
>>>>>>>> arrive at a consensus on what these components are.
>>>>>>>>>>>
>>>>>>>>>>> I would like to propose the following components:
>>>>>>>>>>> Cluster => stands for peer-to-peer
>>>>>>>>>>> Server => client/server and developer rest API
>>>>>>>>>>> WAN => gateway sender/receiver
>>>>>>>>>>> Management => jmx, admin-rest, pulse
>>>>>>>>>>>
>>>>>>>>>>> Thanks!
>>>>>>>>>>> Swapnil.
>>>>>>>>>>>
>>>>>>>>>>>
>>>>>>>>>>>
>>>>>>>>
>>>>>>> --
>>>>>>> Cheers
>>>>>>>
>>>>>>> Jinmei
>>>>>>>
>>>>>>>
>>>>>
>>>
>>> --
>>> -John
>>> 503-504-8657
>>> john.blum10101 (skype)
>>>
>>>
>


-- 
-John
503-504-8657
john.blum10101 (skype)

Reply via email to