No it’s not based on sasl - will upload to a jira ticket and let you know

Cheers


Joe
On 24 Jan 2014, at 16:27, Jun Rao <jun...@gmail.com> wrote:

> Joe,
> 
> Thanks for looking into this. We do plan to support security. However,
> timing-wise, this probably has to be done after the client rewrites, which
> changes how the client uses sockets and potentially adds new request types.
> Our current estimate is that the producer rewrite will take probably about
> 2 months to complete and consumer rewrite will take another 2-3 months
> after that.
> 
> Is your implementation based on sasl? Perhaps you can at least upload your
> patch to a jira so that we can take a look?
> 
> Thanks,
> 
> Jun
> 
> 
> 
> On Fri, Jan 24, 2014 at 7:56 AM, Joe Brown <brownjoe...@gmail.com> wrote:
> 
>> Hi All
>> 
>> I’ve been looking at the wiki proposal to add Auth and Auth to kafka
>> https://cwiki.apache.org/confluence/display/KAFKA/Security
>> 
>> In the meantime I’ve had a recent immediate requirement to implement
>> something similar - my solution is detailed below - fairly quick and dirty
>> but achieved the desired results.  At the moment the code is branched off
>> the 0.8-beta - though to move to 0.8.0 is trivial - the question is when
>> will the https://cwiki.apache.org/confluence/display/KAFKA/Security be
>> looked at, if this is a ways off then I could consider creating a patch and
>> pull request for my code.
>> 
>> FYI my requirements were very specific - for example no encryption of the
>> data, changes minimised - easy to re-apply to future releases.
>> Authentication
>> 
>> Authentication is achieved by passing the client’s public certificate
>> along with a message, signed by the client’s private key, every time the
>> client opens a connection to a broker. The underlying Apache Kafka
>> BlockingChannel was altered to ensure the connection is only established on
>> a successful authentication response from the broker.
>> 
>> The broker, to authenticate the client, first verifies the client’s public
>> certificate against the issuing CA certificate held in the broker
>> truststore. The broker then uses the verified client’s certificate to
>> verify the signed message from the client. On authentication by the broker
>> the successful authentication response is sent to the client. The client DN
>> is then registered against the client connection as trusted by the broker.
>> 
>> - Use of standard java.security.* and java.security.cert.* classes were
>> used for Authentication
>> Authorization
>> 
>> Authorization is controlled by the file referenced by the property
>> “auth.config.path” configured on the broker. On broker initialization the
>> file is read, changes to this file will be reloaded at intervals defined by
>> the “auth.file.watch.seconds" property.
>> 
>> Both Producer (produce) and Consumer (fetch) Requests are intercepted on
>> the broker to check whether the client connection is authenticated and then
>> whether the associated client DN has the permission to read (fetch) or
>> write (produce) from/to the given topic.
>> 
>> - Uses simple json config file for authorization
>> 
>> Thoughts please?
>> 
>> Cheers
>> 
>> Joe

Reply via email to