Конфигурация LDAP кластера Kubernetes NIFI

мы используем cetic/руль для нифи кластера. Мы настроили учетные данные LDAP, как показано ниже:

 ldap:
    enabled: true
    host: "ldaps://ldaphost.net"
    searchBase: "ou=People,o=ABC" #CN=Users,DC=ldap,DC=example,DC=be
    admin: "cn=Keycloak_business_managed_Acc,ou=SystemUsers,ou=Accounts,o=ABC"
    pass: changeme
    searchFilter: (objectClass=abcEDPerson, inetorgperson, organizationalPerson, person, top, dspswuser, posixAccount, shadowAccount)
    userIdentityAttribute: uid
    authStrategy: SIMPLE # How the connection to the LDAP server is authenticated. Possible values are ANONYMOUS, SIMPLE, LDAPS, or START_TLS.
    identityStrategy: USE_USERNAME
    authExpiration: 12 hours
    userSearchScope: SUBTREE # Search scope for searching users (ONE_LEVEL, OBJECT, or SUBTREE). Required if searching users.
    groupSearchScope: SUBTREE # Search scope for searching groups (ONE_LEVEL, OBJECT, or SUBTREE). Required if searching groups.

Однако мы всегда получаем неверные учетные данные пользователя, когда пытаемся войти в систему, используя наши индивидуальные учетные записи входа в систему из пользовательского интерфейса NIFI.

То же самое работает через ldapsearch

root@bh-gsn-57-asca-dev-01:~# ldapsearch -h ldaphost.net -D "cn=Keycloak_business_managed_Acc,ou=SystemUsers,ou=Accounts,o=ABC" -w "changeme" -b "ou=people,o=abc" uid=myuserid
# extended LDIF
#
# LDAPv3
# base <ou=people,o=abc> with scope subtree
# filter: uid=myuserid
# requesting: ALL
#

# 62XXXXXX, Internal, People, ABC
dn: employeeNumber=62XXXXXX,ou=Internal,ou=People,o=ABC
displayName: Prabir Choudhury (ABC-D)

Посоветуйте, что я делаю не так.

Из документа я понимаю, что DN (admin)/пароль менеджера — это в основном DN и пароль менеджера, которые используются для привязки к серверу LDAP для поиска пользователей. Поэтому мы предоставляем BIND DN вместо admin и ПРИВЯЗАТЬ ПАРОЛЬ вместо pass.

1 ответ
1

кажется ваш host и searchFilter настройки неверны. Для того, чтобы воспроизвести ldapsearch команда, вам потребуется следующая конфигурация:

auth: 
  
  # ... 
  
  ldap:
    enabled: true
    host: "ldap://ldaphost.net:389"
    searchBase: "ou=People,o=ABC"
    admin: "cn=Keycloak_business_managed_Acc,ou=SystemUsers,ou=Accounts,o=ABC"
    pass: changeme
    searchFilter: (uid={0})
    userIdentityAttribute: uid
    authStrategy: SIMPLE
    identityStrategy: USE_USERNAME
    authExpiration: 12 hours
    userSearchScope: SUBTREE
    groupSearchScope: SUBTREE

Однако — на момент написания — это не будет работать, потому что файлы конфигурации логин-идентификация-провайдеры-ldap.xml и авторизаторы.xml имеют жестко закодированные значения, особенно фильтр поиска:

<property name="User Search Filter">(cn={0})</property>

что должно быть:

<property name="User Search Filter">{{.Values.auth.ldap.searchFilter}}</property>

Есть 2 пулл-реквеста, решающих проблему (#260 и #280). Я думаю, вы можете попытаться исправить это вручную, пока они не будут объединены, либо как описано выше, либо непосредственно установив правильные значения в конфигурации провайдера идентификации входа в систему ldap, как если бы вы делали это без Helm.

Видеть https://nifi.apache.org/docs/nifi-docs/html/administration-guide.html#ldap_login_identity_provider

Эрик Лаво

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *