Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

class ExpireTokenRequest(hmac: byte[], expireAt: long  = Systemtime.currentTimeMillis) 

 

Proposed Changes

Token acquisition

...

  • The client authenticates using Kerberos or any other available authentication scheme. ( Can this authentication be done using delegation token? if it is allowed then we probably do not want to default renewer as owner as anyone with delegation token can actually renew their own token forever. Instead if no renewer is provided we should mark those tokens as non renewable or we should make renewer a mandatory request field during token acquisition and ensure renewer can not be set to owner)

  • Client sends a request to renew a token with an optional renew life time which must be < max life time of token.

  • Broker looks up the token, if token is expired or if the renewer’s identity does not match with the token’s renewer, or if token renewal is beyond the Max life time of token,  broker disallows the operation by throwing an AuthorizationException with appropriate message.

  • If none of the above conditions are matched, broker updates token’s expiry. Note that the HMAC-SHA256 is unchanged so the token on client side is unchanged. Broker updates the expiration in its local cache and on zookeeper so other brokers also get notified and their cache statuses are updated as well.

...