All Projects β†’ alexferl β†’ Flask Simpleldap

alexferl / Flask Simpleldap

Licence: mit
LDAP authentication extension for the Flask web framework

Programming Languages

python
139335 projects - #7 most used programming language

Labels

Projects that are alternatives of or similar to Flask Simpleldap

Origami
πŸ”“ πŸ”‘ πŸ” Origami: Artificial Intelligence as a Service
Stars: ✭ 140 (-10.26%)
Mutual labels:  flask
Jmilkfan S Blog
JmilkFan's Blog with Python-Flask
Stars: ✭ 150 (-3.85%)
Mutual labels:  flask
Pymedium
Unofficial Medium Python Flask API and SDK
Stars: ✭ 153 (-1.92%)
Mutual labels:  flask
Dino
Distributed notifications using websockets
Stars: ✭ 142 (-8.97%)
Mutual labels:  flask
Word2vec Spam Filter
Using word vectors to classify spam messages
Stars: ✭ 149 (-4.49%)
Mutual labels:  flask
Appkernel
API development made easy: a smart Python 3 API framework
Stars: ✭ 152 (-2.56%)
Mutual labels:  flask
Flamejam
A generic game jam application with ratings and comments using Flask
Stars: ✭ 138 (-11.54%)
Mutual labels:  flask
Flask Easy Template
A template web app with Flask. Features: latest bootstrap, user registry, login, forgot password. Secured admin panel, pagination, config files for Nginx and Supervisor and much more.
Stars: ✭ 154 (-1.28%)
Mutual labels:  flask
Flog
A Simple Blog Powered by Flask
Stars: ✭ 150 (-3.85%)
Mutual labels:  flask
Wallgen
Generate HQ poly wallpapers
Stars: ✭ 153 (-1.92%)
Mutual labels:  flask
Mybolg
python+flaskεšηš„δΈ€δΈͺ小blog
Stars: ✭ 142 (-8.97%)
Mutual labels:  flask
Bento
[DEPRECATED] Find Python web-app bugs delightfully fast, without changing your workflow. 🍱
Stars: ✭ 147 (-5.77%)
Mutual labels:  flask
Angular2 Flask
Simple angular2 app with python-flask backend ( Learning Angular2 )
Stars: ✭ 152 (-2.56%)
Mutual labels:  flask
Tedivms Flask
Flask starter app with celery, bootstrap, and docker environment
Stars: ✭ 142 (-8.97%)
Mutual labels:  flask
Flask Migrate
SQLAlchemy database migrations for Flask applications using Alembic
Stars: ✭ 1,971 (+1163.46%)
Mutual labels:  flask
Wechat Admin
Wechat Management System
Stars: ✭ 1,716 (+1000%)
Mutual labels:  flask
Portfoliohub
Your portfolio is captured here!
Stars: ✭ 152 (-2.56%)
Mutual labels:  flask
Flask Black Dashboard
Flask Black Dashboard - Open-source seed project | AppSeed
Stars: ✭ 155 (-0.64%)
Mutual labels:  flask
Webvectors
Web-ify your word2vec: framework to serve distributional semantic models online
Stars: ✭ 154 (-1.28%)
Mutual labels:  flask
Gpu Sentry
Flask-based package for monitoring utilisation of nVidia GPUs.
Stars: ✭ 153 (-1.92%)
Mutual labels:  flask

Flask-SimpleLDAP

Build Status

Flask-SimpleLDAP provides LDAP authentication for Flask.

Flask-SimpleLDAP is compatible with and tested on Python 3.5, 3.6 and 3.7.

Quickstart

First, install Flask-SimpleLDAP:

$ pip install flask-simpleldap

Flask-SimpleLDAP depends, and will install for you, recent versions of Flask (0.12.4 or later) and python-ldap. Please consult the python-ldap installation instructions if you get an error during installation.

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 looks like this:

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.basic_auth_required
def index():
    return 'Welcome, {0}!'.format(g.ldap_username)

if __name__ == '__main__':
    app.run()

When the user visits the protected URL, the browser will prompt for the login and password via the built-in HTTP authentication window. Note that with the default value of LDAP_USER_OBJECT_FILTER the login is expected to match the userPrincipalName attribute of the LDAP user, e.g. [email protected].

Once you get the basic example working, check out the more complex ones:

OpenLDAP

Add the LDAP instance to your code and depending on your OpenLDAP configuration, add the following at least LDAP_USER_OBJECT_FILTER and LDAP_USER_OBJECT_FILTER.

from flask import Flask, g
from flask_simpleldap import LDAP

app = Flask(__name__)

# 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_OBJECTS_DN'] = 'dn'
app.config['LDAP_OPENLDAP'] = True
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('/')
@ldap.basic_auth_required
def index():
    return 'Welcome, {0}!'.format(g.ldap_username)

if __name__ == '__main__':
    app.run()

Resources

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].