Hive 中的 Ldap 身份验证用户过滤器:失败
Posted
技术标签:
【中文标题】Hive 中的 Ldap 身份验证用户过滤器:失败【英文标题】:Ldap Authentication User filter in Hive: failing 【发布时间】:2017-12-21 11:14:48 【问题描述】:I want to implement the restrictions in the LDAP authentication, only want a specific group to have access on hive. Below are the properties I have given in the **hive-site.xml**. But the filter is not working.
Kindly check the following code and help me out with this ?
**Hive Version: Hive 2.1.1
Release label: emr-5.4.0
Hadoop distribution:Amazon 2.7.3**
下面提到的属性我已经尝试在 hive-site.xml 中添加,但它们没有工作并且登录不成功。如果没有这些,我可以使用 ldap 机制登录,因为只提到了 ldap 服务器 url 和 authnetication:LDAP:
<property>
<name>hive.server2.authentication.ldap.baseDN</name>
<value>ou=Root,dc=int,dc=domain,dc=com</value>
</property>
<property>
<name>hive.server2.authentication.ldap.groupBaseDN</name>
<value>CN=Groups,OU=Root,DC=int,DC=domain,DC=com</value>
</property>
<property>
<name>hive.server2.authentication.ldap.groupFilter</name>
<value>hadoop-admins</value>
</property>
<property>
<name>hive.server2.authentication.ldap.customLDAPQuery</name>
<value><![CDATA[(&(objectClass=person)(memberOf=CN=hadoop-admins,OU=Groups,OU=Root,Dc=int,DC=domain,DC=com)))]]>
</value>
</property>
如果您遇到同样的问题,请告诉我。
错误:
2017-12-20T10:29:32,414 WARN [HiveServer2-Handler-Pool: Thread-45([])]: conf.HiveConf (HiveConf.java:initialize(3768)) - 名称为 hive 的 HiveConf .server2.authentication.ldap.groupBaseDN 不存在 2017-12-20T10:29:32,493 错误 [HiveServer2-Handler-Pool: Thread-45([])]: transport.TSaslTransport (TSaslTransport.java:open(315)) - SASL 协商失败 javax.security.sasl.SaslException:验证登录时出错
【问题讨论】:
我引用的链接是:link 【参考方案1】:过滤器之间似乎存在不一致
(memberOf=CN=hadoop-admins,OU=Groups,OU=Root,Dc=int,DC=domain,DC=com)
和 groupeBaseDN
hive.server2.authentication.ldap.groupBaseDN CN=组,OU=根,DC=int,DC=域,DC=com
我相信,如果您更正 groupBaseDN,一切都会正常。
【讨论】:
您好 Ludovic Poitou,感谢您的回复我认为我们不能同时使用这两个属性(customquery 和 groupBaseDN)。当您使用 customLDAPQuery 时,使用 groupBaseDN 不会有任何影响。 CustomQuery 不起作用,因为它没有验证用户。但是,当我通过 LDAP UI 直接将 LDAP 过滤器查询用于 LDAP 服务器时,它会起作用。 GroupBaseDN:我尝试使用它,但我得到的错误是..名为 hive.server2.authentication.ldap.groupBaseDN 的 HiveConf 不存在 我认为您已经阅读了我的 cmets... 您报告的 groupBaseDN 不存在的错误,这可能是正确的,因为您已将其定义为“cn=Groups.. ." 而在有效的查询中,它是 "ou=Groups..."以上是关于Hive 中的 Ldap 身份验证用户过滤器:失败的主要内容,如果未能解决你的问题,请参考以下文章
Ldap 用户授权失败 - 未处理的 Spring 身份验证“访问被拒绝”
针对 ldap 的 Apache2 身份验证因“找不到用户”而失败