мы используем 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 ответ
кажется ваш 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
Эрик Лаво