Пользовательский фильтр аутентификации Ldap в Hive: сбой

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, поскольку упоминались только URL-адрес сервера ldap и аутентификация: 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)) — HiveConf с именем hive.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: Ошибка проверки входа


person Aditya Tiwari    schedule 21.12.2017    source источник
comment
Ссылка, на которую я ссылался: ссылка   -  person Aditya Tiwari    schedule 21.12.2017


Ответы (1)


Похоже, существует несоответствие между фильтром

(memberOf=CN=hadoop-admins,OU=Groups,OU=Root,Dc=int,DC=domain,DC=com)

и groupeBaseDN

hive.server2.authentication.ldap.groupBaseDN CN=Groups,OU=Root,DC=int,DC=domain,DC=com

Я уверен, что если вы исправите groupBaseDN, все должно работать.

person Ludovic Poitou    schedule 22.12.2017
comment
Привет, Людовик Пуату. Спасибо за ответ. Я думаю, что мы не можем использовать оба свойства (customquery и groupBaseDN) вместе. Когда вы используете customLDAPQuery, использование groupBaseDN не повлияет. CustomQuery не работает, так как не проверяет пользователя. Но запрос фильтра LDAP работает, когда я использую его непосредственно для сервера LDAP через пользовательский интерфейс LDAP. GroupBaseDN: я пытался использовать это, но я получаю сообщение об ошибке. HiveConf с именем hive.server2.authentication.ldap.groupBaseDN не существует - person Aditya Tiwari; 26.12.2017
comment
Я думаю, вы перечитали мои комментарии... Ошибка, о которой вы сообщили в том, что groupBaseDN не существует, что, вероятно, верно, поскольку вы определили ее как cn=Groups... тогда как в работающем запросе это ou=Группы... - person Ludovic Poitou; 05.01.2018