[ 
https://issues.apache.org/jira/browse/BOOKKEEPER-390?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13686281#comment-13686281
 ] 

Sijie Guo commented on BOOKKEEPER-390:
--------------------------------------

since we already had ledger metadata interfaces, isn't it possible to provide a 
auth ledger manager rather than changing this core of bookkeeper? the benefits 
of this way are that you could guarantee both clients and bookie server use 
same metadata manager to access the metadata.

for the request authentication, I think we should provide request lifecycle 
management hooks (e.g. wsgi request lifecycle through middleware interface, 
hbase region lifecycle management through coprocessor). so the authentication 
could be one of the hooks.

the hooks could be a simple interface, let's say Middleware (this is just an 
example, without thinking deeply).

{code}
interface Middleware<Req, Resp> {
    Resp preProcess(Req request, BookieContext context);
}
{code}

{code}
class AuthMiddleware implements Middleware<BookieRequest, BookieRequest> {
    BookieRequest preProcess(BookieRequest request, BookieContext context) {
        // validate the authentication.
        if (isAuth(request)) {
            return request;
        } else {
            return null;
        }        
    }
}
{code}

and the middlewares are loaded by configuration and stacked to process the 
requests. so application could decide what kind of middleware to load and they 
could implement their own middlewares to do whatever they want without changing 
the core of bookies.





                
> Provide support for ZooKeeper authentication
> --------------------------------------------
>
>                 Key: BOOKKEEPER-390
>                 URL: https://issues.apache.org/jira/browse/BOOKKEEPER-390
>             Project: Bookkeeper
>          Issue Type: New Feature
>          Components: bookkeeper-client, bookkeeper-server
>    Affects Versions: 4.0.0
>            Reporter: Rakesh R
>            Assignee: Rakesh R
>             Fix For: 4.3.0
>
>         Attachments: BOOKKEEPER-390-Acl-draftversion.patch, 
> BOOKKEEPER-390-Authentication-interfaces-draftversion.patch
>
>
> This JIRA adds support for protecting the state of Bookkeeper znodes on a 
> multi-tenant ZooKeeper cluster.
> Use case: When user tries to run a ZK cluster in multitenant mode,  where 
> more than one client service would like to share a single ZK service instance 
> (cluster). In this case the client services typically want to protect their 
> data (ZK znodes) from access by other services (tenants) on the cluster. Say 
> you are running BK, HBase or ZKFC instances, etc... having 
> authentication/authorization on the znodes is important for both security and 
> helping to ensure that services don't interact negatively (touch each other's 
> data).
> Presently Bookkeeper does not have support for authentication or 
> authorization while accessing to ZK. This should be added to the BK 
> clients/server that are accessing the ZK cluster. In general it means calling 
> addAuthInfo once after a session is established

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators
For more information on JIRA, see: http://www.atlassian.com/software/jira

Reply via email to