Skip to main content

List url link, script tags, reponse headers

Project description

OS Dependencies

Debian

apt install python3-dev libldap2-dev libsasl2-dev

Centos

yum install python3-devel openldap-devel.x86_64 libgsasl-devel.x86_64

Alpine

apk add musl-dev openldap-dev gcc libgsasl-dev

Install

pip install Flask-LDAPAuth

Settings

App configs

NAME Default
LDAP_URL None
LDAP_ROOTDN None
LDAP_USERDN None
LDAP_GROUP False
LDAP_START_TLS True
LDAP_USER_FILTER 'cn'
LDAP_TIMEOUT 10
SECRET_KEY None
LDAP_TOKEN_EXPIRE 8

Examples

Simple User Authentication

from flask import Flask, jsonify, make_response
from flask_ldapauth import LDAPAuth

app = Flask(__name__)

app.config['LDAP_URL'] = "ldap://localhost:389"
app.config['LDAP_ROOTDN'] = "dc=localhost"
app.config['LDAP_USERDN'] = "ou=People,dc=localhost"

auth = LDAPAuth(app)

@app.route('/login')
def index():
    user = auth.connect(username='nmacias',
                        password='password')

    if user is False:
        return jsonify({'mesg': 'invalid username or password'}), 401

    return jsonify({'mesg': 'login'})

def run():
    app.config['DEBUG'] = True
    app.config['ENV'] = 'development'
    app.run()


def main():
    run()


if __name__ == '__main__':
    main()

Advance User Authenciation

  • Only allow user if part of a group
  • Create auth token cookies
  • Protect routes
  • Return JSON data on protected routes
from flask import Flask, jsonify, make_response
from flask_ldapauth import LDAPAuth

app = Flask(__name__)


app.config['LDAP_URL'] = "ldap://localhost:389"
app.config['LDAP_ROOTDN'] = "dc=localhost"
app.config['LDAP_USERDN'] = "ou=People,dc=localhost"
app.config['LDAP_GROUP'] = "admins"

app.config['SECRET_KEY'] = 'supersecretkey'

auth = LDAPAuth(app)


@app.route('/protected', methods=['GET', 'POST'])
@auth.protected(data=True)
def propected(data):

    return jsonify({'mesg': 'Top secret', 'name': data['name']})


@app.route('/login')
def login():
    user = auth.connect(username='nmacias',
                        password='password', return_user=True)

    if user is False:
        return jsonify({'mesg': 'invalid username or password'}), 401

    token = auth.token.create(payload=user)

    response = make_response(jsonify({'token': token}))

    response.set_cookie('token', value=token, httponly=True)

    return response


@app.route('/logout')
def logout():

    response = make_response(jsonify({}))
    response.set_cookie('token', expires=0)

    return response


@app.route('/validate/<token>')
def validate(token):

    token_validate = auth.token.validate(token=token)

    if token_validate is False:
        return jsonify({'mesg': 'Invalid token'}), 401

    return jsonify({})


def run():
    app.config['DEBUG'] = True
    app.config['ENV'] = 'development'
    app.run()


def main():
    run()


if __name__ == '__main__':
    main()

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

Flask-LDAPAuth-0.0.3.tar.gz (4.2 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

Flask_LDAPAuth-0.0.3-py3-none-any.whl (4.3 kB view details)

Uploaded Python 3

File details

Details for the file Flask-LDAPAuth-0.0.3.tar.gz.

File metadata

  • Download URL: Flask-LDAPAuth-0.0.3.tar.gz
  • Upload date:
  • Size: 4.2 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.4.0 importlib_metadata/3.7.3 packaging/20.9 pkginfo/1.7.0 requests/2.25.1 requests-toolbelt/0.9.1 tqdm/4.59.0 CPython/3.8.5

File hashes

Hashes for Flask-LDAPAuth-0.0.3.tar.gz
Algorithm Hash digest
SHA256 7988fbda81772f41aad90ff81ab3e1259831562a2a2a37884d0a5666164407bd
MD5 38788067bed0453c39f00b1de1146145
BLAKE2b-256 ccad3d1f3d3bb639e06647d98c1d609930e642f5cb2751f9fddd5564506984f7

See more details on using hashes here.

File details

Details for the file Flask_LDAPAuth-0.0.3-py3-none-any.whl.

File metadata

  • Download URL: Flask_LDAPAuth-0.0.3-py3-none-any.whl
  • Upload date:
  • Size: 4.3 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.4.0 importlib_metadata/3.7.3 packaging/20.9 pkginfo/1.7.0 requests/2.25.1 requests-toolbelt/0.9.1 tqdm/4.59.0 CPython/3.8.5

File hashes

Hashes for Flask_LDAPAuth-0.0.3-py3-none-any.whl
Algorithm Hash digest
SHA256 783814d3366661f85c616d33ff2b178af3447b8c242a44c29c12cd1755fce3f0
MD5 b3f12c93534544ef7b97781526811b5e
BLAKE2b-256 6bf61f4a916a0b77c61dadc9ba1d22e8af814848d2ebad6d572b5c985135abc8

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page