mirror of
https://github.com/lldap/lldap.git
synced 2026-04-25 16:25:55 +03:00
[GH-ISSUE #158] Authentik Support - attrs: ["*", "+"] not supported #62
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#62
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 @strazto on GitHub (May 4, 2022).
Original GitHub issue: https://github.com/lldap/lldap/issues/158
Originally assigned to: @strazto on GitHub.
This is more of a tracking issue to track my own process of getting this to work with authentik, however, i do not
...
Although I'm unsure if i've correctly config'd this on the authentik side ( maybe 85% sure), I get the impression that lldap just can't handle the
attrs: ["*", "+"]part of the query.On authentik's end, that part of the query can't be customized, I assume it's some part of the lldap protocol that just isn't implemented by lldap
@strazto commented on GitHub (May 4, 2022):
I think I've improved my authentik side settings, but I'm getting the following:
To summarize what I'm now getting:
Authentik's sync result:
I don't know whether authentik should just be more configurable, of if lldap needs to implement these
@strazto commented on GitHub (May 7, 2022):
Handling
*and+So,
*appears to representALL_ATTRIBUTES- it's a request to return all.+representsOPERATIONAL_ATTRIBUTES- I don't actually know what this meansWe see this in Authentik's source, here:
github.com/goauthentik/authentik@03d5b9e7e9/authentik/sources/ldap/sync/users.py (L22-L26)Our handling of attributes is here:
github.com/nitnelave/lldap@f689458aa2/server/src/infra/ldap_handler.rs (L103-L145)It's sensible - Iterate over specified attributes, try to handle them, return the exception if we cant (or whatever the correct rust-ic way to say that is)
What we need to do with
*, however, is to expand that out into a vector that includes all valid user attributes, then pass that to the match statementAs for
+- I don't know what an "operational" attribute isHandling DistinguishedName
I think this is much simpler, correct me if I'm wrong, but
DistinguishedNameis just an alias fordn?Change the match operand from
"dn"to"dn" | "distinguishedname"github.com/nitnelave/lldap@f689458aa2/server/src/infra/ldap_handler.rs (L155-L158)@strazto commented on GitHub (May 7, 2022):
Operational attributes defined by:
http://www.ldapexplorer.com/en/manual/107070300-operational-attributes.htm#:~:text=Operational%20attributes%20are%20attributes%20which,has%20to%20request%20them%20explicitly.
So, the + means return create | modify timestamp, for us