Hello Aneela,

If your cluster has enabled Kerberos security, then the HADOOP_USER_NAME 
environment variable has no effect.

It sounds like you want to test a proxy user scenario, in which authentication 
is performed as user "hdfs" via Kerberos, but then execution of the request 
(including any group membership resolution and authorization checks) proceeds 
as user "michael".  There is a different environment variable named 
HADOOP_PROXY_USER that can be set to achieve this.

Does that help?

--Chris Nauroth

From: Aneela Saleem <ane...@platalytics.com<mailto:ane...@platalytics.com>>
Date: Thursday, June 23, 2016 at 12:45 PM
To: "user@hadoop.apache.org<mailto:user@hadoop.apache.org>" 
<user@hadoop.apache.org<mailto:user@hadoop.apache.org>>
Subject: Kerberos Impersonation in Hadoop

Hi all,

I'm trying Kerberos Impersonation in Hadoop. But i can't get the clear idea 
what the impersonation is? Whether it's effective in doing HADOOP_USER_NAME 
from command line or it's something else. It's confusing. I can't understand it 
from the documentation.

Actually what i'm trying to do is to simulate LDAP users on my system when 
accessing HDFS. Since i'm using group mapping from LDAP that's working fine 
when i run 'hdfs groups' command. I just want to authenticate whether the user 
i pass in HADOOP_USER_NAME from command line when accessing HDFS, is actually 
impersonating an LDAP user or not? How can i verify it. Let's have a look on 
following usecase:

-I have a service principal i.e., hdfs/platalytics.com@platalyticsrealm
-I initiate the authenticate request using this service principal and got TGT 
for this principal
-Now when i run the command with any proxy user whether it exists or not
-HADOOP_USER_NAME=michael hdfs dfs -mkdir /temp it allows to create the temp 
directory on behalf of 'hdfs' ( michael is an LDAP user)

But when i initiate an authenticate request through user principal i.e., 
michael/platalytics.com@platalyticsrealm
and run the command hdfs dfs -mkdir /temp it says michael doestn't have enough 
permissions.

How the things are working i can't understand. How can i test LDAP users? I 
have not configured PAM for ldap authentication, i want to test it without PAM.

I have enabled impersonation with following configuration parameters:

<property>
    <name>hadoop.proxyuser.hdfs.groups</name>
    <value>Admin,hdfs</value></property><property>
    <name>hadoop.proxyuser.hdfs.hosts</name>
    <value>platalytics.com<http://platalytics.com></value></property>

Thanks

Reply via email to