Details

    • Sub-task
    • Status: Reopened
    • Major
    • Resolution: Unresolved
    • None
    • HBASE-26553
    • None
    • None
    • Reviewed

    Description

      Today, we have two mechanism in order to get the tokens needed to authenticate:

      1. Kerberos, we rely on a Kerberos ticket being present in a well-known location (defined by JVM properties) or via programmatic invocation of UserGroupInformation
      2. Delegation tokens, we rely on special API to be called (our mapreduce API) which loads the token into the current UserGroupInformation "context" (the JAAS PrivilegedAction).

      The JWT bearer token approach is very similar to the delegation token mechanism, but HBase does not generate this JWT (as we do with delegation tokens). How does a client provide this token to the hbase-client (i.e. ConnectionFactory.getConnection() or a UserGroupInformation call)? We should be mindful of all of the different "entrypoints" to HBase (hbase ... commands, java -cp commands, Phoenix commands, Spark comands, etc). Our solution should be effective for all of these approaches and not require downstream changes.

      Update

      The environment variable approach is done, but I have a new idea which will support token renewal as well:

      Implement a generic JwtTokenProvider interface with a default file-based provider.

      Read the token from a specific file similar to what happens in Kerberos. Token renewal is not part of this ticket.

      Attachments

        Issue Links

          Activity

            People

              andor Andor Molnar
              elserj Josh Elser
              Votes:
              0 Vote for this issue
              Watchers:
              2 Start watching this issue

              Dates

                Created:
                Updated: