[ 
https://issues.apache.org/jira/browse/HADOOP-8758?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13448518#comment-13448518
 ] 

Kan Zhang commented on HADOOP-8758:
-----------------------------------

Thanks all for your comments.

[~eric14], one use case is exactly the Gateway model you mentioned. Suppose a 
cluster can be accessed only through a gateway machine and the gateway is 
configured to authenticate its external clients using some other method (e.g., 
LDAP). We want to turn on Hadoop security within the cluster to support 
multi-tenancy, but we don't want to invest in Kerberos. One thing we can do is 
pre-generate and configure a shared key between Gateway and NN during install 
and use it to set up a secure connection between Gateway and NN in place of 
Kerberos. With pluggable interface to support multiple types of delegation 
tokens, such shared keys can be implemented in the form of a special kind of 
tokens and only connections authenticated using these special tokens can be 
used to fetch delegation tokens. In other words, these special tokens are used 
in place of Kerberos tickets to bootstrap security. The difference is Kerberos 
mechanism is more general; it can be used by any Kerberized clients without 
install changes. Whereas here we need to pre-configure our special tokens in a 
pair-wise manner for any pair of entities that we need to enable authenticated 
connections. Hence, its usefulness is limited to pre-known services, not 
arbitrary clients.

[~revans2] and [~daryn], I agree we should allow "SIMPLE" auth to be coupled 
with tokens.

[~owen.omalley], actually I'm proposing we use the same authentication 
mechanism as existing delegation tokens use (yes, we may need to consider 
upgrading the mechanism at some point and it depends on what's available in 
standard libs). What's new here is a new type of credentials, hence a new type 
of SecretManager to deal with it. Since the SecretManagers will be stacked 
together and deal with different types of credentials, they are orthogonal and 
can evolve independently. HTTP could be used for fetching tokens, but the root 
issue here is which auth method to use for intra-cluster authentication (ex. 
between Gateway and NN) and preferably we don't want to introduce an external 
dependency (ex, LDAP or Kerberos KDC). We could use a shared key based 
mechanism on HTTP, but that doesn't save us any trouble in configuring the 
shared keys. We might as well use RPC with its existing token framework.

[~tucu00] Agree with decoupling intra-cluster authentication from user-facing 
authentication. This JIRA is a step in that direction. Regarding consolidating 
different token implementations, I see the benefit and have discussed it with 
you and others. Let's leave it to another topic.
                
> Support for pluggable token implementations
> -------------------------------------------
>
>                 Key: HADOOP-8758
>                 URL: https://issues.apache.org/jira/browse/HADOOP-8758
>             Project: Hadoop Common
>          Issue Type: Improvement
>          Components: ipc, security
>            Reporter: Kan Zhang
>            Assignee: Kan Zhang
>
> Variants of the delegation token mechanism have been employed by different 
> Hadoop services (NN, JT, RM, etc) to re-authenticate a previously 
> Kerberos-authenticated client. While existing delegation token mechanism 
> compliments Kerberos well, it doesn't necessarily have to be coupled with 
> Kerberos. In principle, delegation tokens can be coupled with any 
> authentication mechanism that bootstraps security. In particular, it can be 
> coupled with other token implementations that use the same DIGEST-MD5 auth 
> method. For example, a token can be pre-generated in an out-of-band manner 
> and configured as a shared secret key between NN and JT to allow JT to make 
> initial authentication to NN. This simple example doesn't deal with token 
> renewal etc, but it helps to illustrate the point that if we can support 
> multiple pluggable token implementations, it opens up the possibility for 
> different users to plug in the token implementation of their choice to 
> bootstrap security. Such token based mechanism has advantages over Kerberos 
> in that 1) it doesn't require Kerberos infrastructure, 2) it leverages 
> existing SASL DIGEST-MD5 auth method and doesn't require adding a new RPC 
> auth method.

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators
For more information on JIRA, see: http://www.atlassian.com/software/jira

Reply via email to