diff --git a/README.md b/README.md index 51e0975214ec17b60be27c43a0f7c66d3eac9dcc..1546392d1acdfe752840dd4edb6139a41b279f36 100644 --- a/README.md +++ b/README.md @@ -18,30 +18,29 @@ Flask-SimpleLDAP depends, and will install for you, recent versions of Flask (0.12.4 or later) and [python-ldap](https://python-ldap.org/). Please consult the [python-ldap installation instructions](https://www.python-ldap.org/en/latest/installing.html) if you get an error during installation. -Next, add a ``LDAP`` instance to your code and at least the three -required configuration options: +Next, add an ``LDAP`` instance to your code and at least the three +required configuration options. The complete sample from +[examples/basic_auth/app.py](examples/basic_auth/app.py) looks like this: ```python -from flask import Flask +from flask import Flask, g from flask_simpleldap import LDAP app = Flask(__name__) +#app.config['LDAP_HOST'] = 'ldap.example.org' # defaults to localhost app.config['LDAP_BASE_DN'] = 'OU=users,dc=example,dc=org' app.config['LDAP_USERNAME'] = 'CN=user,OU=Users,DC=example,DC=org' app.config['LDAP_PASSWORD'] = 'password' ldap = LDAP(app) - -@app.route('/ldap') -@ldap.login_required -def ldap_protected(): - return 'Success!' - +@app.route('/') +@ldap.basic_auth_required +def index(): + return 'Welcome, {0}!'.format(g.ldap_username) if __name__ == '__main__': app.run() - ``` You can take a look at [examples/groups](examples/groups) for a more complete @@ -61,7 +60,7 @@ configuration, add the following at least LDAP_USER_OBJECT_FILTER and LDAP_USER_OBJECT_FILTER. ```python -from flask import Flask +from flask import Flask, g from flask_simpleldap import LDAP app = Flask(__name__) @@ -86,16 +85,13 @@ app.config['LDAP_GROUP_MEMBER_FILTER_FIELD'] = "cn" ldap = LDAP(app) - -@app.route('/ldap') -@ldap.login_required -def ldap_protected(): - return 'Success!' - +@app.route('/') +@ldap.basic_auth_required +def index(): + return 'Welcome, {0}!'.format(g.ldap_username) if __name__ == '__main__': app.run() - ``` Resources diff --git a/examples/basic_auth/app.py b/examples/basic_auth/app.py index efe7465008fd049684e8cfa5aaef22a87aaf178a..e9e745f30d2a47a219656d57018c9956f7d26ab8 100644 --- a/examples/basic_auth/app.py +++ b/examples/basic_auth/app.py @@ -1,11 +1,8 @@ -from flask import Flask, g, request, session, redirect, url_for +from flask import Flask, g from flask_simpleldap import LDAP app = Flask(__name__) -app.secret_key = 'dev key' -app.debug = True - -app.config['LDAP_HOST'] = 'ldap.example.org' +#app.config['LDAP_HOST'] = 'ldap.example.org' # defaults to localhost app.config['LDAP_BASE_DN'] = 'OU=users,dc=example,dc=org' app.config['LDAP_USERNAME'] = 'CN=user,OU=Users,DC=example,DC=org' app.config['LDAP_PASSWORD'] = 'password' diff --git a/examples/basic_auth/app_oldap.py b/examples/basic_auth/app_oldap.py index d795e4550c641827d389658c8c0d382485137423..41551305a25498d9e4e7c0288e3231b3a479e82b 100644 --- a/examples/basic_auth/app_oldap.py +++ b/examples/basic_auth/app_oldap.py @@ -1,19 +1,26 @@ -from flask import Flask, g, request, session, redirect, url_for +from flask import Flask, g from flask_simpleldap import LDAP app = Flask(__name__) -app.secret_key = 'dev key' -app.debug = True -app.config['LDAP_OPENLDAP'] = True -app.config['LDAP_OBJECTS_DN'] = 'dn' +# Base app.config['LDAP_REALM_NAME'] = 'OpenLDAP Authentication' app.config['LDAP_HOST'] = 'openldap.example.org' app.config['LDAP_BASE_DN'] = 'dc=users,dc=openldap,dc=org' app.config['LDAP_USERNAME'] = 'cn=user,ou=servauth-users,dc=users,dc=openldap,dc=org' app.config['LDAP_PASSWORD'] = 'password' + +# OpenLDAP +app.config['LDAP_OPENLDAP'] = True +app.config['LDAP_OBJECTS_DN'] = 'dn' app.config['LDAP_USER_OBJECT_FILTER'] = '(&(objectclass=inetOrgPerson)(uid=%s))' +# Groups +app.config['LDAP_GROUP_MEMBERS_FIELD'] = "uniquemember" +app.config['LDAP_GROUP_OBJECT_FILTER'] = "(&(objectclass=groupOfUniqueNames)(cn=%s))" +app.config['LDAP_GROUP_MEMBER_FILTER'] = "(&(cn=*)(objectclass=groupOfUniqueNames)(uniquemember=%s))" +app.config['LDAP_GROUP_MEMBER_FILTER_FIELD'] = "cn" + ldap = LDAP(app) @app.route('/')