Return-Path: X-Original-To: archive-asf-public-internal@cust-asf2.ponee.io Delivered-To: archive-asf-public-internal@cust-asf2.ponee.io Received: from cust-asf.ponee.io (cust-asf.ponee.io [163.172.22.183]) by cust-asf2.ponee.io (Postfix) with ESMTP id D777E200BB8 for ; Fri, 30 Sep 2016 02:33:17 +0200 (CEST) Received: by cust-asf.ponee.io (Postfix) id D6383160AEB; Fri, 30 Sep 2016 00:33:17 +0000 (UTC) Delivered-To: archive-asf-public@cust-asf.ponee.io Received: from mail.apache.org (hermes.apache.org [140.211.11.3]) by cust-asf.ponee.io (Postfix) with SMTP id EE064160AE8 for ; Fri, 30 Sep 2016 02:33:16 +0200 (CEST) Received: (qmail 62196 invoked by uid 500); 30 Sep 2016 00:33:16 -0000 Mailing-List: contact commits-help@geode.incubator.apache.org; run by ezmlm Precedence: bulk List-Help: List-Unsubscribe: List-Post: List-Id: Reply-To: dev@geode.incubator.apache.org Delivered-To: mailing list commits@geode.incubator.apache.org Received: (qmail 62177 invoked by uid 99); 30 Sep 2016 00:33:16 -0000 Received: from pnap-us-west-generic-nat.apache.org (HELO spamd1-us-west.apache.org) (209.188.14.142) by apache.org (qpsmtpd/0.29) with ESMTP; Fri, 30 Sep 2016 00:33:16 +0000 Received: from localhost (localhost [127.0.0.1]) by spamd1-us-west.apache.org (ASF Mail Server at spamd1-us-west.apache.org) with ESMTP id A6478CC06A for ; Fri, 30 Sep 2016 00:33:15 +0000 (UTC) X-Virus-Scanned: Debian amavisd-new at spamd1-us-west.apache.org X-Spam-Flag: NO X-Spam-Score: -6.219 X-Spam-Level: X-Spam-Status: No, score=-6.219 tagged_above=-999 required=6.31 tests=[KAM_ASCII_DIVIDERS=0.8, KAM_LAZY_DOMAIN_SECURITY=1, RCVD_IN_DNSWL_HI=-5, RCVD_IN_MSPIKE_H3=-0.01, RCVD_IN_MSPIKE_WL=-0.01, RP_MATCHES_RCVD=-2.999] autolearn=disabled Received: from mx1-lw-eu.apache.org ([10.40.0.8]) by localhost (spamd1-us-west.apache.org [10.40.0.7]) (amavisd-new, port 10024) with ESMTP id q0L_uihcRiRg for ; Fri, 30 Sep 2016 00:33:14 +0000 (UTC) Received: from mail.apache.org (hermes.apache.org [140.211.11.3]) by mx1-lw-eu.apache.org (ASF Mail Server at mx1-lw-eu.apache.org) with SMTP id F1D6060E1A for ; Fri, 30 Sep 2016 00:33:09 +0000 (UTC) Received: (qmail 60325 invoked by uid 99); 30 Sep 2016 00:33:09 -0000 Received: from git1-us-west.apache.org (HELO git1-us-west.apache.org) (140.211.11.23) by apache.org (qpsmtpd/0.29) with ESMTP; Fri, 30 Sep 2016 00:33:09 +0000 Received: by git1-us-west.apache.org (ASF Mail Server at git1-us-west.apache.org, from userid 33) id 0AE1CEEE2B; Fri, 30 Sep 2016 00:33:09 +0000 (UTC) Content-Type: text/plain; charset="us-ascii" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit From: rvs@apache.org To: commits@geode.incubator.apache.org Date: Fri, 30 Sep 2016 00:33:34 -0000 Message-Id: <8c406961190e43058deed606fc5af34a@git.apache.org> In-Reply-To: <2b89ce6a4ffc4a24b0b200ff5e4148ba@git.apache.org> References: <2b89ce6a4ffc4a24b0b200ff5e4148ba@git.apache.org> X-Mailer: ASF-Git Admin Mailer Subject: [27/50] [abbrv] incubator-geode git commit: Rewrite the security overview section [#130068769] archived-at: Fri, 30 Sep 2016 00:33:17 -0000 Rewrite the security overview section [#130068769] Project: http://git-wip-us.apache.org/repos/asf/incubator-geode/repo Commit: http://git-wip-us.apache.org/repos/asf/incubator-geode/commit/d4c43d36 Tree: http://git-wip-us.apache.org/repos/asf/incubator-geode/tree/d4c43d36 Diff: http://git-wip-us.apache.org/repos/asf/incubator-geode/diff/d4c43d36 Branch: refs/staging/docs-grant1 Commit: d4c43d36c9e107e1fd905b89d83d6ab2fbda9c57 Parents: 06b71c9 Author: Karen Miller Authored: Fri Sep 9 15:18:19 2016 -0700 Committer: Karen Miller Committed: Fri Sep 9 15:18:19 2016 -0700 ---------------------------------------------------------------------- managing/security/chapter_overview.html.md.erb | 9 +- .../security/implementing_security.html.md.erb | 92 ++++++++++---------- 2 files changed, 46 insertions(+), 55 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/incubator-geode/blob/d4c43d36/managing/security/chapter_overview.html.md.erb ---------------------------------------------------------------------- diff --git a/managing/security/chapter_overview.html.md.erb b/managing/security/chapter_overview.html.md.erb index 8b8ca63..88df5d8 100644 --- a/managing/security/chapter_overview.html.md.erb +++ b/managing/security/chapter_overview.html.md.erb @@ -4,14 +4,9 @@ title: Security The security framework permits authentication of connecting components and authorization of operations for all communicating components of the distributed system. -- **[Security Implementation Overview](../../managing/security/implementing_security.html)** +- **[Security Implementation Introduction and Overview](../../managing/security/implementing_security.html)** - Apache Geode can authenticate peer system members and clients. It can also authorize cache operations on a server from clients. - -- **[Security Features](../../managing/security/security_intro.html)** - - Encryption, SSL secure communication, authentication, and authorization -features help to secure the distributed system. + Encryption, SSL secure communication, authentication, and authorization help to secure the distributed system. - **[Security Detail Considerations](../../managing/security/security_audit_overview.html)** http://git-wip-us.apache.org/repos/asf/incubator-geode/blob/d4c43d36/managing/security/implementing_security.html.md.erb ---------------------------------------------------------------------- diff --git a/managing/security/implementing_security.html.md.erb b/managing/security/implementing_security.html.md.erb index b8122e5..4400af3 100644 --- a/managing/security/implementing_security.html.md.erb +++ b/managing/security/implementing_security.html.md.erb @@ -1,67 +1,63 @@ --- -title: Security Implementation Overview +title: Security Implementation Introduction and Overview --- -Apache Geode can authenticate system members, clients, and other system -entities. It can also individually authorize cache operations -for those various entities. +## Security Features +Encryption, SSL secure communication, authentication, and authorization +features help to secure the distributed system. -## An overview of How it all Works## +Security features include: -The security of a distributed system can be greatly enhanced by -authenticating all system participants. -This verifies the identity of the participants, -gaining control over participation. +- **A single security interface for all components**. The single +authentication and authorization mechanism simplifies the security +implementation. +It views and interacts with all components in a consistent manner. +- **System-wide role-based access control**. +Roles regiment authorized operations requested by the various components. +- **SSL communication**. Allows configuration of connections to be +SSL-based, rather than plain socket connections. +You can enable SSL separately for peer-to-peer, client, JMX, gateway senders and receivers, and HTTP connections. +- **Post processing of region data**. Return values for operations that +return region values may be altered, permitting the filtering of returned data. + +## Overview + +An authentication and authorization mechanism forms the core of +the internal security of the distributed system. +Communications may be further protected by enabling SSL for +data in transit. + +Authentication verifies the identity of communicating components, +leading to control over participation. The variety of participants include peer members, cache servers, clients, originators of JMX operations, Pulse, -gateway receivers representing WAN members of the system, +gateway senders and receivers representing WAN members of the system, and commands arriving from `gfsh` on behalf of system users or administrators. +Connection requests trigger the invocation of an authentication +callback. +This special-purpose callback is written as part of the application, +and it attempts to authenticate the requester by whatever +algorithm it chooses. +The result is either a returned principal representing the requester's +authenticated identity or an exception indicating that the requester +has not been authenticated. +The principal becomes part of any request for operations, +which go through the authorization process. + + Given authentication, isolation and access to cache data and system state can be further -protected by implementing an authorization mechanism. -For example, only certain system administrators might be permitted +protected by implementing the authorization mechanism, +also implemented as a special-purpose callback as part of the application. +For example, the protection may be to permit only certain system administrators to start and stop servers. The authority to do this needs to be limited to specific verified accounts, preventing those without the authorization. -An implementation of an authorization mechanism requires -that authenticated identities accompany all requests to the system, +An implementation of the authorization callback will require +that an authenticate identity accompanies all requests to the system, and that the system maintains a representation of which identities are permitted to complete which actions or cache commands. -## Authentication and Authorization - -A single interface specifies authentication and a role-based access -control for authorizing cache operations. - -Configuration in the form of property identifies the implementation -of the interface. -Defining the property enables the authentication/authorization defined -in the implementation. - -A second property lists which components the implementation applies to. -Therefore, it is configurable which components get authenticated and -go through an authorization step prior to doing operations. - -## Access Control for Authorization - -The `ResourcePermission` object classifies operations. -The two main parts of the object are the `Resource` and the `Operation`. -The `Resource` identifies a role of a component within the -distributed system. -There are two roles: - -- `CLUSTER` is an administrative role. -- `DATA` is a role that does operations on regions. - -The `Operation` qualifies what is to be accomplished. -There are three values: - -- `READ` looks at data; it does not modify anything. -- `WRITE` modifies data. `WRITE` does not imply `READ`. -- `MANAGE` accesses administrative information. `MANAGE` does not imply `WRITE`. - -Data read and write operations may be further applied to regions -and specific keys within regions.