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

Kai Zheng commented on HADOOP-9392:
-----------------------------------

Hi Thomas,
 
We discussed about this via email in a long thread, and now it’s great you are 
about to do something implementing the common token. To get more involved in 
community, I’d like to cite your questions from your email regarding how to 
implement and answer them in this JIRA. See below. Thanks.
 
Question 1: “If I'm not wrong, the authentication method is set at 
initialization by looking at "core-site.xml". During authentication, Hadoop has 
to check the UGI to determine which mode is used, and then choose the path 
accordingly (if authentication=.....). 
To decouple Hadoop internal use from external authentication, we should remove 
all these paths and choose only one solution (based on common token). It sounds 
rather complex depending on the context..”
 
Answer: You’re right understanding the current Hadoop authentication. There’re 
already a few of authentication methods and one of them can be configured and 
then used globally. To go in our way and also keep backward compatible, we can 
keep the existing methods, at the same time add a new authentication method for 
common token authentication as an advanced one like Kerberos. To implement the 
new method, we can have token provider service which 
issues/validates/renews/revokes token for users utilizing pluggable 
authentication module based on external authentication provider as the backend 
we’d like to target. To keep it simple, the token provider can be implemented 
and provided as just a library, in future we can promote it to be standalone 
service.
 
Question 2: “Do you have any suggestion about how the "common token provider" 
should be implemented?
I have picture a mechanism like Shibboleth (for my intercloud scenario), the 
user is redirected to its authentication system to provide credentials 
(username,password) and if the authentication succeeds, the common token is 
provided.” 
“Do you have any idea which form  the user attributes should be implemented in 
the common token?”
 
Answer: Based on my answer to question 1, here it comes to how to implement the 
above mentioned token provider service. Providing the token provider service 
interfaces are defined for Hadoop, to implement it we can consider existing 
SSO/federation standards/solutions such as SAML or Shibboleth.  For the common 
token we may consider SAML token as its format. 
 
Question 3: “After reading the discussions of the related Jiras, I also have 
another question: By using our framework, user will be forced to use common 
token even if he uses "simple authentication". Is it problematic?”
 
Answer: As answered to question 1, we keep the existing methods when we provide 
this advanced option, and Hadoop customer won’t be forced to use which one.

                
> Token based authentication and Single Sign On
> ---------------------------------------------
>
>                 Key: HADOOP-9392
>                 URL: https://issues.apache.org/jira/browse/HADOOP-9392
>             Project: Hadoop Common
>          Issue Type: New Feature
>          Components: security
>            Reporter: Kai Zheng
>             Fix For: 3.0.0
>
>
> This is an umbrella entry for one of project Rhino’s topic, for details of 
> project Rhino, please refer to 
> https://github.com/intel-hadoop/project-rhino/. The major goal for this entry 
> as described in project Rhino was 
>  
> “Core, HDFS, ZooKeeper, and HBase currently support Kerberos authentication 
> at the RPC layer, via SASL. However this does not provide valuable attributes 
> such as group membership, classification level, organizational identity, or 
> support for user defined attributes. Hadoop components must interrogate 
> external resources for discovering these attributes and at scale this is 
> problematic. There is also no consistent delegation model. HDFS has a simple 
> delegation capability, and only Oozie can take limited advantage of it. We 
> will implement a common token based authentication framework to decouple 
> internal user and service authentication from external mechanisms used to 
> support it (like Kerberos)”
>  
> We’d like to start our work from Hadoop-Common and try to provide common 
> facilities by extending existing authentication framework which support:
> 1.    Pluggable token provider interface 
> 2.    Pluggable token verification protocol and interface
> 3.    Security mechanism to distribute secrets in cluster nodes
> 4.    Delegation model of user authentication

--
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