robinlin created STORM-771:
------------------------------

             Summary: Authentication with Kerberos
                 Key: STORM-771
                 URL: https://issues.apache.org/jira/browse/STORM-771
             Project: Apache Storm
          Issue Type: Question
    Affects Versions: 0.9.1-incubating
            Reporter: robinlin


I am using Storm in a Kerberized Cluster. 
There is an user "Robin" in the Storm server. And I follow the steps below to 
generate keytab for Robin.
{noformat}
# /usr/sbin/kadmin.local
# kadmin.local: addprinc -randkey [email protected]
# kadmin.local: xst -norandkey -k Robin.keytab Robin
# scp Robin.keytab Robin@storm_server:/home/Robin
{noformat}
After these, I login the Storm server as Robin. And authenticate Robin with his 
own keytab(Robin.keytab)
{noformat}
# kinit -k -t Robin.keytab Robin
{noformat}
The output of klist is
{noformat}
Ticket cache: FILE:/tmp/krb5cc_1006
Default principal: [email protected]

Valid starting     Expires            Service principal
04/15/15 11:34:19  04/16/15 11:34:19  krbtgt/[email protected]
        renew until 04/15/15 11:34:19
{noformat}

But there was an authentication error occurred when I executed 
{noformat}
#storm list
{noformat}
The error was
{noformat}
Exception in thread "main" java.lang.RuntimeException: 
javax.security.auth.login.LoginException: No password provided
        at 
backtype.storm.security.auth.kerberos.KerberosSaslTransportPlugin.connect(KerberosSaslTransportPlugin.java:108)
        at 
backtype.storm.security.auth.TBackoffConnect.doConnectWithRetry(TBackoffConnect.java:48)
        at 
backtype.storm.security.auth.ThriftClient.reconnect(ThriftClient.java:97)
        at 
backtype.storm.security.auth.ThriftClient.<init>(ThriftClient.java:66)
        at backtype.storm.utils.NimbusClient.<init>(NimbusClient.java:47)
        at backtype.storm.thrift$nimbus_client_and_conn.invoke(thrift.clj:71)
        at backtype.storm.command.list$_main.invoke(list.clj:22)
        at clojure.lang.AFn.applyToHelper(AFn.java:159)
        at clojure.lang.AFn.applyTo(AFn.java:151)
        at backtype.storm.command.list.main(Unknown Source)
Caused by: javax.security.auth.login.LoginException: No password provided
        at 
com.sun.security.auth.module.Krb5LoginModule.promptForPass(Krb5LoginModule.java:878)
        at 
com.sun.security.auth.module.Krb5LoginModule.attemptAuthentication(Krb5LoginModule.java:719)
{noformat}

Here is my Kerberos settings in "storm.yaml"
{noformat}
storm.principal.tolocal: "backtype.storm.security.auth.KerberosPrincipalToLocal"
storm.zookeeper.superACL: "sasl:storm"
java.security.auth.login.config: "/etc/storm/conf/storm_jaas.conf"
nimbus.admins:
  - "storm"
nimbus.supervisor.users:
  - "storm"
nimbus.authorizer: "backtype.storm.security.auth.authorizer.SimpleACLAuthorizer"
drpc.authorizer: 
"backtype.storm.security.auth.authorizer.DRPCSimpleACLAuthorizer"

ui.filter: 
"org.apache.hadoop.security.authentication.server.AuthenticationFilter"
ui.filter.params:
  "type": "kerberos"
  "kerberos.principal": "HTTP/slave"
  "kerberos.keytab": "/etc/security/keytabs/spnego.service.keytab"
  "kerberos.name.rules": "DEFAULT"
supervisor.enable: true
{noformat}
And "storm_jaas.conf"
{noformat}
StormServer {
   com.sun.security.auth.module.Krb5LoginModule required
   useKeyTab=true
   keyTab="/etc/security/keytabs/nimbus.service.keytab"
   storeKey=true
   useTicketCache=false
   principal="nimbus/[email protected]";
};
StormClient {
   com.sun.security.auth.module.Krb5LoginModule required
   useKeyTab=true
   keyTab="/etc/security/keytabs/storm.service.keytab"
   storeKey=true
   useTicketCache=false
   serviceName="nimbus"
   principal="[email protected]";
};
Client {
   com.sun.security.auth.module.Krb5LoginModule required
   useKeyTab=true
   keyTab="/etc/security/keytabs/storm.service.keytab"
   storeKey=true
   useTicketCache=false
   serviceName="zookeeper"
   principal="[email protected]";
};
{noformat}

By the way, the cluster is installed via Ambari 1.7.

Thanks in advanced.



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)

Reply via email to