sso/auth.py

26 lines
692 B
Python

import ldap
from flask import Flask, render_template, request
from time import sleep
app = Flask('auth')
app.config.from_object(__name__)
app.config.from_pyfile('auth.cfg')
@app.route('/', methods=['GET'])
def form():
return render_template('login.html')
@app.route('/', methods=['POST'])
def login():
conn = ldap.initialize(app.config['LDAP_URL'])
conn.start_tls_s()
try:
conn.simple_bind_s(app.config['DN_STRING'] % request.form['login'],
request.form.get('password', ''))
except ldap.LDAPError:
sleep(app.config['FAIL_DELAY'])
return "ERROR"
return "OK"
if __name__ == '__main__':
app.run('0.0.0.0', 8082, debug=True)