Skip to content

Apache Superset LDAP authentication with Active Directory #3221

Description

@mauriciozambretti

Good morning. I'm trying to authenticate users in Superset through Active Directory using LDAP parameters in config.py but it's not working. I've followed the oficial docs instructions but without success. Can someone help me, please?

My environment info:
Description: Ubuntu 16.10
Release: 16.10
Codename: yakkety
python2.7
Flask-LDAP
python-ldap
pyldap
Airbnb Superset: {"GIT_SHA": "", "version": "0.18.5"}
Database: Remote MySQL Server
Active Directory: Windows server 2008 R2

config.py - LDAP configs
import ldap
from flask_appbuilder.security.manager import AUTH_OID,
AUTH_REMOTE_USER,
AUTH_DB, AUTH_LDAP,
AUTH_OAUTH,
AUTH_OAUTH

AUTH_TYPE = AUTH_LDAP
AUTH_USER_REGISTRATION = True
AUTH_USER_REGISTRATION_ROLE = "Alpha"

AUTH_LDAP_SERVER = "ldap://192.168.0.ip"
AUTH_LDAP_USE_TLS = False
AUTH_LDAP_BIND_USER = "CN=my_user,OU=my_users,DC=my,DC=domain"
AUTH_LDAP_BIND_PASSWORD = "mypassword"
AUTH_LDAP_SEARCH = "DC=my,DC=domain"
AUTH_LDAP_UID_FIELD = "sAMAccountName"
AUTH_LDAP_FIRSTNAME_FIELD = "givenName"
AUTH_LDAP_LASTNAME_FIELD = "sn"
AUTH_LDAP_EMAIL_FIELD = "mail"
AUTH_LDAP_APPEND_DOMAIN = 'my.domain'

Error Log

Traceback (most recent call last): File "/root/venv/lib/python2.7/site-packages/flask/app.py", line 1997, in __call__ return self.wsgi_app(environ, start_response) File "/root/venv/lib/python2.7/site-packages/flask/app.py", line 1985, in wsgi_app response = self.handle_exception(e) File "/root/venv/lib/python2.7/site-packages/flask/app.py", line 1540, in handle_exception reraise(exc_type, exc_value, tb) File "/root/venv/lib/python2.7/site-packages/flask/app.py", line 1982, in wsgi_app response = self.full_dispatch_request() File "/root/venv/lib/python2.7/site-packages/flask/app.py", line 1614, in full_dispatch_request rv = self.handle_user_exception(e) File "/root/venv/lib/python2.7/site-packages/flask/app.py", line 1517, in handle_user_exception reraise(exc_type, exc_value, tb) File "/root/venv/lib/python2.7/site-packages/flask/app.py", line 1612, in full_dispatch_request rv = self.dispatch_request() File "/root/venv/lib/python2.7/site-packages/flask/app.py", line 1598, in dispatch_request return self.view_functions[rule.endpoint](**req.view_args) File "/root/venv/lib/python2.7/site-packages/flask_appbuilder/security/views.py", line 402, in login user = self.appbuilder.sm.auth_user_ldap(form.username.data, form.password.data) File "/root/venv/lib/python2.7/site-packages/flask_appbuilder/security/manager.py", line 630, in auth_user_ldap if not self._bind_ldap(ldap, con, username, password): File "/root/venv/lib/python2.7/site-packages/flask_appbuilder/security/manager.py", line 578, in _bind_ldap user = self._search_ldap(ldap, con, username) File "/root/venv/lib/python2.7/site-packages/flask_appbuilder/security/manager.py", line 556, in _search_ldap self.auth_ldap_email_field File "/root/venv/lib/python2.7/site-packages/ldap/ldapobject.py", line 602, in search_s return self.search_ext_s(base,scope,filterstr,attrlist,attrsonly,None,None,timeout=self.timeout) File "/root/venv/lib/python2.7/site-packages/ldap/ldapobject.py", line 595, in search_ext_s msgid = self.search_ext(base,scope,filterstr,attrlist,attrsonly,serverctrls,clientctrls,timeout,sizelimit) File "/root/venv/lib/python2.7/site-packages/ldap/ldapobject.py", line 591, in search_ext timeout,sizelimit, File "/root/venv/lib/python2.7/site-packages/ldap/ldapobject.py", line 108, in _ldap_call result = func(*args,**kwargs) TypeError: ('expected string in list', u'givenName')

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions