Hi Parth,

Are you still working on this? If you need any help please don't hesitate
to ask.

Thanks,
Grant

On Thu, Jun 30, 2016 at 4:35 PM, Jun Rao <j...@confluent.io> wrote:

> Parth,
>
> Thanks for the reply.
>
> It makes sense to only allow the renewal by users that authenticated using
> *non* delegation token mechanism. Then, should we make the renewal a list?
> For example, in the case of rest proxy, it will be useful for every
> instance of rest proxy to be able to renew the tokens.
>
> It would be clearer if we can document the request protocol like
>
> https://cwiki.apache.org/confluence/display/KAFKA/KIP-4+-+Command+line+and+centralized+administrative+operations#KIP-4-Commandlineandcentralizedadministrativeoperations-CreateTopicsRequest(KAFKA-2945):(VotedandPlannedforin0.10.1.0)
> .
>
> It would also be useful to document the client APIs.
>
> Thanks,
>
> Jun
>
> On Tue, Jun 28, 2016 at 2:55 PM, parth brahmbhatt <
> brahmbhatt.pa...@gmail.com> wrote:
>
> > Hi,
> >
> > I am suggesting that we will only allow the renewal by users that
> > authenticated using *non* delegation token mechanism. For example, If
> user
> > Alice authenticated using kerberos and requested delegation tokens, only
> > user Alice authenticated via non delegation token mechanism can renew.
> > Clients that have  access to delegation tokens can not issue renewal
> > request for renewing their own token and this is primarily important to
> > reduce the time window for which a compromised token will be valid.
> >
> > To clarify, Yes any authenticated user can request delegation tokens but
> > even here I would recommend to avoid creating a chain where a client
> > authenticated via delegation token request for more delegation tokens.
> > Basically anyone can request delegation token, as long as they
> authenticate
> > via a non delegation token mechanism.
> >
> > Aren't classes listed here
> > <
> >
> https://cwiki.apache.org/confluence/display/KAFKA/KIP-48+Delegation+token+support+for+Kafka#KIP-48DelegationtokensupportforKafka-PublicInterfaces
> > >
> > sufficient?
> >
> > Thanks
> > Parth
> >
> >
> >
> > On Tue, Jun 21, 2016 at 4:33 PM, Jun Rao <j...@confluent.io> wrote:
> >
> > > Parth,
> > >
> > > Thanks for the reply. A couple of comments inline below.
> > >
> > > On Tue, Jun 21, 2016 at 10:36 AM, parth brahmbhatt <
> > > brahmbhatt.pa...@gmail.com> wrote:
> > >
> > > > 1. Who / how are tokens renewed? By original requester only? or using
> > > > Kerberos
> > > > auth only?
> > > > My recommendation is to do this only using Kerberos auth and only
> threw
> > > the
> > > > renewer specified during the acquisition request.
> > > >
> > > >
> > > Hmm, not sure that I follow this. Are you saying that any client
> > > authenticated with the delegation token can renew, i.e. there is no
> > renewer
> > > needed?
> > >
> > > Also, just to be clear, any authenticated client (either through SASL
> or
> > > SSL) can request a delegation token for the authenticated user, right?
> > >
> > >
> > > > 2. Are tokens stored on each broker or in ZK?
> > > > My recommendation is still to store in ZK or not store them at all.
> The
> > > > whole controller based distribution is too much overhead with not
> much
> > to
> > > > achieve.
> > > >
> > > > 3. How are tokens invalidated / expired?
> > > > Either by expiration time out or through an explicit request to
> > > invalidate.
> > > >
> > > > 4. Which encryption algorithm is used?
> > > > SCRAM
> > > >
> > > > 5. What is the impersonation proposal (it wasn't in the KIP but was
> > > > discussed
> > > > in this thread)?
> > > > There is no imperonation proposal. I tried and explained how its a
> > > > different problem and why its not really necessary to discuss that as
> > > part
> > > > of this KIP.  This KIP will not support any impersonation, it will
> just
> > > be
> > > > another way to authenticate.
> > > >
> > > > 6. Do we need new ACLs, if so - for what actions?
> > > > We do not need new ACLs.
> > > >
> > > >
> > > Could we document the format of the new request/response and their
> > > associated Resource and Operation for ACL?
> > >
> > >
> > > > 7. How would the delegation token be configured in the client?
> > > > Should be through config. I wasn't planning on supporting JAAS for
> > > tokens.
> > > > I don't believe hadoop does this either.
> > > >
> > > > Thanks
> > > > Parth
> > > >
> > > >
> > > >
> > > > On Thu, Jun 16, 2016 at 4:03 PM, Jun Rao <j...@confluent.io> wrote:
> > > >
> > > > > Harsha,
> > > > >
> > > > > Another question.
> > > > >
> > > > > 9. How would the delegation token be configured in the client? The
> > > > standard
> > > > > way is to do this through JAAS. However, we will need to think
> > through
> > > if
> > > > > this is convenient in a shared environment. For example, when a new
> > > task
> > > > is
> > > > > added to a Storm worker node, do we need to dynamically add a new
> > > section
> > > > > in the JAAS file? It may be more convenient if we can pass in the
> > token
> > > > > through the config directly w/o going through JAAS.
> > > > >
> > > > > Are you or Parth still actively working on this KIP?
> > > > >
> > > > > Thanks,
> > > > >
> > > > > Jun
> > > > >
> > > > >
> > > > >
> > > > > On Sun, Jun 12, 2016 at 2:18 PM, Jun Rao <j...@confluent.io> wrote:
> > > > >
> > > > > > Just to add on that list.
> > > > > >
> > > > > > 2. It would be good to document the format of the data stored in
> > ZK.
> > > > > > 7. Earlier, there was a discussion on whether the tokens should
> be
> > > > > > propagated through ZK like config/acl/quota, or through the
> > > controller.
> > > > > > Currently, the controller is only designed for propagating topic
> > > > > metadata,
> > > > > > but not other data.
> > > > > > 8. Should we use SCRAM to send the token instead of DIGEST-MD5
> > since
> > > > it's
> > > > > > deprecated?
> > > > > >
> > > > > > Also, the images in the wiki seem broken.
> > > > > >
> > > > > > Thanks,
> > > > > >
> > > > > > Jun
> > > > > >
> > > > > > On Fri, Jun 10, 2016 at 10:02 AM, Gwen Shapira <
> g...@confluent.io>
> > > > > wrote:
> > > > > >
> > > > > >> From what I can see, remaining questions are:
> > > > > >>
> > > > > >> 1. Who / how are tokens renewed? By original requester only? or
> > > using
> > > > > >> Kerberos auth only?
> > > > > >> 2. Are tokens stored on each broker or in ZK?
> > > > > >> 3. How are tokens invalidated / expired?
> > > > > >> 4. Which encryption algorithm is used?
> > > > > >> 5. What is the impersonation proposal (it wasn't in the KIP but
> > was
> > > > > >> discussed in this thread)?
> > > > > >> 6. Do we need new ACLs, if so - for what actions?
> > > > > >>
> > > > > >> Gwen
> > > > > >>
> > > > > >> On Thu, Jun 9, 2016 at 7:48 PM, Harsha <ka...@harsha.io> wrote:
> > > > > >> > Jun & Ismael,
> > > > > >> >                          Unfortunately I couldn't attend the
> KIP
> > > > > meeting
> > > > > >> >                          when delegation tokens discussed.
> > > > Appreciate
> > > > > if
> > > > > >> >                          you can update the thread if you have
> > any
> > > > > >> >                          further questions.
> > > > > >> > Thanks,
> > > > > >> > Harsha
> > > > > >> >
> > > > > >> > On Tue, May 24, 2016, at 11:32 AM, Liquan Pei wrote:
> > > > > >> >> It seems that the links to images in the KIP are broken.
> > > > > >> >>
> > > > > >> >> Liquan
> > > > > >> >>
> > > > > >> >> On Tue, May 24, 2016 at 9:33 AM, parth brahmbhatt <
> > > > > >> >> brahmbhatt.pa...@gmail.com> wrote:
> > > > > >> >>
> > > > > >> >> > 110. What does getDelegationTokenAs mean?
> > > > > >> >> > In the current proposal we only allow a user to get
> > delegation
> > > > > token
> > > > > >> for
> > > > > >> >> > the identity that it authenticated as using another
> > mechanism,
> > > > i.e.
> > > > > >> A user
> > > > > >> >> > that authenticate using a keytab for principal
> > > us...@example.com
> > > > > >> will get
> > > > > >> >> > delegation tokens for that user only. In future I think we
> > will
> > > > > have
> > > > > >> to
> > > > > >> >> > extend support such that we allow some set of users (
> > > > > >> >> > kafka-rest-u...@example.com, storm-nim...@example.com) to
> > > > acquire
> > > > > >> >> > delegation tokens on behalf of other users whose identity
> > they
> > > > have
> > > > > >> >> > verified independently.  Kafka brokers will have ACLs to
> > > control
> > > > > >> which
> > > > > >> >> > users are allowed to impersonate other users and get tokens
> > on
> > > > > >> behalf of
> > > > > >> >> > them. Overall Impersonation is a whole different problem in
> > my
> > > > > >> opinion and
> > > > > >> >> > I think we can tackle it in separate KIP.
> > > > > >> >> >
> > > > > >> >> > 111. What's the typical rate of getting and renewing
> > delegation
> > > > > >> tokens?
> > > > > >> >> > Typically this should be very very low, 1 request per
> minute
> > > is a
> > > > > >> >> > relatively high estimate. However it depends on the token
> > > > > >> expiration. I am
> > > > > >> >> > less worried about the extra load it puts on controller vs
> > the
> > > > > added
> > > > > >> >> > complexity and the value it offers.
> > > > > >> >> >
> > > > > >> >> > Thanks
> > > > > >> >> > Parth
> > > > > >> >> >
> > > > > >> >> >
> > > > > >> >> >
> > > > > >> >> > On Tue, May 24, 2016 at 7:30 AM, Ismael Juma <
> > > ism...@juma.me.uk>
> > > > > >> wrote:
> > > > > >> >> >
> > > > > >> >> > > Thanks Rajini. It would probably require a separate KIP
> as
> > it
> > > > > will
> > > > > >> >> > > introduce user visible changes. We could also update
> KIP-48
> > > to
> > > > > >> have this
> > > > > >> >> > > information, but it seems cleaner to do it separately. We
> > can
> > > > > >> discuss
> > > > > >> >> > that
> > > > > >> >> > > in the KIP call today.
> > > > > >> >> > >
> > > > > >> >> > > Ismael
> > > > > >> >> > >
> > > > > >> >> > > On Tue, May 24, 2016 at 3:19 PM, Rajini Sivaram <
> > > > > >> >> > > rajinisiva...@googlemail.com> wrote:
> > > > > >> >> > >
> > > > > >> >> > > > Ismael,
> > > > > >> >> > > >
> > > > > >> >> > > > I have created a JIRA (
> > > > > >> >> > https://issues.apache.org/jira/browse/KAFKA-3751)
> > > > > >> >> > > > for adding SCRAM as a SASL mechanism. Would that need
> > > another
> > > > > >> KIP? If
> > > > > >> >> > > > KIP-48 will use this mechanism, can this just be a JIRA
> > > that
> > > > > gets
> > > > > >> >> > > reviewed
> > > > > >> >> > > > when the PR is ready?
> > > > > >> >> > > >
> > > > > >> >> > > > Thank you,
> > > > > >> >> > > >
> > > > > >> >> > > > Rajini
> > > > > >> >> > > >
> > > > > >> >> > > > On Tue, May 24, 2016 at 2:46 PM, Ismael Juma <
> > > > > ism...@juma.me.uk>
> > > > > >> >> > wrote:
> > > > > >> >> > > >
> > > > > >> >> > > > > Thanks Rajini, SCRAM seems like a good candidate.
> > > > > >> >> > > > >
> > > > > >> >> > > > > Gwen had independently mentioned this as a SASL
> > mechanism
> > > > > that
> > > > > >> might
> > > > > >> >> > be
> > > > > >> >> > > > > useful for Kafka and I have been meaning to check it
> in
> > > > more
> > > > > >> detail.
> > > > > >> >> > > Good
> > > > > >> >> > > > > to know that you are willing to contribute an
> > > > implementation.
> > > > > >> Maybe
> > > > > >> >> > we
> > > > > >> >> > > > > should file a separate JIRA for this?
> > > > > >> >> > > > >
> > > > > >> >> > > > > Ismael
> > > > > >> >> > > > >
> > > > > >> >> > > > > On Tue, May 24, 2016 at 2:12 PM, Rajini Sivaram <
> > > > > >> >> > > > > rajinisiva...@googlemail.com> wrote:
> > > > > >> >> > > > >
> > > > > >> >> > > > > > SCRAM (Salted Challenge Response Authentication
> > > > Mechanism)
> > > > > >> is a
> > > > > >> >> > > better
> > > > > >> >> > > > > > mechanism than Digest-MD5. Java doesn't come with a
> > > > > built-in
> > > > > >> SCRAM
> > > > > >> >> > > > > > SaslServer or SaslClient, but I will be happy to
> add
> > > > > support
> > > > > >> in
> > > > > >> >> > Kafka
> > > > > >> >> > > > > since
> > > > > >> >> > > > > > it would be a useful mechanism to support anyway.
> > > > > >> >> > > > > > https://tools.ietf.org/html/rfc7677 describes the
> > > > protocol
> > > > > >> for
> > > > > >> >> > > > > > SCRAM-SHA-256.
> > > > > >> >> > > > > >
> > > > > >> >> > > > > > On Tue, May 24, 2016 at 2:37 AM, Jun Rao <
> > > > j...@confluent.io
> > > > > >
> > > > > >> wrote:
> > > > > >> >> > > > > >
> > > > > >> >> > > > > > > Parth,
> > > > > >> >> > > > > > >
> > > > > >> >> > > > > > > Thanks for the explanation. A couple of more
> > > questions.
> > > > > >> >> > > > > > >
> > > > > >> >> > > > > > > 110. What does getDelegationTokenAs mean?
> > > > > >> >> > > > > > >
> > > > > >> >> > > > > > > 111. What's the typical rate of getting and
> > renewing
> > > > > >> delegation
> > > > > >> >> > > > tokens?
> > > > > >> >> > > > > > > That may have an impact on whether they should be
> > > > > directed
> > > > > >> to the
> > > > > >> >> > > > > > > controller.
> > > > > >> >> > > > > > >
> > > > > >> >> > > > > > > Jun
> > > > > >> >> > > > > > >
> > > > > >> >> > > > > > > On Mon, May 23, 2016 at 1:19 PM, parth
> brahmbhatt <
> > > > > >> >> > > > > > > brahmbhatt.pa...@gmail.com> wrote:
> > > > > >> >> > > > > > >
> > > > > >> >> > > > > > > > Hi Jun,
> > > > > >> >> > > > > > > >
> > > > > >> >> > > > > > > > Thanks for reviewing.
> > > > > >> >> > > > > > > >
> > > > > >> >> > > > > > > > * We could add a Cluster action to add acls on
> > who
> > > > can
> > > > > >> request
> > > > > >> >> > > > > > delegation
> > > > > >> >> > > > > > > > tokens. I don't see the use case for that yet
> but
> > > > down
> > > > > >> the line
> > > > > >> >> > > > when
> > > > > >> >> > > > > we
> > > > > >> >> > > > > > > > start supporting getDelegationTokenAs it will
> be
> > > > > >> necessary.
> > > > > >> >> > > > > > > > * Yes we recommend tokens to be only
> > > used/distributed
> > > > > >> over
> > > > > >> >> > secure
> > > > > >> >> > > > > > > channels.
> > > > > >> >> > > > > > > > * Depending on what design we end up choosing
> > > > > >> Invalidation will
> > > > > >> >> > > be
> > > > > >> >> > > > > > > > responsibility of every broker or controller.
> > > > > >> >> > > > > > > > * I am not sure if I documented somewhere that
> > > > > >> invalidation
> > > > > >> >> > will
> > > > > >> >> > > > > > directly
> > > > > >> >> > > > > > > > go through zookeeper but that is not the
> intent.
> > > > > >> Invalidation
> > > > > >> >> > > will
> > > > > >> >> > > > > > either
> > > > > >> >> > > > > > > > be request based or due to expiration. No
> direct
> > > > > >> zookeeper
> > > > > >> >> > > > > interaction
> > > > > >> >> > > > > > > from
> > > > > >> >> > > > > > > > any client.
> > > > > >> >> > > > > > > > * "Broker also stores the DelegationToken
> without
> > > the
> > > > > >> hmac in
> > > > > >> >> > the
> > > > > >> >> > > > > > > > zookeeper." : Sorry about the confusion. The
> sole
> > > > > >> purpose of
> > > > > >> >> > > > > zookeeper
> > > > > >> >> > > > > > in
> > > > > >> >> > > > > > > > this design is as distribution channel for
> tokens
> > > > > >> between all
> > > > > >> >> > > > brokers
> > > > > >> >> > > > > > > and a
> > > > > >> >> > > > > > > > layer that ensures only tokens that were
> > generated
> > > by
> > > > > >> making a
> > > > > >> >> > > > > request
> > > > > >> >> > > > > > > to a
> > > > > >> >> > > > > > > > broker will be accepted (more on this in second
> > > > > >> paragraph). The
> > > > > >> >> > > > token
> > > > > >> >> > > > > > > > consists of few elements (owner, renewer, uuid
> ,
> > > > > >> expiration,
> > > > > >> >> > > hmac)
> > > > > >> >> > > > ,
> > > > > >> >> > > > > > one
> > > > > >> >> > > > > > > of
> > > > > >> >> > > > > > > > which is the finally generated hmac but hmac it
> > > self
> > > > is
> > > > > >> >> > derivable
> > > > > >> >> > > > if
> > > > > >> >> > > > > > you
> > > > > >> >> > > > > > > > have all the other elements of the token +
> secret
> > > key
> > > > > to
> > > > > >> >> > generate
> > > > > >> >> > > > > hmac.
> > > > > >> >> > > > > > > > Given zookeeper does not provide SSL support we
> > do
> > > > not
> > > > > >> want the
> > > > > >> >> > > > > entire
> > > > > >> >> > > > > > > > token to be wire transferred to zookeeper as
> that
> > > > will
> > > > > >> be an
> > > > > >> >> > > > insecure
> > > > > >> >> > > > > > > wire
> > > > > >> >> > > > > > > > transfer. Instead we only store all the other
> > > > elements
> > > > > >> of a
> > > > > >> >> > > > > delegation
> > > > > >> >> > > > > > > > tokens. Brokers can read these elements and
> > because
> > > > > they
> > > > > >> also
> > > > > >> >> > > have
> > > > > >> >> > > > > > access
> > > > > >> >> > > > > > > > to secret key they will be able to generate
> hmac
> > on
> > > > > >> their end.
> > > > > >> >> > > > > > > >
> > > > > >> >> > > > > > > > One of the alternative proposed is to avoid
> > > zookeeper
> > > > > >> >> > > altogether. A
> > > > > >> >> > > > > > > Client
> > > > > >> >> > > > > > > > will call broker with required information
> > (owner,
> > > > > >> renwer,
> > > > > >> >> > > > > expiration)
> > > > > >> >> > > > > > > and
> > > > > >> >> > > > > > > > get back (signed hmac, uuid). Broker won't
> store
> > > this
> > > > > in
> > > > > >> >> > > zookeeper.
> > > > > >> >> > > > > > From
> > > > > >> >> > > > > > > > this point a client can contact any broker with
> > all
> > > > the
> > > > > >> >> > > delegation
> > > > > >> >> > > > > > token
> > > > > >> >> > > > > > > > info (owner, rewner, expiration, hmac, uuid)
> the
> > > > borker
> > > > > >> will
> > > > > >> >> > > > > regenerate
> > > > > >> >> > > > > > > the
> > > > > >> >> > > > > > > > hmac and as long as it matches with hmac
> > presented
> > > by
> > > > > >> client ,
> > > > > >> >> > > > broker
> > > > > >> >> > > > > > > will
> > > > > >> >> > > > > > > > allow the request to authenticate.  Only
> problem
> > > with
> > > > > >> this
> > > > > >> >> > > approach
> > > > > >> >> > > > > is
> > > > > >> >> > > > > > if
> > > > > >> >> > > > > > > > the secret key is compromised any client can
> now
> > > > > generate
> > > > > >> >> > random
> > > > > >> >> > > > > tokens
> > > > > >> >> > > > > > > and
> > > > > >> >> > > > > > > > they will still be able to authenticate as any
> > user
> > > > > they
> > > > > >> like.
> > > > > >> >> > > with
> > > > > >> >> > > > > > > > zookeeper we guarantee that only tokens
> acquired
> > > via
> > > > a
> > > > > >> broker
> > > > > >> >> > > > (using
> > > > > >> >> > > > > > some
> > > > > >> >> > > > > > > > auth scheme other than delegation token) will
> be
> > > > > >> accepted. We
> > > > > >> >> > > need
> > > > > >> >> > > > to
> > > > > >> >> > > > > > > > discuss which proposal makes more sense and we
> > can
> > > go
> > > > > >> over it
> > > > > >> >> > in
> > > > > >> >> > > > > > > tomorrow's
> > > > > >> >> > > > > > > > meeting.
> > > > > >> >> > > > > > > >
> > > > > >> >> > > > > > > > Also, can you forward the invite to me?
> > > > > >> >> > > > > > > >
> > > > > >> >> > > > > > > > Thanks
> > > > > >> >> > > > > > > > Parth
> > > > > >> >> > > > > > > >
> > > > > >> >> > > > > > > >
> > > > > >> >> > > > > > > >
> > > > > >> >> > > > > > > > On Mon, May 23, 2016 at 10:35 AM, Jun Rao <
> > > > > >> j...@confluent.io>
> > > > > >> >> > > > wrote:
> > > > > >> >> > > > > > > >
> > > > > >> >> > > > > > > > > Thanks for the KIP. A few comments.
> > > > > >> >> > > > > > > > >
> > > > > >> >> > > > > > > > > 100. This potentially can be useful for Kafka
> > > > Connect
> > > > > >> and
> > > > > >> >> > Kafka
> > > > > >> >> > > > > rest
> > > > > >> >> > > > > > > > proxy
> > > > > >> >> > > > > > > > > where a worker agent will need to run a task
> on
> > > > > behalf
> > > > > >> of a
> > > > > >> >> > > > client.
> > > > > >> >> > > > > > We
> > > > > >> >> > > > > > > > will
> > > > > >> >> > > > > > > > > likely need to change how those services use
> > > Kafka
> > > > > >> clients
> > > > > >> >> > > > > > > > > (producer/consumer). Instead of a shared
> client
> > > per
> > > > > >> worker,
> > > > > >> >> > we
> > > > > >> >> > > > will
> > > > > >> >> > > > > > > need
> > > > > >> >> > > > > > > > a
> > > > > >> >> > > > > > > > > client per user task since the authentication
> > > > happens
> > > > > >> at the
> > > > > >> >> > > > > > connection
> > > > > >> >> > > > > > > > > level. For Kafka Connect, the renewer will be
> > the
> > > > > >> workers.
> > > > > >> >> > So,
> > > > > >> >> > > we
> > > > > >> >> > > > > > > > probably
> > > > > >> >> > > > > > > > > need to allow multiple renewers. For Kafka
> rest
> > > > > proxy,
> > > > > >> the
> > > > > >> >> > > > renewer
> > > > > >> >> > > > > > can
> > > > > >> >> > > > > > > > > probably just be the creator of the token.
> > > > > >> >> > > > > > > > >
> > > > > >> >> > > > > > > > > 101. Do we need new acl on who can request
> > > > delegation
> > > > > >> tokens?
> > > > > >> >> > > > > > > > >
> > > > > >> >> > > > > > > > > 102. Do we recommend people to send
> delegation
> > > > tokens
> > > > > >> in an
> > > > > >> >> > > > > encrypted
> > > > > >> >> > > > > > > > > channel?
> > > > > >> >> > > > > > > > >
> > > > > >> >> > > > > > > > > 103. Who is responsible for expiring tokens,
> > > every
> > > > > >> broker?
> > > > > >> >> > > > > > > > >
> > > > > >> >> > > > > > > > > 104. For invalidating tokens, would it be
> > better
> > > to
> > > > > do
> > > > > >> it in
> > > > > >> >> > a
> > > > > >> >> > > > > > request
> > > > > >> >> > > > > > > > > instead of going to ZK directly?
> > > > > >> >> > > > > > > > >
> > > > > >> >> > > > > > > > > 105. The terminology of client in the wiki
> > > > sometimes
> > > > > >> refers
> > > > > >> >> > to
> > > > > >> >> > > > the
> > > > > >> >> > > > > > end
> > > > > >> >> > > > > > > > > client and some other times refers to the
> > client
> > > > > using
> > > > > >> the
> > > > > >> >> > > > > delegation
> > > > > >> >> > > > > > > > > tokens. It would be useful to distinguish
> > between
> > > > the
> > > > > >> two.
> > > > > >> >> > > > > > > > >
> > > > > >> >> > > > > > > > > 106. Could you explain the sentence "Broker
> > also
> > > > > >> stores the
> > > > > >> >> > > > > > > > DelegationToken
> > > > > >> >> > > > > > > > > without the hmac in the zookeeper." a bit
> > more? I
> > > > > >> thought the
> > > > > >> >> > > > > > > delegation
> > > > > >> >> > > > > > > > > token is the hmac.
> > > > > >> >> > > > > > > > >
> > > > > >> >> > > > > > > > > Thanks,
> > > > > >> >> > > > > > > > >
> > > > > >> >> > > > > > > > > Jun
> > > > > >> >> > > > > > > > >
> > > > > >> >> > > > > > > > >
> > > > > >> >> > > > > > > > > On Mon, May 23, 2016 at 9:22 AM, Jun Rao <
> > > > > >> j...@confluent.io>
> > > > > >> >> > > > wrote:
> > > > > >> >> > > > > > > > >
> > > > > >> >> > > > > > > > > > Hi, Harsha,
> > > > > >> >> > > > > > > > > >
> > > > > >> >> > > > > > > > > > Just sent out a KIP meeting invite. We can
> > > > discuss
> > > > > >> this in
> > > > > >> >> > > the
> > > > > >> >> > > > > > > meeting
> > > > > >> >> > > > > > > > > > tomorrow.
> > > > > >> >> > > > > > > > > >
> > > > > >> >> > > > > > > > > > Thanks,
> > > > > >> >> > > > > > > > > >
> > > > > >> >> > > > > > > > > > Jun
> > > > > >> >> > > > > > > > > >
> > > > > >> >> > > > > > > > > > On Thu, May 19, 2016 at 8:47 AM, Harsha <
> > > > > >> ka...@harsha.io>
> > > > > >> >> > > > wrote:
> > > > > >> >> > > > > > > > > >
> > > > > >> >> > > > > > > > > >> Hi All,
> > > > > >> >> > > > > > > > > >>            Can we have a KIP meeting
> around
> > > > this.
> > > > > >> The KIP
> > > > > >> >> > is
> > > > > >> >> > > > up
> > > > > >> >> > > > > > for
> > > > > >> >> > > > > > > > > >>            sometime and if there are any
> > > > questions
> > > > > >> lets
> > > > > >> >> > > > quickly
> > > > > >> >> > > > > > hash
> > > > > >> >> > > > > > > > out
> > > > > >> >> > > > > > > > > >>            details.
> > > > > >> >> > > > > > > > > >>
> > > > > >> >> > > > > > > > > >> Thanks,
> > > > > >> >> > > > > > > > > >> Harsha
> > > > > >> >> > > > > > > > > >>
> > > > > >> >> > > > > > > > > >> On Thu, May 19, 2016, at 08:40 AM, parth
> > > > > brahmbhatt
> > > > > >> wrote:
> > > > > >> >> > > > > > > > > >> > That is what the hadoop echo system uses
> > so
> > > no
> > > > > >> good
> > > > > >> >> > reason
> > > > > >> >> > > > > > really.
> > > > > >> >> > > > > > > > We
> > > > > >> >> > > > > > > > > >> > could
> > > > > >> >> > > > > > > > > >> > change it to whatever is the newest
> > > > recommended
> > > > > >> standard
> > > > > >> >> > > is.
> > > > > >> >> > > > > > > > > >> >
> > > > > >> >> > > > > > > > > >> > Thanks
> > > > > >> >> > > > > > > > > >> > Parth
> > > > > >> >> > > > > > > > > >> >
> > > > > >> >> > > > > > > > > >> > On Thu, May 19, 2016 at 3:33 AM, Ismael
> > > Juma <
> > > > > >> >> > > > > ism...@juma.me.uk
> > > > > >> >> > > > > > >
> > > > > >> >> > > > > > > > > wrote:
> > > > > >> >> > > > > > > > > >> >
> > > > > >> >> > > > > > > > > >> > > Hi Parth,
> > > > > >> >> > > > > > > > > >> > >
> > > > > >> >> > > > > > > > > >> > > Thanks for the KIP. I only started
> > > reviewing
> > > > > >> this and
> > > > > >> >> > > may
> > > > > >> >> > > > > have
> > > > > >> >> > > > > > > > > >> additional
> > > > > >> >> > > > > > > > > >> > > questions later. The immediate
> question
> > > that
> > > > > >> came to
> > > > > >> >> > > mind
> > > > > >> >> > > > is
> > > > > >> >> > > > > > our
> > > > > >> >> > > > > > > > > >> choice of
> > > > > >> >> > > > > > > > > >> > > "DIGEST-MD5" even though it's marked
> as
> > > > > >> OBSOLETE in
> > > > > >> >> > the
> > > > > >> >> > > > IANA
> > > > > >> >> > > > > > > > > Registry
> > > > > >> >> > > > > > > > > >> of
> > > > > >> >> > > > > > > > > >> > > SASL mechanisms and the original RFC
> > > (2831)
> > > > > has
> > > > > >> been
> > > > > >> >> > > moved
> > > > > >> >> > > > > to
> > > > > >> >> > > > > > > > > Historic
> > > > > >> >> > > > > > > > > >> > > status:
> > > > > >> >> > > > > > > > > >> > >
> > > > > >> >> > > > > > > > > >> > > https://tools.ietf.org/html/rfc6331
> > > > > >> >> > > > > > > > > >> > >
> > > > > >> >> > > > > > > > >
> > > > > >> >> > > > > >
> > > > > >> >> > >
> > > > > >>
> > > http://www.iana.org/assignments/sasl-mechanisms/sasl-mechanisms.xhtml
> > > > > >> >> > > > > > > > > >> > >
> > > > > >> >> > > > > > > > > >> > > What is the reasoning behind that
> > choice?
> > > > > >> >> > > > > > > > > >> > >
> > > > > >> >> > > > > > > > > >> > > Thanks,
> > > > > >> >> > > > > > > > > >> > > Ismael
> > > > > >> >> > > > > > > > > >> > >
> > > > > >> >> > > > > > > > > >> > > On Fri, May 13, 2016 at 11:29 PM, Gwen
> > > > > Shapira <
> > > > > >> >> > > > > > > g...@confluent.io
> > > > > >> >> > > > > > > > >
> > > > > >> >> > > > > > > > > >> wrote:
> > > > > >> >> > > > > > > > > >> > >
> > > > > >> >> > > > > > > > > >> > > > Also comments inline :)
> > > > > >> >> > > > > > > > > >> > > >
> > > > > >> >> > > > > > > > > >> > > > > * I want to emphasize that even
> > though
> > > > > >> delegation
> > > > > >> >> > > > tokens
> > > > > >> >> > > > > > > are a
> > > > > >> >> > > > > > > > > >> Hadoop
> > > > > >> >> > > > > > > > > >> > > > > innovation, I feel very strongly
> > about
> > > > not
> > > > > >> adding
> > > > > >> >> > > > > > dependency
> > > > > >> >> > > > > > > > on
> > > > > >> >> > > > > > > > > >> Hadoop
> > > > > >> >> > > > > > > > > >> > > > > when implementing delegation
> tokens
> > > for
> > > > > >> Kafka. The
> > > > > >> >> > > KIP
> > > > > >> >> > > > > > > doesn't
> > > > > >> >> > > > > > > > > >> imply
> > > > > >> >> > > > > > > > > >> > > > > such dependency, but if you can
> > > > clarify...
> > > > > >> >> > > > > > > > > >> > > > >
> > > > > >> >> > > > > > > > > >> > > > >
> > > > > >> >> > > > > > > > > >> > > > > *No hadoop dependency.*
> > > > > >> >> > > > > > > > > >> > > >
> > > > > >> >> > > > > > > > > >> > > > Yay! Just add this to the KIP so no
> > one
> > > > will
> > > > > >> read
> > > > > >> >> > the
> > > > > >> >> > > > KIP
> > > > > >> >> > > > > > and
> > > > > >> >> > > > > > > > > panic
> > > > > >> >> > > > > > > > > >> > > > three weeks before the next
> release...
> > > > > >> >> > > > > > > > > >> > > >
> > > > > >> >> > > > > > > > > >> > > > > * Can we get delegation token at
> any
> > > > time
> > > > > >> after
> > > > > >> >> > > > > > > > authenticating?
> > > > > >> >> > > > > > > > > >> only
> > > > > >> >> > > > > > > > > >> > > > > immediately after?
> > > > > >> >> > > > > > > > > >> > > > >
> > > > > >> >> > > > > > > > > >> > > > >
> > > > > >> >> > > > > > > > > >> > > > > *As long as you are authenticated
> > you
> > > > can
> > > > > >> get
> > > > > >> >> > > > delegation
> > > > > >> >> > > > > > > > tokens.
> > > > > >> >> > > > > > > > > >> We
> > > > > >> >> > > > > > > > > >> > > need
> > > > > >> >> > > > > > > > > >> > > > to
> > > > > >> >> > > > > > > > > >> > > > > discuss if a client authenticated
> > > using
> > > > > >> delegation
> > > > > >> >> > > > > token,
> > > > > >> >> > > > > > > can
> > > > > >> >> > > > > > > > > also
> > > > > >> >> > > > > > > > > >> > > > acquire
> > > > > >> >> > > > > > > > > >> > > > > delegation token again or not.
> Also
> > > > there
> > > > > >> is the
> > > > > >> >> > > > > question
> > > > > >> >> > > > > > of
> > > > > >> >> > > > > > > > do
> > > > > >> >> > > > > > > > > we
> > > > > >> >> > > > > > > > > >> > > allow
> > > > > >> >> > > > > > > > > >> > > > > anyone to acquire delegation token
> > or
> > > we
> > > > > >> want
> > > > > >> >> > > specific
> > > > > >> >> > > > > > ACLs
> > > > > >> >> > > > > > > (I
> > > > > >> >> > > > > > > > > >> think
> > > > > >> >> > > > > > > > > >> > > its
> > > > > >> >> > > > > > > > > >> > > > an
> > > > > >> >> > > > > > > > > >> > > > > overkill.)*
> > > > > >> >> > > > > > > > > >> > > >
> > > > > >> >> > > > > > > > > >> > > > I agree that ACLs is an overkill.
> > > > > >> >> > > > > > > > > >> > > >
> > > > > >> >> > > > > > > > > >> > > > I think we are debating two options:
> > > > Either
> > > > > >> require
> > > > > >> >> > > > > Kerberos
> > > > > >> >> > > > > > > > auth
> > > > > >> >> > > > > > > > > >> for
> > > > > >> >> > > > > > > > > >> > > > renewal or require non-owners to
> > renew.
> > > > > >> >> > > > > > > > > >> > > > I *think* the latter is simpler (it
> > > > > basically
> > > > > >> >> > require
> > > > > >> >> > > a
> > > > > >> >> > > > > "job
> > > > > >> >> > > > > > > > > master"
> > > > > >> >> > > > > > > > > >> > > > to take responsibility for the
> > renewal,
> > > it
> > > > > >> will have
> > > > > >> >> > > its
> > > > > >> >> > > > > own
> > > > > >> >> > > > > > > > > >> identity
> > > > > >> >> > > > > > > > > >> > > > anyway and I think this is the
> correct
> > > > > design
> > > > > >> >> > pattern
> > > > > >> >> > > > > > anyway.
> > > > > >> >> > > > > > > > For
> > > > > >> >> > > > > > > > > >> > > > storm, I'd expect Nimbus to
> coordinate
> > > > > >> renewals?),
> > > > > >> >> > but
> > > > > >> >> > > > it
> > > > > >> >> > > > > is
> > > > > >> >> > > > > > > > hard
> > > > > >> >> > > > > > > > > to
> > > > > >> >> > > > > > > > > >> > > > debate simplicity without looking at
> > the
> > > > > code
> > > > > >> >> > changes
> > > > > >> >> > > > > > > required.
> > > > > >> >> > > > > > > > If
> > > > > >> >> > > > > > > > > >> you
> > > > > >> >> > > > > > > > > >> > > > have a draft of how the "require
> > > Kerberos"
> > > > > >> will look
> > > > > >> >> > > in
> > > > > >> >> > > > > > Kafka
> > > > > >> >> > > > > > > > > code,
> > > > > >> >> > > > > > > > > >> > > > I'll be happy to take a look.
> > > > > >> >> > > > > > > > > >> > > >
> > > > > >> >> > > > > > > > > >> > > > > * My understanding is that tokens
> > will
> > > > > >> propagate
> > > > > >> >> > via
> > > > > >> >> > > > ZK
> > > > > >> >> > > > > > but
> > > > > >> >> > > > > > > > > >> without
> > > > > >> >> > > > > > > > > >> > > > > additional changes to
> UpdateMetadata
> > > > > >> protocol,
> > > > > >> >> > > > correct?
> > > > > >> >> > > > > > > > Clients
> > > > > >> >> > > > > > > > > >> > > > > currently don't retry on SASL auth
> > > > failure
> > > > > >> (IIRC),
> > > > > >> >> > > but
> > > > > >> >> > > > > > since
> > > > > >> >> > > > > > > > the
> > > > > >> >> > > > > > > > > >> > > > > tokens propagate between brokers
> > > asynch,
> > > > > we
> > > > > >> will
> > > > > >> >> > > need
> > > > > >> >> > > > to
> > > > > >> >> > > > > > > > retry a
> > > > > >> >> > > > > > > > > >> bit
> > > > > >> >> > > > > > > > > >> > > > > to avoid clients failing auth due
> to
> > > > > timing
> > > > > >> >> > issues.
> > > > > >> >> > > > > > > > > >> > > > >
> > > > > >> >> > > > > > > > > >> > > > > *I am considering 2 alternatives
> > right
> > > > > now.
> > > > > >> The
> > > > > >> >> > > > current
> > > > > >> >> > > > > > > > > documented
> > > > > >> >> > > > > > > > > >> > > > approach
> > > > > >> >> > > > > > > > > >> > > > > is zookeeper based and it does not
> > > > require
> > > > > >> any
> > > > > >> >> > > changes
> > > > > >> >> > > > > to
> > > > > >> >> > > > > > > > > >> > > UpdateMetadata
> > > > > >> >> > > > > > > > > >> > > > > protocol. An alternative approach
> > can
> > > > > remove
> > > > > >> >> > > zookeeper
> > > > > >> >> > > > > > > > > dependency
> > > > > >> >> > > > > > > > > >> as
> > > > > >> >> > > > > > > > > >> > > well
> > > > > >> >> > > > > > > > > >> > > > > but we can discuss that in KIP
> > > > discussion
> > > > > >> call.*
> > > > > >> >> > > > > > > > > >> > > >
> > > > > >> >> > > > > > > > > >> > > > Oooh! Sounds interesting. Do you
> want
> > to
> > > > > ping
> > > > > >> Jun to
> > > > > >> >> > > > > > arrange a
> > > > > >> >> > > > > > > > > call?
> > > > > >> >> > > > > > > > > >> > > >
> > > > > >> >> > > > > > > > > >> > > > > * I liked Ashish's suggestion of
> > > having
> > > > > >> just the
> > > > > >> >> > > > > > controller
> > > > > >> >> > > > > > > > > issue
> > > > > >> >> > > > > > > > > >> the
> > > > > >> >> > > > > > > > > >> > > > > delegation tokens, to avoid
> syncing
> > a
> > > > > shared
> > > > > >> >> > secret.
> > > > > >> >> > > > Not
> > > > > >> >> > > > > > > sure
> > > > > >> >> > > > > > > > if
> > > > > >> >> > > > > > > > > >> we
> > > > > >> >> > > > > > > > > >> > > > > want to continue the discussion
> here
> > > or
> > > > on
> > > > > >> the
> > > > > >> >> > > wiki. I
> > > > > >> >> > > > > > think
> > > > > >> >> > > > > > > > > that
> > > > > >> >> > > > > > > > > >> we
> > > > > >> >> > > > > > > > > >> > > > > can decouple the problem of "token
> > > > > >> distribution"
> > > > > >> >> > > from
> > > > > >> >> > > > > > > "shared
> > > > > >> >> > > > > > > > > >> secret
> > > > > >> >> > > > > > > > > >> > > > > distribution" and use the
> controller
> > > as
> > > > > the
> > > > > >> only
> > > > > >> >> > > token
> > > > > >> >> > > > > > > > generator
> > > > > >> >> > > > > > > > > >> to
> > > > > >> >> > > > > > > > > >> > > > > solve the second issue, while
> still
> > > > using
> > > > > >> ZK async
> > > > > >> >> > > to
> > > > > >> >> > > > > > > > distribute
> > > > > >> >> > > > > > > > > >> > > > > tokens.
> > > > > >> >> > > > > > > > > >> > > > >
> > > > > >> >> > > > > > > > > >> > > > >
> > > > > >> >> > > > > > > > > >> > > > > *As mentioned in the previous
> Email
> > I
> > > am
> > > > > >> fine with
> > > > > >> >> > > > that
> > > > > >> >> > > > > > > > approach
> > > > > >> >> > > > > > > > > >> as
> > > > > >> >> > > > > > > > > >> > > long
> > > > > >> >> > > > > > > > > >> > > > as
> > > > > >> >> > > > > > > > > >> > > > > we agree that the extra complexity
> > of
> > > > > >> >> > > adding/updating
> > > > > >> >> > > > > APIS
> > > > > >> >> > > > > > > > adds
> > > > > >> >> > > > > > > > > >> enough
> > > > > >> >> > > > > > > > > >> > > > > value. The advantage with the
> > > controller
> > > > > >> approach
> > > > > >> >> > is
> > > > > >> >> > > > > > secret
> > > > > >> >> > > > > > > > > >> rotation
> > > > > >> >> > > > > > > > > >> > > can
> > > > > >> >> > > > > > > > > >> > > > be
> > > > > >> >> > > > > > > > > >> > > > > automated,frequent and would not
> > > require
> > > > > >> >> > > deployment. *
> > > > > >> >> > > > > > > > > >> > > >
> > > > > >> >> > > > > > > > > >> > > > Can you detail the extra complexity
> > (or
> > > > > point
> > > > > >> me to
> > > > > >> >> > > the
> > > > > >> >> > > > > > email
> > > > > >> >> > > > > > > I
> > > > > >> >> > > > > > > > > >> > > > missed?) - which Apis are required?
> > > > > >> >> > > > > > > > > >> > > > As far as I can tell, clients can
> > > already
> > > > > >> find the
> > > > > >> >> > > > > > controller
> > > > > >> >> > > > > > > > from
> > > > > >> >> > > > > > > > > >> > > > metadata. I'm a bit more concerned
> > about
> > > > > >> controller
> > > > > >> >> > > > load.
> > > > > >> >> > > > > > > > > >> > > >
> > > > > >> >> > > > > > > > > >> > > > >
> > > > > >> >> > > > > > > > > >> > > > > * While I like the idea of forcing
> > > > > kerberos
> > > > > >> auth
> > > > > >> >> > for
> > > > > >> >> > > > > > > renwal, I
> > > > > >> >> > > > > > > > > >> think
> > > > > >> >> > > > > > > > > >> > > > > it mixes the transport layer the
> the
> > > > > request
> > > > > >> >> > content
> > > > > >> >> > > > in
> > > > > >> >> > > > > a
> > > > > >> >> > > > > > > > pretty
> > > > > >> >> > > > > > > > > >> ugly
> > > > > >> >> > > > > > > > > >> > > > > way. Perhaps limiting renewer to
> > > > non-owner
> > > > > >> is
> > > > > >> >> > > better.
> > > > > >> >> > > > > > > > > >> > > > >
> > > > > >> >> > > > > > > > > >> > > > > *I feel this is a necessary evil.
> > > While
> > > > > >> this will
> > > > > >> >> > > make
> > > > > >> >> > > > > the
> > > > > >> >> > > > > > > > kafka
> > > > > >> >> > > > > > > > > >> code
> > > > > >> >> > > > > > > > > >> > > > > pretty straight forward , forcing
> > > > renewer
> > > > > >> to
> > > > > >> >> > > > non-owner
> > > > > >> >> > > > > > > pushes
> > > > > >> >> > > > > > > > > >> the code
> > > > > >> >> > > > > > > > > >> > > > > ugliness to client and makes it
> even
> > > > > harder
> > > > > >> to
> > > > > >> >> > > > > > integrate.  *
> > > > > >> >> > > > > > > > > >> > > >
> > > > > >> >> > > > > > > > > >> > > > As mentioned before, I don't think
> the
> > > > > >> "renewal by
> > > > > >> >> > > > other"
> > > > > >> >> > > > > > > > approach
> > > > > >> >> > > > > > > > > >> is
> > > > > >> >> > > > > > > > > >> > > > that ugly for the clients we expect
> to
> > > use
> > > > > >> >> > delegation
> > > > > >> >> > > > > tokens
> > > > > >> >> > > > > > > > since
> > > > > >> >> > > > > > > > > >> > > > they will have an app-master of some
> > > sort
> > > > > who
> > > > > >> >> > > requested
> > > > > >> >> > > > > the
> > > > > >> >> > > > > > > > token
> > > > > >> >> > > > > > > > > to
> > > > > >> >> > > > > > > > > >> > > > begin with.
> > > > > >> >> > > > > > > > > >> > > >
> > > > > >> >> > > > > > > > > >> > > > >
> > > > > >> >> > > > > > > > > >> > > > > The response for my question on
> how
> > > > > multiple
> > > > > >> >> > > > identities
> > > > > >> >> > > > > > will
> > > > > >> >> > > > > > > > be
> > > > > >> >> > > > > > > > > >> > > > > handled wasn't super clear to me -
> > > > AFAIK,
> > > > > >> we don't
> > > > > >> >> > > > > > > > authenticate
> > > > > >> >> > > > > > > > > >> each
> > > > > >> >> > > > > > > > > >> > > > > request, we authenticate
> > connections.
> > > > > >> >> > > > > > > > > >> > > > >
> > > > > >> >> > > > > > > > > >> > > > > *We authenticate connections, and
> > only
> > > > > when
> > > > > >> they
> > > > > >> >> > are
> > > > > >> >> > > > > being
> > > > > >> >> > > > > > > > > >> established.
> > > > > >> >> > > > > > > > > >> > > > Let
> > > > > >> >> > > > > > > > > >> > > > > me try to phrase this as a
> question,
> > > in
> > > > > >> absence of
> > > > > >> >> > > > > > > delegation
> > > > > >> >> > > > > > > > > >> tokens if
> > > > > >> >> > > > > > > > > >> > > > we
> > > > > >> >> > > > > > > > > >> > > > > had to support the use case using
> > user
> > > > > >> TGT's how
> > > > > >> >> > > would
> > > > > >> >> > > > > we
> > > > > >> >> > > > > > do
> > > > > >> >> > > > > > > > it?
> > > > > >> >> > > > > > > > > >> My
> > > > > >> >> > > > > > > > > >> > > point
> > > > > >> >> > > > > > > > > >> > > > > was it would be no different with
> > > > > delegation
> > > > > >> >> > tokens.
> > > > > >> >> > > > The
> > > > > >> >> > > > > > use
> > > > > >> >> > > > > > > > > case
> > > > > >> >> > > > > > > > > >> you
> > > > > >> >> > > > > > > > > >> > > are
> > > > > >> >> > > > > > > > > >> > > > > describing seems more like
> > > > impersonation.*
> > > > > >> >> > > > > > > > > >> > > >
> > > > > >> >> > > > > > > > > >> > > > Yeah, I thought that one of the
> things
> > > > that
> > > > > >> >> > delegation
> > > > > >> >> > > > > > tokens
> > > > > >> >> > > > > > > > > >> handled.
> > > > > >> >> > > > > > > > > >> > > > Maybe I got it wrong :)
> > > > > >> >> > > > > > > > > >> > > >
> > > > > >> >> > > > > > > > > >> > > > Thanks for the detailed answers.
> > > > > >> >> > > > > > > > > >> > > >
> > > > > >> >> > > > > > > > > >> > > > Gwen
> > > > > >> >> > > > > > > > > >> > > >
> > > > > >> >> > > > > > > > > >> > > >
> > > > > >> >> > > > > > > > > >> > > > > Thanks
> > > > > >> >> > > > > > > > > >> > > > > Parth
> > > > > >> >> > > > > > > > > >> > > > >
> > > > > >> >> > > > > > > > > >> > > > > On Fri, May 13, 2016 at 12:19 AM,
> > Gwen
> > > > > >> Shapira <
> > > > > >> >> > > > > > > > > g...@confluent.io
> > > > > >> >> > > > > > > > > >> >
> > > > > >> >> > > > > > > > > >> > > > wrote:
> > > > > >> >> > > > > > > > > >> > > > >
> > > > > >> >> > > > > > > > > >> > > > >> Hi Parth and Harsha,
> > > > > >> >> > > > > > > > > >> > > > >>
> > > > > >> >> > > > > > > > > >> > > > >> Few more comments:
> > > > > >> >> > > > > > > > > >> > > > >>
> > > > > >> >> > > > > > > > > >> > > > >> * The API / RequestResponse
> section
> > > > > >> doesn't seem
> > > > > >> >> > to
> > > > > >> >> > > > > have
> > > > > >> >> > > > > > > good
> > > > > >> >> > > > > > > > > >> > > > >> description of the changes to the
> > > Kafka
> > > > > >> Protocol.
> > > > > >> >> > > > > Sounds
> > > > > >> >> > > > > > > like
> > > > > >> >> > > > > > > > > >> you are
> > > > > >> >> > > > > > > > > >> > > > >> proposing new
> > DelegationTokenRequest
> > > > and
> > > > > >> >> > > > > > RenewTokenRequest
> > > > > >> >> > > > > > > > (and
> > > > > >> >> > > > > > > > > >> > > > >> matching responses), without
> > > detailing
> > > > > the
> > > > > >> >> > contents
> > > > > >> >> > > > of
> > > > > >> >> > > > > > the
> > > > > >> >> > > > > > > > > >> requests
> > > > > >> >> > > > > > > > > >> > > > >> and responses? Or rather, you
> show
> > > the
> > > > > >> class
> > > > > >> >> > > > interface,
> > > > > >> >> > > > > > but
> > > > > >> >> > > > > > > > not
> > > > > >> >> > > > > > > > > >> the
> > > > > >> >> > > > > > > > > >> > > > >> underlying protocol. This could
> be
> > > seen
> > > > > as
> > > > > >> an
> > > > > >> >> > > > > > > implementation
> > > > > >> >> > > > > > > > > >> detail,
> > > > > >> >> > > > > > > > > >> > > > >> but since the binary protocol is
> > what
> > > > we
> > > > > >> provide
> > > > > >> >> > to
> > > > > >> >> > > > > > > non-Java
> > > > > >> >> > > > > > > > > >> clients,
> > > > > >> >> > > > > > > > > >> > > > >> we need to show the changes
> there.
> > > > > >> >> > > > > > > > > >> > > > >>
> > > > > >> >> > > > > > > > > >> > > > >> * getDelegationToken sounds like
> > > > > >> >> > > > > > > > delegationTokenRequestHandler?
> > > > > >> >> > > > > > > > > >> Is it
> > > > > >> >> > > > > > > > > >> > > > >> planned to be part of KafkaApi?
> or
> > > > > Client?
> > > > > >> Its
> > > > > >> >> > > > > unclear...
> > > > > >> >> > > > > > > > > >> > > > >>
> > > > > >> >> > > > > > > > > >> > > > >> * I want to emphasize that even
> > > though
> > > > > >> delegation
> > > > > >> >> > > > > tokens
> > > > > >> >> > > > > > > are
> > > > > >> >> > > > > > > > a
> > > > > >> >> > > > > > > > > >> Hadoop
> > > > > >> >> > > > > > > > > >> > > > >> innovation, I feel very strongly
> > > about
> > > > > not
> > > > > >> adding
> > > > > >> >> > > > > > > dependency
> > > > > >> >> > > > > > > > on
> > > > > >> >> > > > > > > > > >> Hadoop
> > > > > >> >> > > > > > > > > >> > > > >> when implementing delegation
> tokens
> > > for
> > > > > >> Kafka.
> > > > > >> >> > The
> > > > > >> >> > > > KIP
> > > > > >> >> > > > > > > > doesn't
> > > > > >> >> > > > > > > > > >> imply
> > > > > >> >> > > > > > > > > >> > > > >> such dependency, but if you can
> > > > > clarify...
> > > > > >> >> > > > > > > > > >> > > > >>
> > > > > >> >> > > > > > > > > >> > > > >> * Can we get delegation token at
> > any
> > > > time
> > > > > >> after
> > > > > >> >> > > > > > > > authenticating?
> > > > > >> >> > > > > > > > > >> only
> > > > > >> >> > > > > > > > > >> > > > >> immediately after?
> > > > > >> >> > > > > > > > > >> > > > >>
> > > > > >> >> > > > > > > > > >> > > > >> * My understanding is that tokens
> > > will
> > > > > >> propagate
> > > > > >> >> > > via
> > > > > >> >> > > > ZK
> > > > > >> >> > > > > > but
> > > > > >> >> > > > > > > > > >> without
> > > > > >> >> > > > > > > > > >> > > > >> additional changes to
> > UpdateMetadata
> > > > > >> protocol,
> > > > > >> >> > > > correct?
> > > > > >> >> > > > > > > > Clients
> > > > > >> >> > > > > > > > > >> > > > >> currently don't retry on SASL
> auth
> > > > > failure
> > > > > >> >> > (IIRC),
> > > > > >> >> > > > but
> > > > > >> >> > > > > > > since
> > > > > >> >> > > > > > > > > the
> > > > > >> >> > > > > > > > > >> > > > >> tokens propagate between brokers
> > > > asynch,
> > > > > >> we will
> > > > > >> >> > > need
> > > > > >> >> > > > > to
> > > > > >> >> > > > > > > > retry
> > > > > >> >> > > > > > > > > a
> > > > > >> >> > > > > > > > > >> bit
> > > > > >> >> > > > > > > > > >> > > > >> to avoid clients failing auth due
> > to
> > > > > timing
> > > > > >> >> > issues.
> > > > > >> >> > > > > > > > > >> > > > >>
> > > > > >> >> > > > > > > > > >> > > > >> * Strongly agreeing on clients
> not
> > > > > >> touching ZK
> > > > > >> >> > > > directly
> > > > > >> >> > > > > > :)
> > > > > >> >> > > > > > > > > >> > > > >>
> > > > > >> >> > > > > > > > > >> > > > >> * I liked Ashish's suggestion of
> > > having
> > > > > >> just the
> > > > > >> >> > > > > > controller
> > > > > >> >> > > > > > > > > >> issue the
> > > > > >> >> > > > > > > > > >> > > > >> delegation tokens, to avoid
> > syncing a
> > > > > >> shared
> > > > > >> >> > > secret.
> > > > > >> >> > > > > Not
> > > > > >> >> > > > > > > sure
> > > > > >> >> > > > > > > > > if
> > > > > >> >> > > > > > > > > >> we
> > > > > >> >> > > > > > > > > >> > > > >> want to continue the discussion
> > here
> > > or
> > > > > on
> > > > > >> the
> > > > > >> >> > > wiki.
> > > > > >> >> > > > I
> > > > > >> >> > > > > > > think
> > > > > >> >> > > > > > > > > >> that we
> > > > > >> >> > > > > > > > > >> > > > >> can decouple the problem of
> "token
> > > > > >> distribution"
> > > > > >> >> > > from
> > > > > >> >> > > > > > > "shared
> > > > > >> >> > > > > > > > > >> secret
> > > > > >> >> > > > > > > > > >> > > > >> distribution" and use the
> > controller
> > > as
> > > > > >> the only
> > > > > >> >> > > > token
> > > > > >> >> > > > > > > > > generator
> > > > > >> >> > > > > > > > > >> to
> > > > > >> >> > > > > > > > > >> > > > >> solve the second issue, while
> still
> > > > using
> > > > > >> ZK
> > > > > >> >> > async
> > > > > >> >> > > to
> > > > > >> >> > > > > > > > > distribute
> > > > > >> >> > > > > > > > > >> > > > >> tokens.
> > > > > >> >> > > > > > > > > >> > > > >>
> > > > > >> >> > > > > > > > > >> > > > >> * I am also uncomfortable with
> > > infinite
> > > > > >> lifetime
> > > > > >> >> > of
> > > > > >> >> > > > > > tokens
> > > > > >> >> > > > > > > > (and
> > > > > >> >> > > > > > > > > >> hoped
> > > > > >> >> > > > > > > > > >> > > > >> to hear from others in the
> > > community) -
> > > > > but
> > > > > >> >> > having
> > > > > >> >> > > > the
> > > > > >> >> > > > > > > option
> > > > > >> >> > > > > > > > > and
> > > > > >> >> > > > > > > > > >> > > > >> documenting it as less secure,
> > allows
> > > > > >> users to
> > > > > >> >> > > > > configure
> > > > > >> >> > > > > > > > their
> > > > > >> >> > > > > > > > > >> system
> > > > > >> >> > > > > > > > > >> > > > >> as the wish.
> > > > > >> >> > > > > > > > > >> > > > >>
> > > > > >> >> > > > > > > > > >> > > > >> * While I like the idea of
> forcing
> > > > > >> kerberos auth
> > > > > >> >> > > for
> > > > > >> >> > > > > > > renwal,
> > > > > >> >> > > > > > > > I
> > > > > >> >> > > > > > > > > >> think
> > > > > >> >> > > > > > > > > >> > > > >> it mixes the transport layer the
> > the
> > > > > >> request
> > > > > >> >> > > content
> > > > > >> >> > > > > in a
> > > > > >> >> > > > > > > > > pretty
> > > > > >> >> > > > > > > > > >> ugly
> > > > > >> >> > > > > > > > > >> > > > >> way. Perhaps limiting renewer to
> > > > > non-owner
> > > > > >> is
> > > > > >> >> > > better.
> > > > > >> >> > > > > > > > > >> > > > >>
> > > > > >> >> > > > > > > > > >> > > > >> Things I'd still like to see:
> > > > > >> >> > > > > > > > > >> > > > >>
> > > > > >> >> > > > > > > > > >> > > > >> * More detailed explanation on
> what
> > > we
> > > > > >> plan to do
> > > > > >> >> > > for
> > > > > >> >> > > > > the
> > > > > >> >> > > > > > > > java
> > > > > >> >> > > > > > > > > >> clients
> > > > > >> >> > > > > > > > > >> > > > >> specifically - new configuration?
> > new
> > > > > APIs?
> > > > > >> >> > > > > > > > > >> > > > >> The response for my question on
> how
> > > > > >> multiple
> > > > > >> >> > > > identities
> > > > > >> >> > > > > > > will
> > > > > >> >> > > > > > > > be
> > > > > >> >> > > > > > > > > >> > > > >> handled wasn't super clear to me
> -
> > > > AFAIK,
> > > > > >> we
> > > > > >> >> > don't
> > > > > >> >> > > > > > > > authenticate
> > > > > >> >> > > > > > > > > >> each
> > > > > >> >> > > > > > > > > >> > > > >> request, we authenticate
> > connections.
> > > > > >> >> > > > > > > > > >> > > > >>
> > > > > >> >> > > > > > > > > >> > > > >> * Alternatives: Delegation tokens
> > are
> > > > > only
> > > > > >> used
> > > > > >> >> > in
> > > > > >> >> > > > the
> > > > > >> >> > > > > > > Hadoop
> > > > > >> >> > > > > > > > > >> > > > >> ecosystem. I'm wondering if there
> > are
> > > > > >> >> > alternatives
> > > > > >> >> > > in
> > > > > >> >> > > > > > other
> > > > > >> >> > > > > > > > > >> ecosystems
> > > > > >> >> > > > > > > > > >> > > > >> (Mesos? Tachyon? Cassandra?) and
> > > > whether
> > > > > >> there
> > > > > >> >> > are
> > > > > >> >> > > > some
> > > > > >> >> > > > > > > > > >> advantages
> > > > > >> >> > > > > > > > > >> > > > >> there.
> > > > > >> >> > > > > > > > > >> > > > >>
> > > > > >> >> > > > > > > > > >> > > > >> Gwen
> > > > > >> >> > > > > > > > > >> > > > >>
> > > > > >> >> > > > > > > > > >> > > > >> On Thu, May 12, 2016 at 1:05 PM,
> > > > Harsha <
> > > > > >> >> > > > > ka...@harsha.io
> > > > > >> >> > > > > > >
> > > > > >> >> > > > > > > > > wrote:
> > > > > >> >> > > > > > > > > >> > > > >> > Hi Gwen,
> > > > > >> >> > > > > > > > > >> > > > >> >            Can you look at
> > Parth's
> > > > last
> > > > > >> reply.
> > > > > >> >> > > Does
> > > > > >> >> > > > > it
> > > > > >> >> > > > > > > > answer
> > > > > >> >> > > > > > > > > >> your
> > > > > >> >> > > > > > > > > >> > > > >> >            concerns.
> > > > > >> >> > > > > > > > > >> > > > >> >
> > > > > >> >> > > > > > > > > >> > > > >> > Thanks,
> > > > > >> >> > > > > > > > > >> > > > >> > Harsha
> > > > > >> >> > > > > > > > > >> > > > >> >
> > > > > >> >> > > > > > > > > >> > > > >> > On Wed, May 4, 2016, at 09:25
> AM,
> > > > parth
> > > > > >> >> > > brahmbhatt
> > > > > >> >> > > > > > wrote:
> > > > > >> >> > > > > > > > > >> > > > >> >> Thanks for reviewing Gwen. The
> > > wiki
> > > > > >> already
> > > > > >> >> > has
> > > > > >> >> > > > > > details
> > > > > >> >> > > > > > > on
> > > > > >> >> > > > > > > > > >> token
> > > > > >> >> > > > > > > > > >> > > > >> >> expiration
> > > > > >> >> > > > > > > > > >> > > > >> >> under token acquisition
> process
> > > > > >> >> > > > > > > > > >> > > > >> >> <
> > > > > >> >> > > > > > > > > >> > > > >>
> > > > > >> >> > > > > > > > > >> > > >
> > > > > >> >> > > > > > > > > >> > >
> > > > > >> >> > > > > > > > > >>
> > > > > >> >> > > > > > > > >
> > > > > >> >> > > > > > > >
> > > > > >> >> > > > > > >
> > > > > >> >> > > > > >
> > > > > >> >> > > > >
> > > > > >> >> > > >
> > > > > >> >> > >
> > > > > >> >> >
> > > > > >>
> > > > >
> > > >
> > >
> >
> https://cwiki.apache.org/confluence/display/KAFKA/KIP-48+Delegation+token+support+for+Kafka#KIP-48DelegationtokensupportforKafka-Tokenacquisition
> > > > > >> >> > > > > > > > > >> > > > >> >.
> > > > > >> >> > > > > > > > > >> > > > >> >> Current proposal is that
> tokens
> > > will
> > > > > >> expire
> > > > > >> >> > > based
> > > > > >> >> > > > > on a
> > > > > >> >> > > > > > > > > server
> > > > > >> >> > > > > > > > > >> side
> > > > > >> >> > > > > > > > > >> > > > >> >> configuration (default 24
> hours)
> > > > > unless
> > > > > >> >> > renewed.
> > > > > >> >> > > > > > Renewal
> > > > > >> >> > > > > > > > is
> > > > > >> >> > > > > > > > > >> only
> > > > > >> >> > > > > > > > > >> > > > allowed
> > > > > >> >> > > > > > > > > >> > > > >> >> until the max life time of
> > token.
> > > > > >> >> > Alternatively
> > > > > >> >> > > we
> > > > > >> >> > > > > > could
> > > > > >> >> > > > > > > > > also
> > > > > >> >> > > > > > > > > >> make
> > > > > >> >> > > > > > > > > >> > > > that
> > > > > >> >> > > > > > > > > >> > > > >> >> an
> > > > > >> >> > > > > > > > > >> > > > >> >> optional param and the server
> > side
> > > > > >> default can
> > > > > >> >> > > > serve
> > > > > >> >> > > > > > as
> > > > > >> >> > > > > > > > the
> > > > > >> >> > > > > > > > > >> upper
> > > > > >> >> > > > > > > > > >> > > > bound.
> > > > > >> >> > > > > > > > > >> > > > >> >>
> > > > > >> >> > > > > > > > > >> > > > >> >> To your second point it will
> be
> > > done
> > > > > >> exactly
> > > > > >> >> > the
> > > > > >> >> > > > > same
> > > > > >> >> > > > > > > way
> > > > > >> >> > > > > > > > we
> > > > > >> >> > > > > > > > > >> would
> > > > > >> >> > > > > > > > > >> > > > >> >> support
> > > > > >> >> > > > > > > > > >> > > > >> >> multiple keytabs. The calling
> > > client
> > > > > >> will have
> > > > > >> >> > > to
> > > > > >> >> > > > > put
> > > > > >> >> > > > > > > the
> > > > > >> >> > > > > > > > > >> tokens it
> > > > > >> >> > > > > > > > > >> > > > >> wants
> > > > > >> >> > > > > > > > > >> > > > >> >> to use in the subject instance
> > and
> > > > > call
> > > > > >> >> > > > > > produce/consume
> > > > > >> >> > > > > > > > > inside
> > > > > >> >> > > > > > > > > >> > > > >> >> subject.doas. Each caller will
> > > have
> > > > to
> > > > > >> keep
> > > > > >> >> > > track
> > > > > >> >> > > > of
> > > > > >> >> > > > > > its
> > > > > >> >> > > > > > > > own
> > > > > >> >> > > > > > > > > >> > > > subject. I
> > > > > >> >> > > > > > > > > >> > > > >> >> will have to look at the code
> to
> > > see
> > > > > if
> > > > > >> we
> > > > > >> >> > > support
> > > > > >> >> > > > > > this
> > > > > >> >> > > > > > > > > >> feature
> > > > > >> >> > > > > > > > > >> > > right
> > > > > >> >> > > > > > > > > >> > > > >> now
> > > > > >> >> > > > > > > > > >> > > > >> >> but my understanding is
> > delegation
> > > > > token
> > > > > >> >> > > shouldn't
> > > > > >> >> > > > > > need
> > > > > >> >> > > > > > > > any
> > > > > >> >> > > > > > > > > >> special
> > > > > >> >> > > > > > > > > >> > > > >> >> treatment as its just another
> > type
> > > > of
> > > > > >> >> > Credential
> > > > > >> >> > > > in
> > > > > >> >> > > > > > the
> > > > > >> >> > > > > > > > > >> subject.
> > > > > >> >> > > > > > > > > >> > > > >> >>
> > > > > >> >> > > > > > > > > >> > > > >> >> I would also like to know what
> > is
> > > > your
> > > > > >> opinion
> > > > > >> >> > > > about
> > > > > >> >> > > > > > > > > infinite
> > > > > >> >> > > > > > > > > >> > > renewal
> > > > > >> >> > > > > > > > > >> > > > >> (my
> > > > > >> >> > > > > > > > > >> > > > >> >> recommendation is to not
> support
> > > > > this),
> > > > > >> tokens
> > > > > >> >> > > > > > renewing
> > > > > >> >> > > > > > > > them
> > > > > >> >> > > > > > > > > >> > > self(my
> > > > > >> >> > > > > > > > > >> > > > >> >> recommendation is to not
> support
> > > > this)
> > > > > >> and
> > > > > >> >> > most
> > > > > >> >> > > > > > > > importantly
> > > > > >> >> > > > > > > > > >> your
> > > > > >> >> > > > > > > > > >> > > > choice
> > > > > >> >> > > > > > > > > >> > > > >> >> between the alternatives
> listed
> > on
> > > > > this
> > > > > >> thread
> > > > > >> >> > > > > > > > > >> > > > >> >> <
> > > > > >> >> > > > > > > > > >> > > > >>
> > > > > >> >> > > > > > > > > >> > > >
> > > > > >> >> > > > > > > > > >> > >
> > > > > >> >> > > > > > > > > >>
> > > > > >> >> > > > > > > > >
> > > > > >> >> > > > > > > >
> > > > > >> >> > > > > > >
> > > > > >> >> > > > > >
> > > > > >> >> > > > >
> > > > > >> >> > > >
> > > > > >> >> > >
> > > > > >> >> >
> > > > > >>
> > > > >
> > > >
> > >
> >
> http://apache.markmail.org/message/ca3iakt3m6c4yygp?q=KIP-48+Support+for+delegation+tokens+as+an+authentication+mechanism
> > > > > >> >> > > > > > > > > >> > > > >> >
> > > > > >> >> > > > > > > > > >> > > > >> >> ( I am leaning towards the
> > > > > >> alternative-2 minus
> > > > > >> >> > > > > > > controller
> > > > > >> >> > > > > > > > > >> > > > distributing
> > > > > >> >> > > > > > > > > >> > > > >> >> secret). Thanks again for
> > > reviewing.
> > > > > >> >> > > > > > > > > >> > > > >> >>
> > > > > >> >> > > > > > > > > >> > > > >> >> Thanks
> > > > > >> >> > > > > > > > > >> > > > >> >> Parth
> > > > > >> >> > > > > > > > > >> > > > >> >>
> > > > > >> >> > > > > > > > > >> > > > >> >>
> > > > > >> >> > > > > > > > > >> > > > >> >>
> > > > > >> >> > > > > > > > > >> > > > >> >> On Wed, May 4, 2016 at 6:17
> AM,
> > > Gwen
> > > > > >> Shapira <
> > > > > >> >> > > > > > > > > >> g...@confluent.io>
> > > > > >> >> > > > > > > > > >> > > > wrote:
> > > > > >> >> > > > > > > > > >> > > > >> >>
> > > > > >> >> > > > > > > > > >> > > > >> >> > Harsha,
> > > > > >> >> > > > > > > > > >> > > > >> >> >
> > > > > >> >> > > > > > > > > >> > > > >> >> > I was thinking of the Rest
> > > Proxy.
> > > > I
> > > > > >> didn't
> > > > > >> >> > see
> > > > > >> >> > > > > your
> > > > > >> >> > > > > > > > design
> > > > > >> >> > > > > > > > > >> yet,
> > > > > >> >> > > > > > > > > >> > > > but in
> > > > > >> >> > > > > > > > > >> > > > >> >> > our proxy, we have a set of
> > > > > >> producers, which
> > > > > >> >> > > > will
> > > > > >> >> > > > > > > serve
> > > > > >> >> > > > > > > > > >> multiple
> > > > > >> >> > > > > > > > > >> > > > users
> > > > > >> >> > > > > > > > > >> > > > >> >> > going through the proxy.
> Since
> > > > these
> > > > > >> users
> > > > > >> >> > > will
> > > > > >> >> > > > > have
> > > > > >> >> > > > > > > > > >> different
> > > > > >> >> > > > > > > > > >> > > > >> >> > privileges, they'll need to
> > > > > >> authenticate
> > > > > >> >> > > > > separately,
> > > > > >> >> > > > > > > and
> > > > > >> >> > > > > > > > > >> can't
> > > > > >> >> > > > > > > > > >> > > > share a
> > > > > >> >> > > > > > > > > >> > > > >> >> > token.
> > > > > >> >> > > > > > > > > >> > > > >> >> >
> > > > > >> >> > > > > > > > > >> > > > >> >> > Am I missing anything?
> > > > > >> >> > > > > > > > > >> > > > >> >> >
> > > > > >> >> > > > > > > > > >> > > > >> >> > Gwen
> > > > > >> >> > > > > > > > > >> > > > >> >> >
> > > > > >> >> > > > > > > > > >> > > > >> >> > On Tue, May 3, 2016 at 2:11
> > PM,
> > > > > >> Harsha <
> > > > > >> >> > > > > > > ka...@harsha.io
> > > > > >> >> > > > > > > > >
> > > > > >> >> > > > > > > > > >> wrote:
> > > > > >> >> > > > > > > > > >> > > > >> >> > > Gwen,
> > > > > >> >> > > > > > > > > >> > > > >> >> > >            On your second
> > > point.
> > > > > >> Can you
> > > > > >> >> > > > > describe
> > > > > >> >> > > > > > a
> > > > > >> >> > > > > > > > > >> usecase
> > > > > >> >> > > > > > > > > >> > > where
> > > > > >> >> > > > > > > > > >> > > > >> >> > >            mutliple
> clients
> > > > ended
> > > > > up
> > > > > >> >> > > sharing a
> > > > > >> >> > > > > > > > producer
> > > > > >> >> > > > > > > > > >> and
> > > > > >> >> > > > > > > > > >> > > even
> > > > > >> >> > > > > > > > > >> > > > if
> > > > > >> >> > > > > > > > > >> > > > >> they
> > > > > >> >> > > > > > > > > >> > > > >> >> > >            do why can't
> they
> > > not
> > > > > use
> > > > > >> >> > single
> > > > > >> >> > > > > token
> > > > > >> >> > > > > > > that
> > > > > >> >> > > > > > > > > >> producer
> > > > > >> >> > > > > > > > > >> > > > >> >> > >            captures. Why
> > would
> > > > we
> > > > > >> need
> > > > > >> >> > > > multiple
> > > > > >> >> > > > > > > > clients
> > > > > >> >> > > > > > > > > >> with
> > > > > >> >> > > > > > > > > >> > > > >> different
> > > > > >> >> > > > > > > > > >> > > > >> >> > >            tokens sharing
> a
> > > > single
> > > > > >> >> > instance
> > > > > >> >> > > of
> > > > > >> >> > > > > > > > producer.
> > > > > >> >> > > > > > > > > >> Also
> > > > > >> >> > > > > > > > > >> > > in
> > > > > >> >> > > > > > > > > >> > > > >> this
> > > > > >> >> > > > > > > > > >> > > > >> >> > >            case other
> > clients
> > > > have
> > > > > >> access
> > > > > >> >> > > all
> > > > > >> >> > > > > the
> > > > > >> >> > > > > > > > tokens
> > > > > >> >> > > > > > > > > >> no?
> > > > > >> >> > > > > > > > > >> > > > >> >> > >
> > > > > >> >> > > > > > > > > >> > > > >> >> > > Thanks,
> > > > > >> >> > > > > > > > > >> > > > >> >> > > Harsha
> > > > > >> >> > > > > > > > > >> > > > >> >> > >
> > > > > >> >> > > > > > > > > >> > > > >> >> > >
> > > > > >> >> > > > > > > > > >> > > > >> >> > > On Tue, May 3, 2016, at
> > 11:49
> > > > AM,
> > > > > >> Gwen
> > > > > >> >> > > Shapira
> > > > > >> >> > > > > > > wrote:
> > > > > >> >> > > > > > > > > >> > > > >> >> > >> Sorry for the delay:
> > > > > >> >> > > > > > > > > >> > > > >> >> > >>
> > > > > >> >> > > > > > > > > >> > > > >> >> > >> Two questions that we
> > didn't
> > > > see
> > > > > >> in the
> > > > > >> >> > > wiki:
> > > > > >> >> > > > > > > > > >> > > > >> >> > >> 1. Is there an expiration
> > for
> > > > > >> delegation
> > > > > >> >> > > > > tokens?
> > > > > >> >> > > > > > > > > >> Renewal? How
> > > > > >> >> > > > > > > > > >> > > > do we
> > > > > >> >> > > > > > > > > >> > > > >> >> > >> revoke them?
> > > > > >> >> > > > > > > > > >> > > > >> >> > >> 2. If we want to use
> > > delegation
> > > > > >> tokens
> > > > > >> >> > for
> > > > > >> >> > > > > > "do-as"
> > > > > >> >> > > > > > > > > (say,
> > > > > >> >> > > > > > > > > >> > > submit
> > > > > >> >> > > > > > > > > >> > > > >> Storm
> > > > > >> >> > > > > > > > > >> > > > >> >> > >> job as my user), we will
> > > need a
> > > > > >> producer
> > > > > >> >> > > for
> > > > > >> >> > > > > > every
> > > > > >> >> > > > > > > > job
> > > > > >> >> > > > > > > > > >> (we
> > > > > >> >> > > > > > > > > >> > > can't
> > > > > >> >> > > > > > > > > >> > > > >> share
> > > > > >> >> > > > > > > > > >> > > > >> >> > >> them between multiple
> jobs
> > > > > running
> > > > > >> on
> > > > > >> >> > same
> > > > > >> >> > > > > node),
> > > > > >> >> > > > > > > > since
> > > > > >> >> > > > > > > > > >> we
> > > > > >> >> > > > > > > > > >> > > only
> > > > > >> >> > > > > > > > > >> > > > >> >> > >> authenticate when
> > connecting.
> > > > Is
> > > > > >> there a
> > > > > >> >> > > plan
> > > > > >> >> > > > > to
> > > > > >> >> > > > > > > > change
> > > > > >> >> > > > > > > > > >> this
> > > > > >> >> > > > > > > > > >> > > for
> > > > > >> >> > > > > > > > > >> > > > >> >> > >> delegation tokens, in
> order
> > > to
> > > > > >> allow
> > > > > >> >> > > multiple
> > > > > >> >> > > > > > users
> > > > > >> >> > > > > > > > > with
> > > > > >> >> > > > > > > > > >> > > > different
> > > > > >> >> > > > > > > > > >> > > > >> >> > >> tokens to share a client?
> > > > > >> >> > > > > > > > > >> > > > >> >> > >>
> > > > > >> >> > > > > > > > > >> > > > >> >> > >> Gwen
> > > > > >> >> > > > > > > > > >> > > > >> >> > >>
> > > > > >> >> > > > > > > > > >> > > > >> >> > >> On Tue, May 3, 2016 at
> 9:12
> > > AM,
> > > > > >> parth
> > > > > >> >> > > > > brahmbhatt
> > > > > >> >> > > > > > > > > >> > > > >> >> > >> <
> > brahmbhatt.pa...@gmail.com>
> > > > > >> wrote:
> > > > > >> >> > > > > > > > > >> > > > >> >> > >> > Bumping this up one
> more
> > > > time,
> > > > > >> can
> > > > > >> >> > other
> > > > > >> >> > > > > > > committers
> > > > > >> >> > > > > > > > > >> review?
> > > > > >> >> > > > > > > > > >> > > > >> >> > >> >
> > > > > >> >> > > > > > > > > >> > > > >> >> > >> > Thanks
> > > > > >> >> > > > > > > > > >> > > > >> >> > >> > Parth
> > > > > >> >> > > > > > > > > >> > > > >> >> > >> >
> > > > > >> >> > > > > > > > > >> > > > >> >> > >> > On Tue, Apr 26, 2016 at
> > > 9:07
> > > > > AM,
> > > > > >> >> > Harsha <
> > > > > >> >> > > > > > > > > >> ka...@harsha.io>
> > > > > >> >> > > > > > > > > >> > > > wrote:
> > > > > >> >> > > > > > > > > >> > > > >> >> > >> >
> > > > > >> >> > > > > > > > > >> > > > >> >> > >> >> Parth,
> > > > > >> >> > > > > > > > > >> > > > >> >> > >> >>           Overall
> > current
> > > > > >> design looks
> > > > > >> >> > > > good
> > > > > >> >> > > > > to
> > > > > >> >> > > > > > > > me. I
> > > > > >> >> > > > > > > > > >> am +1
> > > > > >> >> > > > > > > > > >> > > on
> > > > > >> >> > > > > > > > > >> > > > >> the
> > > > > >> >> > > > > > > > > >> > > > >> >> > KIP.
> > > > > >> >> > > > > > > > > >> > > > >> >> > >> >>
> > > > > >> >> > > > > > > > > >> > > > >> >> > >> >> Gwen , Jun can you
> > review
> > > > this
> > > > > >> as
> > > > > >> >> > well.
> > > > > >> >> > > > > > > > > >> > > > >> >> > >> >>
> > > > > >> >> > > > > > > > > >> > > > >> >> > >> >> -Harsha
> > > > > >> >> > > > > > > > > >> > > > >> >> > >> >>
> > > > > >> >> > > > > > > > > >> > > > >> >> > >> >> On Tue, Apr 19, 2016,
> at
> > > > 09:57
> > > > > >> AM,
> > > > > >> >> > parth
> > > > > >> >> > > > > > > > brahmbhatt
> > > > > >> >> > > > > > > > > >> wrote:
> > > > > >> >> > > > > > > > > >> > > > >> >> > >> >> > Thanks for review
> > > > Jitendra.
> > > > > >> >> > > > > > > > > >> > > > >> >> > >> >> >
> > > > > >> >> > > > > > > > > >> > > > >> >> > >> >> > I don't like the
> idea
> > of
> > > > > >> infinite
> > > > > >> >> > > > lifetime
> > > > > >> >> > > > > > > but I
> > > > > >> >> > > > > > > > > >> see the
> > > > > >> >> > > > > > > > > >> > > > >> Streaming
> > > > > >> >> > > > > > > > > >> > > > >> >> > use
> > > > > >> >> > > > > > > > > >> > > > >> >> > >> >> > case. Even for
> > Streaming
> > > > use
> > > > > >> case I
> > > > > >> >> > > was
> > > > > >> >> > > > > > hoping
> > > > > >> >> > > > > > > > > >> there will
> > > > > >> >> > > > > > > > > >> > > > be
> > > > > >> >> > > > > > > > > >> > > > >> some
> > > > > >> >> > > > > > > > > >> > > > >> >> > notion
> > > > > >> >> > > > > > > > > >> > > > >> >> > >> >> > of
> > > > > >> >> > > > > > > > > >> > > > >> >> > >> >> > master/driver that
> can
> > > get
> > > > > new
> > > > > >> >> > > > delegation
> > > > > >> >> > > > > > > tokens
> > > > > >> >> > > > > > > > > at
> > > > > >> >> > > > > > > > > >> fixed
> > > > > >> >> > > > > > > > > >> > > > >> interval
> > > > > >> >> > > > > > > > > >> > > > >> >> > and
> > > > > >> >> > > > > > > > > >> > > > >> >> > >> >> > distribute to
> workers.
> > > If
> > > > > >> that is
> > > > > >> >> > not
> > > > > >> >> > > > the
> > > > > >> >> > > > > > case
> > > > > >> >> > > > > > > > for
> > > > > >> >> > > > > > > > > >> we can
> > > > > >> >> > > > > > > > > >> > > > >> discuss
> > > > > >> >> > > > > > > > > >> > > > >> >> > >> >> > delegation tokens
> > > renewing
> > > > > >> them self
> > > > > >> >> > > and
> > > > > >> >> > > > > the
> > > > > >> >> > > > > > > > > >> security
> > > > > >> >> > > > > > > > > >> > > > >> implications
> > > > > >> >> > > > > > > > > >> > > > >> >> > of the
> > > > > >> >> > > > > > > > > >> > > > >> >> > >> >> > same.
> > > > > >> >> > > > > > > > > >> > > > >> >> > >> >> >
> > > > > >> >> > > > > > > > > >> > > > >> >> > >> >> > I did not want
> clients
> > > to
> > > > > >> fetch
> > > > > >> >> > tokens
> > > > > >> >> > > > > from
> > > > > >> >> > > > > > > > > >> zookeeper,
> > > > > >> >> > > > > > > > > >> > > > >> overall I
> > > > > >> >> > > > > > > > > >> > > > >> >> > think
> > > > > >> >> > > > > > > > > >> > > > >> >> > >> >> > its
> > > > > >> >> > > > > > > > > >> > > > >> >> > >> >> > better if clients
> > don't
> > > > rely
> > > > > >> on our
> > > > > >> >> > > > > metadata
> > > > > >> >> > > > > > > > store
> > > > > >> >> > > > > > > > > >> and I
> > > > > >> >> > > > > > > > > >> > > > >> think we
> > > > > >> >> > > > > > > > > >> > > > >> >> > are
> > > > > >> >> > > > > > > > > >> > > > >> >> > >> >> > moving in that
> > direction
> > > > > with
> > > > > >> all
> > > > > >> >> > the
> > > > > >> >> > > > > KIP-4
> > > > > >> >> > > > > > > > > >> improvements.
> > > > > >> >> > > > > > > > > >> > > > I
> > > > > >> >> > > > > > > > > >> > > > >> chose
> > > > > >> >> > > > > > > > > >> > > > >> >> > >> >> > zookeeper as in this
> > > case
> > > > > the
> > > > > >> client
> > > > > >> >> > > > will
> > > > > >> >> > > > > > > still
> > > > > >> >> > > > > > > > > >> just talk
> > > > > >> >> > > > > > > > > >> > > > to
> > > > > >> >> > > > > > > > > >> > > > >> >> > broker , its
> > > > > >> >> > > > > > > > > >> > > > >> >> > >> >> > the brokers that
> will
> > > use
> > > > > >> zookeeper
> > > > > >> >> > > > which
> > > > > >> >> > > > > we
> > > > > >> >> > > > > > > > > >> already do
> > > > > >> >> > > > > > > > > >> > > > for a
> > > > > >> >> > > > > > > > > >> > > > >> lot
> > > > > >> >> > > > > > > > > >> > > > >> >> > of
> > > > > >> >> > > > > > > > > >> > > > >> >> > >> >> > other
> > > > > >> >> > > > > > > > > >> > > > >> >> > >> >> > usecases + ease of
> > > > > >> development + and
> > > > > >> >> > > the
> > > > > >> >> > > > > > > ability
> > > > > >> >> > > > > > > > > so
> > > > > >> >> > > > > > > > > >> > > tokens
> > > > > >> >> > > > > > > > > >> > > > >> will
> > > > > >> >> > > > > > > > > >> > > > >> >> > survive
> > > > > >> >> > > > > > > > > >> > > > >> >> > >> >> > even a rolling
> > > > > restart/cluster
> > > > > >> >> > > failure.
> > > > > >> >> > > > > if a
> > > > > >> >> > > > > > > > > >> majority
> > > > > >> >> > > > > > > > > >> > > > agrees
> > > > > >> >> > > > > > > > > >> > > > >> the
> > > > > >> >> > > > > > > > > >> > > > >> >> > added
> > > > > >> >> > > > > > > > > >> > > > >> >> > >> >> > complexity to have
> > > > > controller
> > > > > >> >> > > forwarding
> > > > > >> >> > > > > > keys
> > > > > >> >> > > > > > > to
> > > > > >> >> > > > > > > > > all
> > > > > >> >> > > > > > > > > >> > > > broker is
> > > > > >> >> > > > > > > > > >> > > > >> >> > justified
> > > > > >> >> > > > > > > > > >> > > > >> >> > >> >> > as
> > > > > >> >> > > > > > > > > >> > > > >> >> > >> >> > it provides tighter
> > > > security
> > > > > >> , I am
> > > > > >> >> > > fine
> > > > > >> >> > > > > > with
> > > > > >> >> > > > > > > > that
> > > > > >> >> > > > > > > > > >> option
> > > > > >> >> > > > > > > > > >> > > > too.
> > > > > >> >> > > > > > > > > >> > > > >> >> > >> >> >
> > > > > >> >> > > > > > > > > >> > > > >> >> > >> >> > Given zookeeper does
> > not
> > > > > >> support SSL
> > > > > >> >> > > we
> > > > > >> >> > > > > can
> > > > > >> >> > > > > > > not
> > > > > >> >> > > > > > > > > >> store
> > > > > >> >> > > > > > > > > >> > > > master
> > > > > >> >> > > > > > > > > >> > > > >> keys
> > > > > >> >> > > > > > > > > >> > > > >> >> > in
> > > > > >> >> > > > > > > > > >> > > > >> >> > >> >> > zookeeper as master
> > keys
> > > > > will
> > > > > >> be
> > > > > >> >> > > exposed
> > > > > >> >> > > > > on
> > > > > >> >> > > > > > > > wire.
> > > > > >> >> > > > > > > > > To
> > > > > >> >> > > > > > > > > >> > > > support
> > > > > >> >> > > > > > > > > >> > > > >> >> > rotation
> > > > > >> >> > > > > > > > > >> > > > >> >> > >> >> > without affecting
> > > current
> > > > > >> clients is
> > > > > >> >> > > > > > > something I
> > > > > >> >> > > > > > > > > >> need to
> > > > > >> >> > > > > > > > > >> > > > put
> > > > > >> >> > > > > > > > > >> > > > >> more
> > > > > >> >> > > > > > > > > >> > > > >> >> > thought
> > > > > >> >> > > > > > > > > >> > > > >> >> > >> >> > in. My current
> > proposal
> > > > > >> assumes the
> > > > > >> >> > > > > rotation
> > > > > >> >> > > > > > > > will
> > > > > >> >> > > > > > > > > >> > > > invalidate
> > > > > >> >> > > > > > > > > >> > > > >> all
> > > > > >> >> > > > > > > > > >> > > > >> >> > current
> > > > > >> >> > > > > > > > > >> > > > >> >> > >> >> > tokens.
> > > > > >> >> > > > > > > > > >> > > > >> >> > >> >> >
> > > > > >> >> > > > > > > > > >> > > > >> >> > >> >> > I request committers
> > to
> > > > also
> > > > > >> review
> > > > > >> >> > > and
> > > > > >> >> > > > > post
> > > > > >> >> > > > > > > > their
> > > > > >> >> > > > > > > > > >> > > comments
> > > > > >> >> > > > > > > > > >> > > > >> so we
> > > > > >> >> > > > > > > > > >> > > > >> >> > can
> > > > > >> >> > > > > > > > > >> > > > >> >> > >> >> > make
> > > > > >> >> > > > > > > > > >> > > > >> >> > >> >> > progress on this
> KIP.
> > > > > >> >> > > > > > > > > >> > > > >> >> > >> >> >
> > > > > >> >> > > > > > > > > >> > > > >> >> > >> >> > Thanks
> > > > > >> >> > > > > > > > > >> > > > >> >> > >> >> > Parth
> > > > > >> >> > > > > > > > > >> > > > >> >> > >> >> >
> > > > > >> >> > > > > > > > > >> > > > >> >> > >> >> > On Tue, Apr 19, 2016
> > at
> > > > 8:39
> > > > > >> AM,
> > > > > >> >> > > Ashish
> > > > > >> >> > > > > > Singh
> > > > > >> >> > > > > > > <
> > > > > >> >> > > > > > > > > >> > > > >> asi...@cloudera.com
> > > > > >> >> > > > > > > > > >> > > > >> >> > >
> > > > > >> >> > > > > > > > > >> > > > >> >> > >> >> > wrote:
> > > > > >> >> > > > > > > > > >> > > > >> >> > >> >> >
> > > > > >> >> > > > > > > > > >> > > > >> >> > >> >> > > On Mon, Apr 18,
> 2016
> > > at
> > > > > >> 11:26 AM,
> > > > > >> >> > > > > Harsha <
> > > > > >> >> > > > > > > > > >> > > > ka...@harsha.io>
> > > > > >> >> > > > > > > > > >> > > > >> >> > wrote:
> > > > > >> >> > > > > > > > > >> > > > >> >> > >> >> > >
> > > > > >> >> > > > > > > > > >> > > > >> >> > >> >> > > > Unifying the two
> > > > > >> discussion
> > > > > >> >> > > threads
> > > > > >> >> > > > on
> > > > > >> >> > > > > > > this
> > > > > >> >> > > > > > > > > KIP.
> > > > > >> >> > > > > > > > > >> > > > >> >> > >> >> > > >
> > > > > >> >> > > > > > > > > >> > > > >> >> > >> >> > > > Here is the
> > response
> > > > > from
> > > > > >> >> > Jitendra
> > > > > >> >> > > > > > > > > >> > > > >> >> > >> >> > > >
> > > > > >> >> > > > > > > > > >> > > > >> >> > >> >> > > > "The need for a
> > > large
> > > > > >> number of
> > > > > >> >> > > > > clients
> > > > > >> >> > > > > > > that
> > > > > >> >> > > > > > > > > are
> > > > > >> >> > > > > > > > > >> > > > running
> > > > > >> >> > > > > > > > > >> > > > >> all
> > > > > >> >> > > > > > > > > >> > > > >> >> > over the
> > > > > >> >> > > > > > > > > >> > > > >> >> > >> >> > > > cluster that
> > > > > authenticate
> > > > > >> with
> > > > > >> >> > > Kafka
> > > > > >> >> > > > > > > > brokers,
> > > > > >> >> > > > > > > > > >> is very
> > > > > >> >> > > > > > > > > >> > > > >> similar
> > > > > >> >> > > > > > > > > >> > > > >> >> > to the
> > > > > >> >> > > > > > > > > >> > > > >> >> > >> >> > > > Hadoop use case
> of
> > > > large
> > > > > >> number
> > > > > >> >> > of
> > > > > >> >> > > > > tasks
> > > > > >> >> > > > > > > > > running
> > > > > >> >> > > > > > > > > >> > > across
> > > > > >> >> > > > > > > > > >> > > > >> the
> > > > > >> >> > > > > > > > > >> > > > >> >> > cluster
> > > > > >> >> > > > > > > > > >> > > > >> >> > >> >> that
> > > > > >> >> > > > > > > > > >> > > > >> >> > >> >> > > > need
> > authentication
> > > to
> > > > > >> Hdfs
> > > > > >> >> > > > Namenode.
> > > > > >> >> > > > > > > > > >> Therefore, the
> > > > > >> >> > > > > > > > > >> > > > >> >> > delegation token
> > > > > >> >> > > > > > > > > >> > > > >> >> > >> >> > > > approach does
> seem
> > > > like
> > > > > a
> > > > > >> good
> > > > > >> >> > fit
> > > > > >> >> > > > for
> > > > > >> >> > > > > > > this
> > > > > >> >> > > > > > > > > use
> > > > > >> >> > > > > > > > > >> case
> > > > > >> >> > > > > > > > > >> > > > as we
> > > > > >> >> > > > > > > > > >> > > > >> >> > have seen
> > > > > >> >> > > > > > > > > >> > > > >> >> > >> >> it
> > > > > >> >> > > > > > > > > >> > > > >> >> > >> >> > > > working at large
> > > scale
> > > > > in
> > > > > >> HDFS
> > > > > >> >> > and
> > > > > >> >> > > > > YARN.
> > > > > >> >> > > > > > > > > >> > > > >> >> > >> >> > > >
> > > > > >> >> > > > > > > > > >> > > > >> >> > >> >> > > >   The proposed
> > > design
> > > > is
> > > > > >> very
> > > > > >> >> > much
> > > > > >> >> > > > > > inline
> > > > > >> >> > > > > > > > with
> > > > > >> >> > > > > > > > > >> Hadoop
> > > > > >> >> > > > > > > > > >> > > > >> >> > approach. A few
> > > > > >> >> > > > > > > > > >> > > > >> >> > >> >> > > >   comments:
> > > > > >> >> > > > > > > > > >> > > > >> >> > >> >> > > >
> > > > > >> >> > > > > > > > > >> > > > >> >> > >> >> > > > 1) Why do you
> guys
> > > > want
> > > > > >> to allow
> > > > > >> >> > > > > > infinite
> > > > > >> >> > > > > > > > > >> renewable
> > > > > >> >> > > > > > > > > >> > > > >> lifetime
> > > > > >> >> > > > > > > > > >> > > > >> >> > for a
> > > > > >> >> > > > > > > > > >> > > > >> >> > >> >> > > > token? HDFS
> > > restricts
> > > > a
> > > > > >> token
> > > > > >> >> > to a
> > > > > >> >> > > > max
> > > > > >> >> > > > > > > life
> > > > > >> >> > > > > > > > > time
> > > > > >> >> > > > > > > > > >> > > > (default
> > > > > >> >> > > > > > > > > >> > > > >> 7
> > > > > >> >> > > > > > > > > >> > > > >> >> > days).  A
> > > > > >> >> > > > > > > > > >> > > > >> >> > >> >> > > > token's
> > > vulnerability
> > > > is
> > > > > >> >> > believed
> > > > > >> >> > > to
> > > > > >> >> > > > > > > > increase
> > > > > >> >> > > > > > > > > >> with
> > > > > >> >> > > > > > > > > >> > > > time.
> > > > > >> >> > > > > > > > > >> > > > >> >> > >> >> > > >
> > > > > >> >> > > > > > > > > >> > > > >> >> > >> >> > > I agree that
> having
> > > > > infinite
> > > > > >> >> > > lifetime
> > > > > >> >> > > > > > might
> > > > > >> >> > > > > > > > not
> > > > > >> >> > > > > > > > > >> be the
> > > > > >> >> > > > > > > > > >> > > > best
> > > > > >> >> > > > > > > > > >> > > > >> idea.
> > > > > >> >> > > > > > > > > >> > > > >> >> > >> >> > >
> > > > > >> >> > > > > > > > > >> > > > >> >> > >> >> > > >
> > > > > >> >> > > > > > > > > >> > > > >> >> > >> >> > > > 2) As I
> understand
> > > the
> > > > > >> tokens
> > > > > >> >> > are
> > > > > >> >> > > > > stored
> > > > > >> >> > > > > > > in
> > > > > >> >> > > > > > > > > >> zookeeper
> > > > > >> >> > > > > > > > > >> > > > as
> > > > > >> >> > > > > > > > > >> > > > >> well,
> > > > > >> >> > > > > > > > > >> > > > >> >> > and
> > > > > >> >> > > > > > > > > >> > > > >> >> > >> >> can
> > > > > >> >> > > > > > > > > >> > > > >> >> > >> >> > > > be updated
> there.
> > > This
> > > > > is
> > > > > >> clever
> > > > > >> >> > > as
> > > > > >> >> > > > it
> > > > > >> >> > > > > > can
> > > > > >> >> > > > > > > > > allow
> > > > > >> >> > > > > > > > > >> > > > >> replacing the
> > > > > >> >> > > > > > > > > >> > > > >> >> > tokens
> > > > > >> >> > > > > > > > > >> > > > >> >> > >> >> > > > once they run
> out
> > of
> > > > max
> > > > > >> life
> > > > > >> >> > > time,
> > > > > >> >> > > > > and
> > > > > >> >> > > > > > > > > clients
> > > > > >> >> > > > > > > > > >> can
> > > > > >> >> > > > > > > > > >> > > > >> download
> > > > > >> >> > > > > > > > > >> > > > >> >> > new
> > > > > >> >> > > > > > > > > >> > > > >> >> > >> >> tokens
> > > > > >> >> > > > > > > > > >> > > > >> >> > >> >> > > > from zookeeper.
> It
> > > > > >> shouldn't be
> > > > > >> >> > a
> > > > > >> >> > > > big
> > > > > >> >> > > > > > load
> > > > > >> >> > > > > > > > on
> > > > > >> >> > > > > > > > > >> > > zookeeper
> > > > > >> >> > > > > > > > > >> > > > >> as a
> > > > > >> >> > > > > > > > > >> > > > >> >> > client
> > > > > >> >> > > > > > > > > >> > > > >> >> > >> >> will
> > > > > >> >> > > > > > > > > >> > > > >> >> > >> >> > > > need to get a
> new
> > > > token
> > > > > >> once in
> > > > > >> >> > > > > several
> > > > > >> >> > > > > > > > days.
> > > > > >> >> > > > > > > > > >> In this
> > > > > >> >> > > > > > > > > >> > > > >> approach
> > > > > >> >> > > > > > > > > >> > > > >> >> > you
> > > > > >> >> > > > > > > > > >> > > > >> >> > >> >> don't
> > > > > >> >> > > > > > > > > >> > > > >> >> > >> >> > > > need infinite
> > > lifetime
> > > > > on
> > > > > >> the
> > > > > >> >> > > token
> > > > > >> >> > > > > even
> > > > > >> >> > > > > > > for
> > > > > >> >> > > > > > > > > >> long
> > > > > >> >> > > > > > > > > >> > > > running
> > > > > >> >> > > > > > > > > >> > > > >> >> > clients.
> > > > > >> >> > > > > > > > > >> > > > >> >> > >> >> > > >
> > > > > >> >> > > > > > > > > >> > > > >> >> > >> >> > > > 3) The token
> > > password
> > > > > are
> > > > > >> >> > > generated
> > > > > >> >> > > > > > using
> > > > > >> >> > > > > > > a
> > > > > >> >> > > > > > > > > >> master
> > > > > >> >> > > > > > > > > >> > > key.
> > > > > >> >> > > > > > > > > >> > > > >> The
> > > > > >> >> > > > > > > > > >> > > > >> >> > master
> > > > > >> >> > > > > > > > > >> > > > >> >> > >> >> key
> > > > > >> >> > > > > > > > > >> > > > >> >> > >> >> > > > should also be
> > > > > >> periodically
> > > > > >> >> > > changed.
> > > > > >> >> > > > > In
> > > > > >> >> > > > > > > > > Hadoop,
> > > > > >> >> > > > > > > > > >> the
> > > > > >> >> > > > > > > > > >> > > > >> default
> > > > > >> >> > > > > > > > > >> > > > >> >> > renewal
> > > > > >> >> > > > > > > > > >> > > > >> >> > >> >> > > > period is 1
> day.?
> > > > > >> >> > > > > > > > > >> > > > >> >> > >> >> > > >
> > > > > >> >> > > > > > > > > >> > > > >> >> > >> >> > > IIUC, this will
> > > require
> > > > > >> brokers
> > > > > >> >> > > > > > maintaining
> > > > > >> >> > > > > > > a
> > > > > >> >> > > > > > > > > >> list of X
> > > > > >> >> > > > > > > > > >> > > > most
> > > > > >> >> > > > > > > > > >> > > > >> >> > recent
> > > > > >> >> > > > > > > > > >> > > > >> >> > >> >> master
> > > > > >> >> > > > > > > > > >> > > > >> >> > >> >> > > keys. This list
> will
> > > > have
> > > > > >> to be
> > > > > >> >> > > > > persisted
> > > > > >> >> > > > > > > > > >> somewhere, as
> > > > > >> >> > > > > > > > > >> > > > if a
> > > > > >> >> > > > > > > > > >> > > > >> >> > broker
> > > > > >> >> > > > > > > > > >> > > > >> >> > >> >> goes
> > > > > >> >> > > > > > > > > >> > > > >> >> > >> >> > > down it will have
> to
> > > get
> > > > > >> that list
> > > > > >> >> > > > again
> > > > > >> >> > > > > > and
> > > > > >> >> > > > > > > > > >> storing
> > > > > >> >> > > > > > > > > >> > > > master
> > > > > >> >> > > > > > > > > >> > > > >> keys
> > > > > >> >> > > > > > > > > >> > > > >> >> > on ZK
> > > > > >> >> > > > > > > > > >> > > > >> >> > >> >> is
> > > > > >> >> > > > > > > > > >> > > > >> >> > >> >> > > not the best idea.
> > > > > However,
> > > > > >> if a
> > > > > >> >> > > > broker
> > > > > >> >> > > > > > goes
> > > > > >> >> > > > > > > > > down
> > > > > >> >> > > > > > > > > >> then
> > > > > >> >> > > > > > > > > >> > > we
> > > > > >> >> > > > > > > > > >> > > > >> have
> > > > > >> >> > > > > > > > > >> > > > >> >> > much
> > > > > >> >> > > > > > > > > >> > > > >> >> > >> >> bigger
> > > > > >> >> > > > > > > > > >> > > > >> >> > >> >> > > issue to deal with
> > and
> > > > > >> client can
> > > > > >> >> > > > always
> > > > > >> >> > > > > > > > > >> > > re-authenticate
> > > > > >> >> > > > > > > > > >> > > > is
> > > > > >> >> > > > > > > > > >> > > > >> such
> > > > > >> >> > > > > > > > > >> > > > >> >> > >> >> events.
> > > > > >> >> > > > > > > > > >> > > > >> >> > >> >> > >
> > > > > >> >> > > > > > > > > >> > > > >> >> > >> >> > > Did you happen to
> > > take a
> > > > > >> look at
> > > > > >> >> > > other
> > > > > >> >> > > > > > > > > >> alternatives
> > > > > >> >> > > > > > > > > >> > > this
> > > > > >> >> > > > > > > > > >> > > > >> list has
> > > > > >> >> > > > > > > > > >> > > > >> >> > >> >> > > suggested?
> > > > > >> >> > > > > > > > > >> > > > >> >> > >> >> > >
> > > > > >> >> > > > > > > > > >> > > > >> >> > >> >> > > >
> > > > > >> >> > > > > > > > > >> > > > >> >> > >> >> > > > Thanks for a
> > > thorough
> > > > > >> proposal,
> > > > > >> >> > > > great
> > > > > >> >> > > > > > > work!"
> > > > > >> >> > > > > > > > > >> > > > >> >> > >> >> > > >
> > > > > >> >> > > > > > > > > >> > > > >> >> > >> >> > > >
> > > > > >> >> > > > > > > > > >> > > > >> >> > >> >> > > >
> > > > > >> >> > > > > > > > > >> > > > >> >> > >> >> > > > On Mon, Mar 7,
> > 2016,
> > > > at
> > > > > >> 10:28
> > > > > >> >> > PM,
> > > > > >> >> > > > Gwen
> > > > > >> >> > > > > > > > Shapira
> > > > > >> >> > > > > > > > > >> wrote:
> > > > > >> >> > > > > > > > > >> > > > >> >> > >> >> > > > > Makes sense to
> > me.
> > > > > >> Thanks!
> > > > > >> >> > > > > > > > > >> > > > >> >> > >> >> > > > >
> > > > > >> >> > > > > > > > > >> > > > >> >> > >> >> > > > > On Mon, Mar 7,
> > > 2016
> > > > at
> > > > > >> 9:25
> > > > > >> >> > PM,
> > > > > >> >> > > > > > Harsha <
> > > > > >> >> > > > > > > > > >> > > > ka...@harsha.io
> > > > > >> >> > > > > > > > > >> > > > >> >
> > > > > >> >> > > > > > > > > >> > > > >> >> > wrote:
> > > > > >> >> > > > > > > > > >> > > > >> >> > >> >> > > > > > It doesn't
> > need
> > > > any
> > > > > >> release
> > > > > >> >> > > > > vehicle
> > > > > >> >> > > > > > > but
> > > > > >> >> > > > > > > > > >> still the
> > > > > >> >> > > > > > > > > >> > > > >> work can
> > > > > >> >> > > > > > > > > >> > > > >> >> > move
> > > > > >> >> > > > > > > > > >> > > > >> >> > >> >> > > > forward.
> > > > > >> >> > > > > > > > > >> > > > >> >> > >> >> > > > > > If anyone is
> > > > > >> interested in
> > > > > >> >> > the
> > > > > >> >> > > > KIP
> > > > > >> >> > > > > > > > please
> > > > > >> >> > > > > > > > > >> do the
> > > > > >> >> > > > > > > > > >> > > > >> review and
> > > > > >> >> > > > > > > > > >> > > > >> >> > >> >> provide
> > > > > >> >> > > > > > > > > >> > > > >> >> > >> >> > > the
> > > > > >> >> > > > > > > > > >> > > > >> >> > >> >> > > > > > comments.
> > > > > >> >> > > > > > > > > >> > > > >> >> > >> >> > > > > >
> > > > > >> >> > > > > > > > > >> > > > >> >> > >> >> > > > > > -Harsha
> > > > > >> >> > > > > > > > > >> > > > >> >> > >> >> > > > > >
> > > > > >> >> > > > > > > > > >> > > > >> >> > >> >> > > > > > On Mon, Mar
> 7,
> > > > 2016,
> > > > > >> at
> > > > > >> >> > 04:59
> > > > > >> >> > > > PM,
> > > > > >> >> > > > > > > Ismael
> > > > > >> >> > > > > > > > > >> Juma
> > > > > >> >> > > > > > > > > >> > > > wrote:
> > > > > >> >> > > > > > > > > >> > > > >> >> > >> >> > > > > >> I agree
> that
> > it
> > > > > >> would be
> > > > > >> >> > good
> > > > > >> >> > > > to
> > > > > >> >> > > > > > have
> > > > > >> >> > > > > > > > > more
> > > > > >> >> > > > > > > > > >> time
> > > > > >> >> > > > > > > > > >> > > to
> > > > > >> >> > > > > > > > > >> > > > >> review
> > > > > >> >> > > > > > > > > >> > > > >> >> > and
> > > > > >> >> > > > > > > > > >> > > > >> >> > >> >> > > discuss
> > > > > >> >> > > > > > > > > >> > > > >> >> > >> >> > > > > >> KIP-48.
> > > > > >> >> > > > > > > > > >> > > > >> >> > >> >> > > > > >>
> > > > > >> >> > > > > > > > > >> > > > >> >> > >> >> > > > > >> Ismael
> > > > > >> >> > > > > > > > > >> > > > >> >> > >> >> > > > > >>
> > > > > >> >> > > > > > > > > >> > > > >> >> > >> >> > > > > >> On Tue, Mar
> > 8,
> > > > 2016
> > > > > >> at
> > > > > >> >> > 12:55
> > > > > >> >> > > > AM,
> > > > > >> >> > > > > > Gwen
> > > > > >> >> > > > > > > > > >> Shapira <
> > > > > >> >> > > > > > > > > >> > > > >> >> > >> >> g...@confluent.io>
> > > > > >> >> > > > > > > > > >> > > > >> >> > >> >> > > > wrote:
> > > > > >> >> > > > > > > > > >> > > > >> >> > >> >> > > > > >>
> > > > > >> >> > > > > > > > > >> > > > >> >> > >> >> > > > > >> > Hi Team,
> > > > > >> >> > > > > > > > > >> > > > >> >> > >> >> > > > > >> >
> > > > > >> >> > > > > > > > > >> > > > >> >> > >> >> > > > > >> > Since
> > KIP-48
> > > > > >> depends on
> > > > > >> >> > > > KIP-43,
> > > > > >> >> > > > > > > which
> > > > > >> >> > > > > > > > > is
> > > > > >> >> > > > > > > > > >> > > > already a
> > > > > >> >> > > > > > > > > >> > > > >> bit
> > > > > >> >> > > > > > > > > >> > > > >> >> > of a
> > > > > >> >> > > > > > > > > >> > > > >> >> > >> >> risk
> > > > > >> >> > > > > > > > > >> > > > >> >> > >> >> > > for
> > > > > >> >> > > > > > > > > >> > > > >> >> > >> >> > > > > >> > the next
> > > > release
> > > > > -
> > > > > >> any
> > > > > >> >> > > chance
> > > > > >> >> > > > > we
> > > > > >> >> > > > > > > can
> > > > > >> >> > > > > > > > > >> delay
> > > > > >> >> > > > > > > > > >> > > > >> delegation
> > > > > >> >> > > > > > > > > >> > > > >> >> > tokens
> > > > > >> >> > > > > > > > > >> > > > >> >> > >> >> to
> > > > > >> >> > > > > > > > > >> > > > >> >> > >> >> > > > Kafka
> > > > > >> >> > > > > > > > > >> > > > >> >> > >> >> > > > > >> > 0.10.1?
> > > > > >> >> > > > > > > > > >> > > > >> >> > >> >> > > > > >> > With the
> > > > > community
> > > > > >> >> > working
> > > > > >> >> > > > on a
> > > > > >> >> > > > > > > > release
> > > > > >> >> > > > > > > > > >> every
> > > > > >> >> > > > > > > > > >> > > 3
> > > > > >> >> > > > > > > > > >> > > > >> month,
> > > > > >> >> > > > > > > > > >> > > > >> >> > this
> > > > > >> >> > > > > > > > > >> > > > >> >> > >> >> is not
> > > > > >> >> > > > > > > > > >> > > > >> >> > >> >> > > > a huge
> > > > > >> >> > > > > > > > > >> > > > >> >> > >> >> > > > > >> > delay.
> > > > > >> >> > > > > > > > > >> > > > >> >> > >> >> > > > > >> >
> > > > > >> >> > > > > > > > > >> > > > >> >> > >> >> > > > > >> > Gwen
> > > > > >> >> > > > > > > > > >> > > > >> >> > >> >> > > > > >> >
> > > > > >> >> > > > > > > > > >> > > > >> >> > >> >> > > > > >> > On Fri,
> Feb
> > > 26,
> > > > > >> 2016 at
> > > > > >> >> > > 5:11
> > > > > >> >> > > > > PM,
> > > > > >> >> > > > > > > > Ashish
> > > > > >> >> > > > > > > > > >> Singh
> > > > > >> >> > > > > > > > > >> > > <
> > > > > >> >> > > > > > > > > >> > > > >> >> > >> >> > >
> asi...@cloudera.com
> > >
> > > > > >> >> > > > > > > > > >> > > > >> >> > >> >> > > > wrote:
> > > > > >> >> > > > > > > > > >> > > > >> >> > >> >> > > > > >> > > Parth,
> > > > > >> >> > > > > > > > > >> > > > >> >> > >> >> > > > > >> > >
> > > > > >> >> > > > > > > > > >> > > > >> >> > >> >> > > > > >> > > Thanks
> > > again
> > > > > for
> > > > > >> the
> > > > > >> >> > > > awesome
> > > > > >> >> > > > > > > write
> > > > > >> >> > > > > > > > > up.
> > > > > >> >> > > > > > > > > >> > > > Following
> > > > > >> >> > > > > > > > > >> > > > >> our
> > > > > >> >> > > > > > > > > >> > > > >> >> > >> >> discussion
> > > > > >> >> > > > > > > > > >> > > > >> >> > >> >> > > > from the
> > > > > >> >> > > > > > > > > >> > > > >> >> > >> >> > > > > >> > > JIRA, I
> > > think
> > > > > it
> > > > > >> will
> > > > > >> >> > be
> > > > > >> >> > > > > easier
> > > > > >> >> > > > > > > to
> > > > > >> >> > > > > > > > > >> compare
> > > > > >> >> > > > > > > > > >> > > > >> various
> > > > > >> >> > > > > > > > > >> > > > >> >> > >> >> alternatives
> > > > > >> >> > > > > > > > > >> > > > >> >> > >> >> > > > if they
> > > > > >> >> > > > > > > > > >> > > > >> >> > >> >> > > > > >> > are
> > > > > >> >> > > > > > > > > >> > > > >> >> > >> >> > > > > >> > > listed
> > > > > together.
> > > > > >> I am
> > > > > >> >> > > > stating
> > > > > >> >> > > > > > > > below a
> > > > > >> >> > > > > > > > > >> few
> > > > > >> >> > > > > > > > > >> > > > >> >> > alternatives along
> > > > > >> >> > > > > > > > > >> > > > >> >> > >> >> > > with
> > > > > >> >> > > > > > > > > >> > > > >> >> > >> >> > > > a the
> > > > > >> >> > > > > > > > > >> > > > >> >> > >> >> > > > > >> > > current
> > > > > proposal.
> > > > > >> >> > > > > > > > > >> > > > >> >> > >> >> > > > > >> > >
> (Current
> > > > > >> proposal)
> > > > > >> >> > Store
> > > > > >> >> > > > > > > Delegation
> > > > > >> >> > > > > > > > > >> Token,
> > > > > >> >> > > > > > > > > >> > > DT,
> > > > > >> >> > > > > > > > > >> > > > >> on ZK.
> > > > > >> >> > > > > > > > > >> > > > >> >> > >> >> > > > > >> > >
> > > > > >> >> > > > > > > > > >> > > > >> >> > >> >> > > > > >> > >    1.
> > > Client
> > > > > >> >> > > authenticates
> > > > > >> >> > > > > > with a
> > > > > >> >> > > > > > > > > >> broker.
> > > > > >> >> > > > > > > > > >> > > > >> >> > >> >> > > > > >> > >    2.
> > Once
> > > a
> > > > > >> client is
> > > > > >> >> > > > > > > > authenticated,
> > > > > >> >> > > > > > > > > >> it
> > > > > >> >> > > > > > > > > >> > > will
> > > > > >> >> > > > > > > > > >> > > > >> make a
> > > > > >> >> > > > > > > > > >> > > > >> >> > broker
> > > > > >> >> > > > > > > > > >> > > > >> >> > >> >> side
> > > > > >> >> > > > > > > > > >> > > > >> >> > >> >> > > > call to
> > > > > >> >> > > > > > > > > >> > > > >> >> > >> >> > > > > >> > >
> issue
> > a
> > > > > >> delegation
> > > > > >> >> > > > token.
> > > > > >> >> > > > > > > > > >> > > > >> >> > >> >> > > > > >> > >    3.
> The
> > > > > broker
> > > > > >> >> > > generates
> > > > > >> >> > > > a
> > > > > >> >> > > > > > > shared
> > > > > >> >> > > > > > > > > >> secret
> > > > > >> >> > > > > > > > > >> > > > based
> > > > > >> >> > > > > > > > > >> > > > >> on
> > > > > >> >> > > > > > > > > >> > > > >> >> > >> >> > > HMAC-SHA256(a
> > > > > >> >> > > > > > > > > >> > > > >> >> > >> >> > > > > >> > >
> > > > > >> Password/Secret
> > > > > >> >> > shared
> > > > > >> >> > > > > > between
> > > > > >> >> > > > > > > > all
> > > > > >> >> > > > > > > > > >> > > brokers,
> > > > > >> >> > > > > > > > > >> > > > >> >> > randomly
> > > > > >> >> > > > > > > > > >> > > > >> >> > >> >> > > generated
> > > > > >> >> > > > > > > > > >> > > > >> >> > >> >> > > > > >> > tokenId).
> > > > > >> >> > > > > > > > > >> > > > >> >> > >> >> > > > > >> > >    4.
> > > Broker
> > > > > >> stores
> > > > > >> >> > this
> > > > > >> >> > > > > token
> > > > > >> >> > > > > > in
> > > > > >> >> > > > > > > > its
> > > > > >> >> > > > > > > > > >> in
> > > > > >> >> > > > > > > > > >> > > > memory
> > > > > >> >> > > > > > > > > >> > > > >> cache.
> > > > > >> >> > > > > > > > > >> > > > >> >> > >> >> Broker
> > > > > >> >> > > > > > > > > >> > > > >> >> > >> >> > > > also stores
> > > > > >> >> > > > > > > > > >> > > > >> >> > >> >> > > > > >> > >    the
> > > > > >> DelegationToken
> > > > > >> >> > > > > without
> > > > > >> >> > > > > > > the
> > > > > >> >> > > > > > > > > >> hmac in
> > > > > >> >> > > > > > > > > >> > > the
> > > > > >> >> > > > > > > > > >> > > > >> >> > zookeeper.
> > > > > >> >> > > > > > > > > >> > > > >> >> > >> >> > > > > >> > >    5.
> All
> > > > > >> brokers will
> > > > > >> >> > > > have a
> > > > > >> >> > > > > > > cache
> > > > > >> >> > > > > > > > > >> backed
> > > > > >> >> > > > > > > > > >> > > by
> > > > > >> >> > > > > > > > > >> > > > >> >> > zookeeper so
> > > > > >> >> > > > > > > > > >> > > > >> >> > >> >> they
> > > > > >> >> > > > > > > > > >> > > > >> >> > >> >> > > > will all
> > > > > >> >> > > > > > > > > >> > > > >> >> > >> >> > > > > >> > >    get
> > > > notified
> > > > > >> >> > whenever
> > > > > >> >> > > a
> > > > > >> >> > > > > new
> > > > > >> >> > > > > > > > token
> > > > > >> >> > > > > > > > > is
> > > > > >> >> > > > > > > > > >> > > > >> generated and
> > > > > >> >> > > > > > > > > >> > > > >> >> > they
> > > > > >> >> > > > > > > > > >> > > > >> >> > >> >> will
> > > > > >> >> > > > > > > > > >> > > > >> >> > >> >> > > > update
> > > > > >> >> > > > > > > > > >> > > > >> >> > >> >> > > > > >> > their
> > > > > >> >> > > > > > > > > >> > > > >> >> > >> >> > > > > >> > >
> local
> > > > cache
> > > > > >> whenever
> > > > > >> >> > > > token
> > > > > >> >> > > > > > > state
> > > > > >> >> > > > > > > > > >> changes.
> > > > > >> >> > > > > > > > > >> > > > >> >> > >> >> > > > > >> > >    6.
> > > Broker
> > > > > >> returns
> > > > > >> >> > the
> > > > > >> >> > > > > token
> > > > > >> >> > > > > > to
> > > > > >> >> > > > > > > > > >> Client.
> > > > > >> >> > > > > > > > > >> > > > >> >> > >> >> > > > > >> > >
> > > > > >> >> > > > > > > > > >> > > > >> >> > >> >> > > > > >> > >
> Probable
> > > > issues
> > > > > >> and
> > > > > >> >> > fixes
> > > > > >> >> > > > > > > > > >> > > > >> >> > >> >> > > > > >> > >
> > > > > >> >> > > > > > > > > >> > > > >> >> > >> >> > > > > >> > >    1.
> > > > Probable
> > > > > >> race
> > > > > >> >> > > > > condition,
> > > > > >> >> > > > > > > > client
> > > > > >> >> > > > > > > > > >> tries
> > > > > >> >> > > > > > > > > >> > > to
> > > > > >> >> > > > > > > > > >> > > > >> >> > authenticate
> > > > > >> >> > > > > > > > > >> > > > >> >> > >> >> with
> > > > > >> >> > > > > > > > > >> > > > >> >> > >> >> > > > a broker
> > > > > >> >> > > > > > > > > >> > > > >> >> > >> >> > > > > >> > >    that
> > is
> > > > yet
> > > > > >> to be
> > > > > >> >> > > > updated
> > > > > >> >> > > > > > with
> > > > > >> >> > > > > > > > the
> > > > > >> >> > > > > > > > > >> newly
> > > > > >> >> > > > > > > > > >> > > > >> generated
> > > > > >> >> > > > > > > > > >> > > > >> >> > DT.
> > > > > >> >> > > > > > > > > >> > > > >> >> > >> >> This
> > > > > >> >> > > > > > > > > >> > > > >> >> > >> >> > > can
> > > > > >> >> > > > > > > > > >> > > > >> >> > >> >> > > > > >> > probably
> be
> > > > > >> >> > > > > > > > > >> > > > >> >> > >> >> > > > > >> > >
> dealt
> > > with
> > > > > >> making
> > > > > >> >> > > > > dtRequest
> > > > > >> >> > > > > > > > block
> > > > > >> >> > > > > > > > > >> until
> > > > > >> >> > > > > > > > > >> > > all
> > > > > >> >> > > > > > > > > >> > > > >> >> > brokers have
> > > > > >> >> > > > > > > > > >> > > > >> >> > >> >> > > > updated
> > > > > >> >> > > > > > > > > >> > > > >> >> > >> >> > > > > >> > their DT
> > > > > >> >> > > > > > > > > >> > > > >> >> > >> >> > > > > >> > >
> cache.
> > > Zk
> > > > > >> barrier or
> > > > > >> >> > > > > similar
> > > > > >> >> > > > > > > > > >> mechanism
> > > > > >> >> > > > > > > > > >> > > can
> > > > > >> >> > > > > > > > > >> > > > be
> > > > > >> >> > > > > > > > > >> > > > >> used.
> > > > > >> >> > > > > > > > > >> > > > >> >> > >> >> However,
> > > > > >> >> > > > > > > > > >> > > > >> >> > >> >> > > > all such
> > > > > >> >> > > > > > > > > >> > > > >> >> > >> >> > > > > >> > >
> > > mechanisms
> > > > > >> will
> > > > > >> >> > > increase
> > > > > >> >> > > > > > > > > complexity.
> > > > > >> >> > > > > > > > > >> > > > >> >> > >> >> > > > > >> > >    2.
> > > Using a
> > > > > >> static
> > > > > >> >> > > secret
> > > > > >> >> > > > > key
> > > > > >> >> > > > > > > > from
> > > > > >> >> > > > > > > > > >> config
> > > > > >> >> > > > > > > > > >> > > > >> file. Will
> > > > > >> >> > > > > > > > > >> > > > >> >> > >> >> require
> > > > > >> >> > > > > > > > > >> > > > >> >> > >> >> > > yet
> > > > > >> >> > > > > > > > > >> > > > >> >> > >> >> > > > > >> > another
> > > > > >> >> > > > > > > > > >> > > > >> >> > >> >> > > > > >> > >
> config
> > > and
> > > > > >> uses a
> > > > > >> >> > > static
> > > > > >> >> > > > > > > secret
> > > > > >> >> > > > > > > > > >> key. It
> > > > > >> >> > > > > > > > > >> > > is
> > > > > >> >> > > > > > > > > >> > > > >> advised
> > > > > >> >> > > > > > > > > >> > > > >> >> > to
> > > > > >> >> > > > > > > > > >> > > > >> >> > >> >> rotate
> > > > > >> >> > > > > > > > > >> > > > >> >> > >> >> > > > secret
> > > > > >> >> > > > > > > > > >> > > > >> >> > >> >> > > > > >> > keys
> > > > > >> >> > > > > > > > > >> > > > >> >> > >> >> > > > > >> > >
> > > > > periodically.
> > > > > >> This
> > > > > >> >> > can
> > > > > >> >> > > > be
> > > > > >> >> > > > > > > > avoided
> > > > > >> >> > > > > > > > > >> with
> > > > > >> >> > > > > > > > > >> > > > >> controller
> > > > > >> >> > > > > > > > > >> > > > >> >> > >> >> generating
> > > > > >> >> > > > > > > > > >> > > > >> >> > >> >> > > > > >> > secretKey
> > and
> > > > > >> >> > > > > > > > > >> > > > >> >> > >> >> > > > > >> > >
> > passing
> > > to
> > > > > >> brokers
> > > > > >> >> > > > > > > periodically.
> > > > > >> >> > > > > > > > > >> However,
> > > > > >> >> > > > > > > > > >> > > > >> this will
> > > > > >> >> > > > > > > > > >> > > > >> >> > >> >> require
> > > > > >> >> > > > > > > > > >> > > > >> >> > >> >> > > > brokers to
> > > > > >> >> > > > > > > > > >> > > > >> >> > >> >> > > > > >> > >
> > maintain
> > > > > >> certain
> > > > > >> >> > > counts
> > > > > >> >> > > > of
> > > > > >> >> > > > > > > > > >> secretKeys.
> > > > > >> >> > > > > > > > > >> > > > >> >> > >> >> > > > > >> > >
> > > > > >> >> > > > > > > > > >> > > > >> >> > >> >> > > > > >> > >
> > > (Alternative
> > > > 1)
> > > > > >> Have
> > > > > >> >> > > > > controller
> > > > > >> >> > > > > > > > > >> generate
> > > > > >> >> > > > > > > > > >> > > > >> delegation
> > > > > >> >> > > > > > > > > >> > > > >> >> > token.
> > > > > >> >> > > > > > > > > >> > > > >> >> > >> >> > > > > >> > >
> > > > > >> >> > > > > > > > > >> > > > >> >> > >> >> > > > > >> > >    1.
> > > Client
> > > > > >> >> > > authenticates
> > > > > >> >> > > > > > with a
> > > > > >> >> > > > > > > > > >> broker.
> > > > > >> >> > > > > > > > > >> > > > >> >> > >> >> > > > > >> > >    2.
> > Once
> > > a
> > > > > >> client is
> > > > > >> >> > > > > > > > authenticated,
> > > > > >> >> > > > > > > > > >> it
> > > > > >> >> > > > > > > > > >> > > will
> > > > > >> >> > > > > > > > > >> > > > >> make a
> > > > > >> >> > > > > > > > > >> > > > >> >> > broker
> > > > > >> >> > > > > > > > > >> > > > >> >> > >> >> side
> > > > > >> >> > > > > > > > > >> > > > >> >> > >> >> > > > call to
> > > > > >> >> > > > > > > > > >> > > > >> >> > >> >> > > > > >> > >
> issue
> > a
> > > > > >> delegation
> > > > > >> >> > > > token.
> > > > > >> >> > > > > > > > > >> > > > >> >> > >> >> > > > > >> > >    3.
> > > Broker
> > > > > >> forwards
> > > > > >> >> > the
> > > > > >> >> > > > > > request
> > > > > >> >> > > > > > > > to
> > > > > >> >> > > > > > > > > >> > > > controller.
> > > > > >> >> > > > > > > > > >> > > > >> >> > >> >> > > > > >> > >    4.
> > > > > Controller
> > > > > >> >> > > generates
> > > > > >> >> > > > a
> > > > > >> >> > > > > DT
> > > > > >> >> > > > > > > and
> > > > > >> >> > > > > > > > > >> > > broadcasts
> > > > > >> >> > > > > > > > > >> > > > >> to all
> > > > > >> >> > > > > > > > > >> > > > >> >> > >> >> brokers.
> > > > > >> >> > > > > > > > > >> > > > >> >> > >> >> > > > > >> > >    5.
> > > Broker
> > > > > >> stores
> > > > > >> >> > this
> > > > > >> >> > > > > token
> > > > > >> >> > > > > > in
> > > > > >> >> > > > > > > > its
> > > > > >> >> > > > > > > > > >> memory
> > > > > >> >> > > > > > > > > >> > > > >> cache.
> > > > > >> >> > > > > > > > > >> > > > >> >> > >> >> > > > > >> > >    6.
> > > > > Controller
> > > > > >> >> > responds
> > > > > >> >> > > > to
> > > > > >> >> > > > > > > > broker’s
> > > > > >> >> > > > > > > > > >> DT
> > > > > >> >> > > > > > > > > >> > > req.
> > > > > >> >> > > > > > > > > >> > > > >> >> > >> >> > > > > >> > >    7.
> > > Broker
> > > > > >> returns
> > > > > >> >> > the
> > > > > >> >> > > > > token
> > > > > >> >> > > > > > to
> > > > > >> >> > > > > > > > > >> Client.
> > > > > >> >> > > > > > > > > >> > > > >> >> > >> >> > > > > >> > >
> > > > > >> >> > > > > > > > > >> > > > >> >> > >> >> > > > > >> > >
> Probable
> > > > issues
> > > > > >> and
> > > > > >> >> > fixes
> > > > > >> >> > > > > > > > > >> > > > >> >> > >> >> > > > > >> > >
> > > > > >> >> > > > > > > > > >> > > > >> >> > >> >> > > > > >> > >    1.
> We
> > > will
> > > > > >> have to
> > > > > >> >> > add
> > > > > >> >> > > > new
> > > > > >> >> > > > > > > APIs
> > > > > >> >> > > > > > > > to
> > > > > >> >> > > > > > > > > >> > > support
> > > > > >> >> > > > > > > > > >> > > > >> >> > controller
> > > > > >> >> > > > > > > > > >> > > > >> >> > >> >> pushing
> > > > > >> >> > > > > > > > > >> > > > >> >> > >> >> > > > tokens
> > > > > >> >> > > > > > > > > >> > > > >> >> > >> >> > > > > >> > to
> > > > > >> >> > > > > > > > > >> > > > >> >> > >> >> > > > > >> > >
> > brokers
> > > on
> > > > > >> top of
> > > > > >> >> > the
> > > > > >> >> > > > > > minimal
> > > > > >> >> > > > > > > > APIs
> > > > > >> >> > > > > > > > > >> that
> > > > > >> >> > > > > > > > > >> > > are
> > > > > >> >> > > > > > > > > >> > > > >> >> > currently
> > > > > >> >> > > > > > > > > >> > > > >> >> > >> >> > > proposed.
> > > > > >> >> > > > > > > > > >> > > > >> >> > >> >> > > > > >> > >    2.
> We
> > > will
> > > > > >> also have
> > > > > >> >> > > to
> > > > > >> >> > > > > add
> > > > > >> >> > > > > > > APIs
> > > > > >> >> > > > > > > > > to
> > > > > >> >> > > > > > > > > >> > > support
> > > > > >> >> > > > > > > > > >> > > > >> the
> > > > > >> >> > > > > > > > > >> > > > >> >> > >> >> bootstrapping
> > > > > >> >> > > > > > > > > >> > > > >> >> > >> >> > > > case,
> > > > > >> >> > > > > > > > > >> > > > >> >> > >> >> > > > > >> > i.e,
> > > > > >> >> > > > > > > > > >> > > > >> >> > >> >> > > > > >> > >
> when a
> > > new
> > > > > >> broker
> > > > > >> >> > > comes
> > > > > >> >> > > > up
> > > > > >> >> > > > > > it
> > > > > >> >> > > > > > > > will
> > > > > >> >> > > > > > > > > >> have
> > > > > >> >> > > > > > > > > >> > > to
> > > > > >> >> > > > > > > > > >> > > > >> get all
> > > > > >> >> > > > > > > > > >> > > > >> >> > >> >> delegation
> > > > > >> >> > > > > > > > > >> > > > >> >> > >> >> > > > tokens
> > > > > >> >> > > > > > > > > >> > > > >> >> > >> >> > > > > >> > from
> > > > > >> >> > > > > > > > > >> > > > >> >> > >> >> > > > > >> > >    the
> > > > > >> controller.
> > > > > >> >> > > > > > > > > >> > > > >> >> > >> >> > > > > >> > >    3.
> In
> > > > > >> catastrophic
> > > > > >> >> > > > > failures
> > > > > >> >> > > > > > > > where
> > > > > >> >> > > > > > > > > >> all
> > > > > >> >> > > > > > > > > >> > > > brokers
> > > > > >> >> > > > > > > > > >> > > > >> go
> > > > > >> >> > > > > > > > > >> > > > >> >> > down,
> > > > > >> >> > > > > > > > > >> > > > >> >> > >> >> the
> > > > > >> >> > > > > > > > > >> > > > >> >> > >> >> > > > tokens will
> > > > > >> >> > > > > > > > > >> > > > >> >> > >> >> > > > > >> > >    be
> > lost
> > > > even
> > > > > >> if
> > > > > >> >> > > servers
> > > > > >> >> > > > > are
> > > > > >> >> > > > > > > > > >> restarted as
> > > > > >> >> > > > > > > > > >> > > > >> tokens
> > > > > >> >> > > > > > > > > >> > > > >> >> > are not
> > > > > >> >> > > > > > > > > >> > > > >> >> > >> >> > > > persisted
> > > > > >> >> > > > > > > > > >> > > > >> >> > >> >> > > > > >> > anywhere.
> > > > > >> >> > > > > > > > > >> > > > >> >> > >> >> > > > > >> > >    If
> > this
> > > > > >> happens,
> > > > > >> >> > then
> > > > > >> >> > > > > there
> > > > > >> >> > > > > > > are
> > > > > >> >> > > > > > > > > more
> > > > > >> >> > > > > > > > > >> > > > important
> > > > > >> >> > > > > > > > > >> > > > >> >> > things to
> > > > > >> >> > > > > > > > > >> > > > >> >> > >> >> > > worry
> > > > > >> >> > > > > > > > > >> > > > >> >> > >> >> > > > about
> > > > > >> >> > > > > > > > > >> > > > >> >> > >> >> > > > > >> > and
> > > > > >> >> > > > > > > > > >> > > > >> >> > >> >> > > > > >> > >
> maybe
> > it
> > > > is
> > > > > >> better
> > > > > >> >> > to
> > > > > >> >> > > > > > > > > >> re-authenticate.
> > > > > >> >> > > > > > > > > >> > > > >> >> > >> >> > > > > >> > >
> > > > > >> >> > > > > > > > > >> > > > >> >> > >> >> > > > > >> > >
> > > (Alternative
> > > > 2)
> > > > > >> Do not
> > > > > >> >> > > > > > distribute
> > > > > >> >> > > > > > > > DT
> > > > > >> >> > > > > > > > > to
> > > > > >> >> > > > > > > > > >> > > other
> > > > > >> >> > > > > > > > > >> > > > >> brokers
> > > > > >> >> > > > > > > > > >> > > > >> >> > at
> > > > > >> >> > > > > > > > > >> > > > >> >> > >> >> all.
> > > > > >> >> > > > > > > > > >> > > > >> >> > >> >> > > > > >> > >
> > > > > >> >> > > > > > > > > >> > > > >> >> > >> >> > > > > >> > >    1.
> > > Client
> > > > > >> >> > > authenticates
> > > > > >> >> > > > > > with a
> > > > > >> >> > > > > > > > > >> broker.
> > > > > >> >> > > > > > > > > >> > > > >> >> > >> >> > > > > >> > >    2.
> > Once
> > > a
> > > > > >> client is
> > > > > >> >> > > > > > > > authenticated,
> > > > > >> >> > > > > > > > > >> it
> > > > > >> >> > > > > > > > > >> > > will
> > > > > >> >> > > > > > > > > >> > > > >> make a
> > > > > >> >> > > > > > > > > >> > > > >> >> > broker
> > > > > >> >> > > > > > > > > >> > > > >> >> > >> >> side
> > > > > >> >> > > > > > > > > >> > > > >> >> > >> >> > > > call to
> > > > > >> >> > > > > > > > > >> > > > >> >> > >> >> > > > > >> > >
> issue
> > a
> > > > > >> delegation
> > > > > >> >> > > > token.
> > > > > >> >> > > > > > > > > >> > > > >> >> > >> >> > > > > >> > >    3.
> The
> > > > > broker
> > > > > >> >> > > generates
> > > > > >> >> > > > DT
> > > > > >> >> > > > > > of
> > > > > >> >> > > > > > > > > form,
> > > > > >> >> > > > > > > > > >> > > [hmac +
> > > > > >> >> > > > > > > > > >> > > > >> (owner,
> > > > > >> >> > > > > > > > > >> > > > >> >> > >> >> renewer,
> > > > > >> >> > > > > > > > > >> > > > >> >> > >> >> > > > > >> > >
> > > > maxLifeTime,
> > > > > >> id,
> > > > > >> >> > hmac,
> > > > > >> >> > > > > > > > > >> expirationTime)]
> > > > > >> >> > > > > > > > > >> > > and
> > > > > >> >> > > > > > > > > >> > > > >> passes
> > > > > >> >> > > > > > > > > >> > > > >> >> > back
> > > > > >> >> > > > > > > > > >> > > > >> >> > >> >> this
> > > > > >> >> > > > > > > > > >> > > > >> >> > >> >> > > > DT to
> > > > > >> >> > > > > > > > > >> > > > >> >> > >> >> > > > > >> > client.
> > > > > >> >> > > > > > > > > >> > > > >> >> > >> >> > > > > >> > >    hmac
> > is
> > > > > >> generated
> > > > > >> >> > via
> > > > > >> >> > > > > > > > > >> {HMAC-SHA256(owner,
> > > > > >> >> > > > > > > > > >> > > > >> renewer,
> > > > > >> >> > > > > > > > > >> > > > >> >> > >> >> > > > maxLifeTime, id,
> > > > > >> >> > > > > > > > > >> > > > >> >> > >> >> > > > > >> > hmac,
> > > > > >> >> > > > > > > > > >> > > > >> >> > >> >> > > > > >> > >
> > > > > >> expirationTime)
> > > > > >> >> > using
> > > > > >> >> > > > > > > > SecretKey}.
> > > > > >> >> > > > > > > > > >> Note
> > > > > >> >> > > > > > > > > >> > > that
> > > > > >> >> > > > > > > > > >> > > > >> all
> > > > > >> >> > > > > > > > > >> > > > >> >> > brokers
> > > > > >> >> > > > > > > > > >> > > > >> >> > >> >> have
> > > > > >> >> > > > > > > > > >> > > > >> >> > >> >> > > > this
> > > > > >> >> > > > > > > > > >> > > > >> >> > >> >> > > > > >> >
> SecretKey.
> > > > > >> >> > > > > > > > > >> > > > >> >> > >> >> > > > > >> > >    4.
> > > Client
> > > > > >> then goes
> > > > > >> >> > to
> > > > > >> >> > > > any
> > > > > >> >> > > > > > > > broker
> > > > > >> >> > > > > > > > > >> and to
> > > > > >> >> > > > > > > > > >> > > > >> >> > authenticate
> > > > > >> >> > > > > > > > > >> > > > >> >> > >> >> sends
> > > > > >> >> > > > > > > > > >> > > > >> >> > >> >> > > > the DT.
> > > > > >> >> > > > > > > > > >> > > > >> >> > >> >> > > > > >> > >
> Broker
> > > > > >> recalculates
> > > > > >> >> > > hmac
> > > > > >> >> > > > > > using
> > > > > >> >> > > > > > > > > >> (owner,
> > > > > >> >> > > > > > > > > >> > > > >> renewer,
> > > > > >> >> > > > > > > > > >> > > > >> >> > >> >> maxLifeTime,
> > > > > >> >> > > > > > > > > >> > > > >> >> > >> >> > > > id, hmac,
> > > > > >> >> > > > > > > > > >> > > > >> >> > >> >> > > > > >> > >
> > > > > >> expirationTime) info
> > > > > >> >> > > > from
> > > > > >> >> > > > > DT
> > > > > >> >> > > > > > > and
> > > > > >> >> > > > > > > > > its
> > > > > >> >> > > > > > > > > >> > > > >> SecretKey. If
> > > > > >> >> > > > > > > > > >> > > > >> >> > it
> > > > > >> >> > > > > > > > > >> > > > >> >> > >> >> matches
> > > > > >> >> > > > > > > > > >> > > > >> >> > >> >> > > > with
> > > > > >> >> > > > > > > > > >> > > > >> >> > >> >> > > > > >> > hmac of
> > > > > >> >> > > > > > > > > >> > > > >> >> > >> >> > > > > >> > >    DT,
> > > client
> > > > > is
> > > > > >> >> > > > > authenticated.
> > > > > >> >> > > > > > > > Yes,
> > > > > >> >> > > > > > > > > >> it will
> > > > > >> >> > > > > > > > > >> > > > do
> > > > > >> >> > > > > > > > > >> > > > >> other
> > > > > >> >> > > > > > > > > >> > > > >> >> > >> >> obvious
> > > > > >> >> > > > > > > > > >> > > > >> >> > >> >> > > > checks of
> > > > > >> >> > > > > > > > > >> > > > >> >> > >> >> > > > > >> > >
> > > timestamp
> > > > > >> expiry and
> > > > > >> >> > > > such.
> > > > > >> >> > > > > > > > > >> > > > >> >> > >> >> > > > > >> > >
> > > > > >> >> > > > > > > > > >> > > > >> >> > >> >> > > > > >> > > Note
> that
> > > > > secret
> > > > > >> key
> > > > > >> >> > will
> > > > > >> >> > > > be
> > > > > >> >> > > > > > > > > generated
> > > > > >> >> > > > > > > > > >> by
> > > > > >> >> > > > > > > > > >> > > > >> controller
> > > > > >> >> > > > > > > > > >> > > > >> >> > and
> > > > > >> >> > > > > > > > > >> > > > >> >> > >> >> passed
> > > > > >> >> > > > > > > > > >> > > > >> >> > >> >> > > to
> > > > > >> >> > > > > > > > > >> > > > >> >> > >> >> > > > > >> > brokers
> > > > > >> >> > > > > > > > > >> > > > >> >> > >> >> > > > > >> > >
> > > periodically.
> > > > > >> >> > > > > > > > > >> > > > >> >> > >> >> > > > > >> > >
> Probable
> > > > issues
> > > > > >> and
> > > > > >> >> > fixes
> > > > > >> >> > > > > > > > > >> > > > >> >> > >> >> > > > > >> > >
> > > > > >> >> > > > > > > > > >> > > > >> >> > >> >> > > > > >> > >    1.
> How
> > > to
> > > > > >> delete a
> > > > > >> >> > DT?
> > > > > >> >> > > > > Yes,
> > > > > >> >> > > > > > > that
> > > > > >> >> > > > > > > > > is
> > > > > >> >> > > > > > > > > >> a
> > > > > >> >> > > > > > > > > >> > > > downside
> > > > > >> >> > > > > > > > > >> > > > >> >> > here.
> > > > > >> >> > > > > > > > > >> > > > >> >> > >> >> However,
> > > > > >> >> > > > > > > > > >> > > > >> >> > >> >> > > > this can
> > > > > >> >> > > > > > > > > >> > > > >> >> > >> >> > > > > >> > >    be
> > > handled
> > > > > >> with
> > > > > >> >> > > brokers
> > > > > >> >> > > > > > > > > maintaining
> > > > > >> >> > > > > > > > > >> a
> > > > > >> >> > > > > > > > > >> > > > >> blacklist of
> > > > > >> >> > > > > > > > > >> > > > >> >> > DTs,
> > > > > >> >> > > > > > > > > >> > > > >> >> > >> >> DTs
> > > > > >> >> > > > > > > > > >> > > > >> >> > >> >> > > > from this
> > > > > >> >> > > > > > > > > >> > > > >> >> > >> >> > > > > >> > list
> > > > > >> >> > > > > > > > > >> > > > >> >> > >> >> > > > > >> > >    can
> be
> > > > > >> removed after
> > > > > >> >> > > > > expiry.
> > > > > >> >> > > > > > > > > >> > > > >> >> > >> >> > > > > >> > >    2.
> In
> > > > > >> catastrophic
> > > > > >> >> > > > > failures
> > > > > >> >> > > > > > > > where
> > > > > >> >> > > > > > > > > >> all
> > > > > >> >> > > > > > > > > >> > > > brokers
> > > > > >> >> > > > > > > > > >> > > > >> go
> > > > > >> >> > > > > > > > > >> > > > >> >> > down,
> > > > > >> >> > > > > > > > > >> > > > >> >> > >> >> the
> > > > > >> >> > > > > > > > > >> > > > >> >> > >> >> > > > tokens will
> > > > > >> >> > > > > > > > > >> > > > >> >> > >> >> > > > > >> > >    be
> > lost
> > > > even
> > > > > >> if
> > > > > >> >> > > servers
> > > > > >> >> > > > > are
> > > > > >> >> > > > > > > > > >> restarted as
> > > > > >> >> > > > > > > > > >> > > > >> tokens
> > > > > >> >> > > > > > > > > >> > > > >> >> > are not
> > > > > >> >> > > > > > > > > >> > > > >> >> > >> >> > > > persisted
> > > > > >> >> > > > > > > > > >> > > > >> >> > >> >> > > > > >> > anywhere.
> > > > > >> >> > > > > > > > > >> > > > >> >> > >> >> > > > > >> > >    If
> > this
> > > > > >> happens,
> > > > > >> >> > then
> > > > > >> >> > > > > there
> > > > > >> >> > > > > > > are
> > > > > >> >> > > > > > > > > more
> > > > > >> >> > > > > > > > > >> > > > important
> > > > > >> >> > > > > > > > > >> > > > >> >> > things to
> > > > > >> >> > > > > > > > > >> > > > >> >> > >> >> > > worry
> > > > > >> >> > > > > > > > > >> > > > >> >> > >> >> > > > about
> > > > > >> >> > > > > > > > > >> > > > >> >> > >> >> > > > > >> > and
> > > > > >> >> > > > > > > > > >> > > > >> >> > >> >> > > > > >> > >
> maybe
> > it
> > > > is
> > > > > >> better
> > > > > >> >> > to
> > > > > >> >> > > > > > > > > >> re-authenticate.
> > > > > >> >> > > > > > > > > >> > > > >> >> > >> >> > > > > >> > >
> > > > > >> >> > > > > > > > > >> > > > >> >> > >> >> > > > > >> > >
> > > > > >> >> > > > > > > > > >> > > > >> >> > >> >> > > > > >> > >
> > > > > >> >> > > > > > > > > >> > > > >> >> > >> >> > > > > >> > > On Fri,
> > Feb
> > > > 26,
> > > > > >> 2016 at
> > > > > >> >> > > > 1:58
> > > > > >> >> > > > > > PM,
> > > > > >> >> > > > > > > > > Parth
> > > > > >> >> > > > > > > > > >> > > > >> Brahmbhatt <
> > > > > >> >> > > > > > > > > >> > > > >> >> > >> >> > > > > >> > >
> > > > > >> >> > > > pbrahmbh...@hortonworks.com>
> > > > > >> >> > > > > > > > wrote:
> > > > > >> >> > > > > > > > > >> > > > >> >> > >> >> > > > > >> > >
> > > > > >> >> > > > > > > > > >> > > > >> >> > >> >> > > > > >> > >> Hi,
> > > > > >> >> > > > > > > > > >> > > > >> >> > >> >> > > > > >> > >>
> > > > > >> >> > > > > > > > > >> > > > >> >> > >> >> > > > > >> > >> I have
> > > filed
> > > > > >> KIP-48 so
> > > > > >> >> > > we
> > > > > >> >> > > > > can
> > > > > >> >> > > > > > > > offer
> > > > > >> >> > > > > > > > > >> hadoop
> > > > > >> >> > > > > > > > > >> > > > like
> > > > > >> >> > > > > > > > > >> > > > >> >> > delegation
> > > > > >> >> > > > > > > > > >> > > > >> >> > >> >> > > > tokens in
> > > > > >> >> > > > > > > > > >> > > > >> >> > >> >> > > > > >> > >> kafka.
> > You
> > > > can
> > > > > >> review
> > > > > >> >> > > the
> > > > > >> >> > > > > > design
> > > > > >> >> > > > > > > > > >> > > > >> >> > >> >> > > > > >> > >>
> > > > > >> >> > > > > > > > > >> > > > >> >> > >> >> > > > > >> >
> > > > > >> >> > > > > > > > > >> > > > >> >> > >> >> > > >
> > > > > >> >> > > > > > > > > >> > > > >> >> > >> >> > >
> > > > > >> >> > > > > > > > > >> > > > >> >> > >> >>
> > > > > >> >> > > > > > > > > >> > > > >> >> >
> > > > > >> >> > > > > > > > > >> > > > >>
> > > > > >> >> > > > > > > > > >> > > >
> > > > > >> >> > > > > > > > > >> > >
> > > > > >> >> > > > > > > > > >>
> > > > > >> >> > > > > > > > >
> > > > > >> >> > > > > > > >
> > > > > >> >> > > > > > >
> > > > > >> >> > > > > >
> > > > > >> >> > > > >
> > > > > >> >> > > >
> > > > > >> >> > >
> > > > > >> >> >
> > > > > >>
> > > > >
> > > >
> > >
> >
> https://cwiki.apache.org/confluence/display/KAFKA/KIP-48+Delegation+token+support+for+Kafka
> > > > > >> >> > > > > > > > > >> > > > >> >> > >> >> > > > > >> > .
> > > > > >> >> > > > > > > > > >> > > > >> >> > >> >> > > > > >> > >> This
> KIP
> > > > > >> depends on
> > > > > >> >> > > KIP-43
> > > > > >> >> > > > > and
> > > > > >> >> > > > > > > we
> > > > > >> >> > > > > > > > > >> have also
> > > > > >> >> > > > > > > > > >> > > > >> >> > discussed an
> > > > > >> >> > > > > > > > > >> > > > >> >> > >> >> > > > alternative to
> > > > > >> >> > > > > > > > > >> > > > >> >> > >> >> > > > > >> > >>
> proposed
> > > > > design
> > > > > >> here<
> > > > > >> >> > > > > > > > > >> > > > >> >> > >> >> > > > > >> > >>
> > > > > >> >> > > > > > > > > >> > > > >> >> > >> >> > > > > >> >
> > > > > >> >> > > > > > > > > >> > > > >> >> > >> >> > > >
> > > > > >> >> > > > > > > > > >> > > > >> >> > >> >> > >
> > > > > >> >> > > > > > > > > >> > > > >> >> > >> >>
> > > > > >> >> > > > > > > > > >> > > > >> >> >
> > > > > >> >> > > > > > > > > >> > > > >>
> > > > > >> >> > > > > > > > > >> > > >
> > > > > >> >> > > > > > > > > >> > >
> > > > > >> >> > > > > > > > > >>
> > > > > >> >> > > > > > > > >
> > > > > >> >> > > > > > > >
> > > > > >> >> > > > > > >
> > > > > >> >> > > > > >
> > > > > >> >> > > > >
> > > > > >> >> > > >
> > > > > >> >> > >
> > > > > >> >> >
> > > > > >>
> > > > >
> > > >
> > >
> >
> https://issues.apache.org/jira/browse/KAFKA-1696?focusedCommentId=15167800&page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel#comment-15167800
> > > > > >> >> > > > > > > > > >> > > > >> >> > >> >> > > > > >> > >> >.
> > > > > >> >> > > > > > > > > >> > > > >> >> > >> >> > > > > >> > >>
> > > > > >> >> > > > > > > > > >> > > > >> >> > >> >> > > > > >> > >> Thanks
> > > > > >> >> > > > > > > > > >> > > > >> >> > >> >> > > > > >> > >> Parth
> > > > > >> >> > > > > > > > > >> > > > >> >> > >> >> > > > > >> > >>
> > > > > >> >> > > > > > > > > >> > > > >> >> > >> >> > > > > >> > >
> > > > > >> >> > > > > > > > > >> > > > >> >> > >> >> > > > > >> > >
> > > > > >> >> > > > > > > > > >> > > > >> >> > >> >> > > > > >> > >
> > > > > >> >> > > > > > > > > >> > > > >> >> > >> >> > > > > >> > > --
> > > > > >> >> > > > > > > > > >> > > > >> >> > >> >> > > > > >> > >
> > > > > >> >> > > > > > > > > >> > > > >> >> > >> >> > > > > >> > >
> Regards,
> > > > > >> >> > > > > > > > > >> > > > >> >> > >> >> > > > > >> > > Ashish
> > > > > >> >> > > > > > > > > >> > > > >> >> > >> >> > > > > >> >
> > > > > >> >> > > > > > > > > >> > > > >> >> > >> >> > > >
> > > > > >> >> > > > > > > > > >> > > > >> >> > >> >> > >
> > > > > >> >> > > > > > > > > >> > > > >> >> > >> >> > >
> > > > > >> >> > > > > > > > > >> > > > >> >> > >> >> > >
> > > > > >> >> > > > > > > > > >> > > > >> >> > >> >> > > --
> > > > > >> >> > > > > > > > > >> > > > >> >> > >> >> > >
> > > > > >> >> > > > > > > > > >> > > > >> >> > >> >> > > Regards,
> > > > > >> >> > > > > > > > > >> > > > >> >> > >> >> > > Ashish
> > > > > >> >> > > > > > > > > >> > > > >> >> > >> >> > >
> > > > > >> >> > > > > > > > > >> > > > >> >> > >> >>
> > > > > >> >> > > > > > > > > >> > > > >> >> >
> > > > > >> >> > > > > > > > > >> > > > >>
> > > > > >> >> > > > > > > > > >> > > >
> > > > > >> >> > > > > > > > > >> > >
> > > > > >> >> > > > > > > > > >>
> > > > > >> >> > > > > > > > > >>
> > > > > >> >> > > > > > > > > >
> > > > > >> >> > > > > > > > >
> > > > > >> >> > > > > > > >
> > > > > >> >> > > > > > >
> > > > > >> >> > > > > >
> > > > > >> >> > > > > >
> > > > > >> >> > > > > >
> > > > > >> >> > > > > > --
> > > > > >> >> > > > > > Regards,
> > > > > >> >> > > > > >
> > > > > >> >> > > > > > Rajini
> > > > > >> >> > > > > >
> > > > > >> >> > > > >
> > > > > >> >> > > >
> > > > > >> >> > > >
> > > > > >> >> > > >
> > > > > >> >> > > > --
> > > > > >> >> > > > Regards,
> > > > > >> >> > > >
> > > > > >> >> > > > Rajini
> > > > > >> >> > > >
> > > > > >> >> > >
> > > > > >> >> >
> > > > > >> >>
> > > > > >> >>
> > > > > >> >>
> > > > > >> >> --
> > > > > >> >> Liquan Pei
> > > > > >> >> Software Engineer, Confluent Inc
> > > > > >>
> > > > > >
> > > > > >
> > > > >
> > > >
> > >
> >
>



-- 
Grant Henke
Software Engineer | Cloudera
gr...@cloudera.com | twitter.com/gchenke | linkedin.com/in/granthenke

Reply via email to