You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
For LDAP, I would like to do the initial bind with an anonymous user. This is the flow I'm after:
Anonymous bind
Search for given user (deny login if not found)
Bind with given user (deny login if fail)
This flow is already supported for non-anonymous binds through AUTH_LDAP_BIND_USER, but it does not work for anonymous binds. Anonymous binds are done with zero-length user and password, which are falsey, so the initial bind is skipped (manager.py_bind_indirect_user and _bind_ldap). I would love a difference between '' and None, or some flag allow_anonymous_bind.
(Sidenote: python-ldap anonymous binds can be done with con.simple_bind_s())
There is a partial workaround by "guessing" the user's distinguished name and immediately binding as that user (through AUTH_LDAP_USERNAME_FORMAT), but that leads to two problems:
The distinguished name is not guaranteed to be stable, requiring configuration changes to fix, and causing issues if your LDAP names aren't predictable.
The search is only performed once, during initial registration. If the search filter contains for example memberOf= clauses, these are not checked on subsequent logins, which means that even after revoking groups, app access remains.
This issue has been automatically marked as stale because it has not had recent activity. It will be closed in 7 days if no further activity occurs. Feel free to reopen it if it's still relevant to you. Thank you
For LDAP, I would like to do the initial bind with an anonymous user. This is the flow I'm after:
This flow is already supported for non-anonymous binds through
AUTH_LDAP_BIND_USER
, but it does not work for anonymous binds. Anonymous binds are done with zero-length user and password, which are falsey, so the initial bind is skipped (manager.py
_bind_indirect_user
and_bind_ldap
). I would love a difference between''
andNone
, or some flagallow_anonymous_bind
.(Sidenote: python-ldap anonymous binds can be done with
con.simple_bind_s()
)There is a partial workaround by "guessing" the user's distinguished name and immediately binding as that user (through
AUTH_LDAP_USERNAME_FORMAT
), but that leads to two problems:memberOf=
clauses, these are not checked on subsequent logins, which means that even after revoking groups, app access remains.Environment
Flask-Appbuilder version: 3.1.1
Partial pip freeze output (modified
airflow:2.0.0-python3.8
Docker image with added ldap support):The text was updated successfully, but these errors were encountered: