mirror of
https://github.com/lldap/lldap.git
synced 2026-04-25 00:05:50 +03:00
[GH-ISSUE #1123] [INTEGRATION] Apache Zeppelin and CLoudera Hue #400
Labels
No labels
backend
blocked
bug
cleanup
dependencies
docker
documentation
duplicate
enhancement
enhancement
frontend
github_actions
good first issue
help wanted
help wanted
integration
invalid
ldap
pull-request
question
rust
rust
tests
wontfix
No milestone
No project
No assignees
1 participant
Notifications
Due date
No due date set.
Dependencies
No dependencies set.
Reference
starred/lldap-lldap#400
Loading…
Add table
Add a link
Reference in a new issue
No description provided.
Delete branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Originally created by @DevId-E on GitHub (Mar 6, 2025).
Original GitHub issue: https://github.com/lldap/lldap/issues/1123
Checklist
Description of the service
Zeppelin and Hue work on top of hadoop/spark.
What you've tried
Sample config from hue and zeppelin were put in place.
What's not working
Groups can not be found.
@nitnelave commented on GitHub (Mar 6, 2025):
Can you turn on verbose logging in LLDAP and post the logs? I should really make that part of the issue template.
That'll show what the query is, and the response. We can then see if the problem is on LLDAP side, in the config, or in the service parsing the response.
@DevId-E commented on GitHub (Mar 7, 2025):
Let's start with Zeppelin, zeppelin uses shiro for authentication.
Using basic ldap settings works, but as groups are not mapped, zeppelin is not really usable.
When changing to the advanced configuration, no login is possible.
When logging in, zeppelin complains about:
it seems the guest-user cannot authenticate.
https://zeppelin.apache.org/docs/latest/setup/security/shiro_authentication.html
lldap.log
@nitnelave commented on GitHub (Mar 7, 2025):
Here's what I can tell you from these logs:
@DevId-E commented on GitHub (Mar 7, 2025):
Thanks for the fast reply. "test" is actually the User i tried to login with. Maybe the configuration for ldapRealm.memberAttributeValueTemplate is wrong?
@nitnelave commented on GitHub (Mar 7, 2025):
Oh, sorry, I misread the logs, it's not trying to find the group, but the user "test".
A few notes:
ldapRealm.userSearchBase could be
ou=people,...The system user (the one you called guest, but it should really be a service user, like zeppelin) should be a member of at least lldap_strict_readonly. Otherwise it won't see other users. That's probably the main problem.
@DevId-E commented on GitHub (Mar 8, 2025):
Thank you for your help!
Adding the guest user (as a temporary service user while setting things up) to the lldap_strict_readonly group changed the behaviour of zeppelin. Now zeppelin throws
lldap.log
@nitnelave commented on GitHub (Mar 8, 2025):
I see. Zeppelin is requesting "nested" group membership, which we don't support. If there's no way to disable that on zeppelin side, you'll need support in LLDAP. We have an issue for that, but it's quite a bit of work (and I don't have time for this now)
@DevId-E commented on GitHub (Mar 8, 2025):
There is a switch for nested groups. When disabling we're back at 48-anonymous bind not allowed. Do you have an idea why this is happening?
I still wonder why log in with LdapGroupRealm is working even without lldap_strict_read on guest user but role/groups are not mapped.
https://github.com/apache/zeppelin/blob/master/zeppelin-server/src/main/java/org/apache/zeppelin/realm/LdapGroupRealm.java
String searchFilter = "(&(objectClass=groupOfNames)(member=" + userDnTemplate + "))";is hard coded in LdapGroupRealms. Any way of making that work with lldap?@nitnelave commented on GitHub (Mar 8, 2025):
I can't know exactly what zeppelin does with the LLDAP logs, but I guess it tries to log in as test directly, instead of using a service user to check the group. That's another, simpler way of working with LDAP.
Are you sure the anonymous bind is an issue? It looked like it was retrying after that