我启动了Storm UI(版本1.0.2)并使用Kerberos运行,它似乎可以工作。日志表明它已成功通过身份验证,并且没有例外。现在我想从本地机器连接到UI。我已经阅读了所有可以找到的文档,例如https://github.com/apache/storm/blob/1.0.x-branch/SECURITY.md
据我了解,我需要设置这样的属性,最重要的部分是规则。我相信它正在做的是建立一个映射,说明"无论客户端在MYREALM中验证哪个主体,在UI本身将其映射到myUser"
ui.filter: "org.apache.hadoop.security.authentication.server.AuthenticationFilter"
ui.filter.params:
"type": "kerberos"
"kerberos.principal": "KRB principal that the UI connects as"
"kerberos.keytab": "path to that user's keytab"
"kerberos.name.rules": "RULE:[2:$1@$0](.*@MYREALM)s/.*/myUser/"
然后在我的客户端,我运行以下
kinit -kt <keytab> <same kerberos principal that the UI connects as>
curl -i --negotiate -u:myUser -b ~/cookiejar.txt -c ~/cookiejar.txt http://<ui hostname>:8080/api/v1/cluster/summary
无论我放入-u,我都会得到401.这是我不明白的地方:
一旦curl工作,那么我只需要在浏览器中做同样的事情。
我觉得我好像错过了所有这些部分如何融合在一起的东西。我对Kerberos也很陌生,所以很可能我也搞砸了。