Il giorno gio 28 mag 2020 alle ore 15:23 Anup Ghatage <ghat...@gmail.com> ha scritto:
> Hi Enrico, > > I am working on it right now. And thought the community could use it. > We can start with it being just role based access but still provide the > foundation for read only or more granular access. > The role based access part is appealing because anyone with Root CA can > access the service even if we have mtls. That is scary because bookkeeper > is the main source of truth and storage for many services, even financial > services. With this you can deploy BK clusters with only preconfigured > whitelist of services that are allowed to talk to it. > Assigning roles in the OU field of a certificate is a common practice and > using SPIFFE is even state of the art. > Agreed > > This can be configured and switched off by default till all upstream > consumers get their key management services to generate certificates with > roles. > Yes, it should be off by default Enrico > > On Thu, May 28, 2020, 12:01 AM Enrico Olivelli <eolive...@gmail.com> > wrote: > > > Anup, > > thanks for bringing up this this topic. > > > > > > Il giorno gio 28 mag 2020 alle ore 00:30 Anup Ghatage <ghat...@gmail.com > > > > ha scritto: > > > > > Hey everyone, > > > > > > I see that we have certificate based authentication in this commit > > > < > > > > > > https://github.com/apache/bookkeeper/commit/8e0bd2c3d81b522e97434d8646915f36422a104b > > > > > > > . > > > We also provide a extensibility for 'authorization' by implementing our > > own > > > AuthZ factory which extends bookieAuthProvider. > > > However, to implement authorization, we need a configurable role based > > > authorization based on certain attributes in the certificates. > > > Usually, we've seen this done in 2 days. > > > > > > 1. Have the role attributes in the 'OU' field of the 'Subject' field of > > the > > > certificate. > > > > > > This is a dump of the SUBJECT field from bookkeeper-server/src/test/ > > > resources/server-cert.pem > > > CN=apache.bookkeeper.org > > > O=Dummy > > > L=San Francisco > > > S=CA > > > C=US > > > > > > 2. Have role attributes using SPIFFE in the Extended SAN's section of > the > > > certificate. > > > Something as simple as the following: > > > > > > > > > *spiffe://internal-key-service/v1/service={service}/namespace={namespace}/* > > > > > > > > > *Where service the can be Pulsar brokers, Herddb clients etc, namespace > > can > > > be cluster name/id. SPIFFE provides extensibility with more levels of > > > abstraction that can be added.* > > > *Having this sort of certificate based AuthZ will enable us to set > > granular > > > control on what bookkeeper clients can access, or even something simple > > as > > > allow read only for certain clients etc.* > > > > > > > > > *I was wondering if we have plans for anything like this or if the > > upstream > > > consumers are interested in this.* > > > > > > > I don't have plans in this direction, but introducing access control to > BK > > (at least readonly clients) > > looks like an interesting feature. > > > > Do you already have a custom bookieAuthProvider that implements any of > the > > proposals above ? > > > > Cheers > > > > Enrico > > > > > > > > > > > > *Regards,* > > > > > > *Anup* > > > > > >