一尘不染

Flask-Active Directory身份验证

flask

我制作了一个小的Flask应用程序,希望用户能够使用其Windows NT ID进行身份验证。我不是IT团队的一员,因此我对该领域的了解有限,我的IT团队也没有使用Python的经验。

配置它有多容易?我尝试做一些谷歌搜索,我看到了LDAP模块和Flask-Security。我希望有一个快速指南或指向一个特定的方向。

  • 现有的Active Directory,我们的许多内部网站都使用NT身份验证
  • 我制作了一个Flask应用,该应用将移植到我们的内部网络
  • 我希望用户能够使用其NT ID登录该站点
  • 我需要知道我需要哪些信息(LDAP服务器和端口?),或者需要与IT进行什么工作才能正确配置此配置而不破坏任何安全协议。

阅读 492

收藏
2020-04-07

共1个答案

一尘不染

Flask是一个轻量级且基于插件的Python Web框架,因此使用它非常容易。

LDAP配置所需的内容

  • LDAP主机
  • LDAP网域
  • LDAP配置文件密钥

你需要安装Flask-LDAP插件

pip install Flask-LDAP

这是一个入门的基本示例:

from flask import Flask
from flask.ext.ldap import LDAP, login_required

app = Flask(__name__)
app.debug = True

app.config['LDAP_HOST'] = 'ldap.example.com'
app.config['LDAP_DOMAIN'] = 'example.com'
app.config['LDAP_SEARCH_BASE'] = 'OU=Domain Users,DC=example,DC=com'

ldap = LDAP(app)
app.secret_key = "welfhwdlhwdlfhwelfhwlehfwlehfelwehflwefwlehflwefhlwefhlewjfhwelfjhweflhweflhwel"
app.add_url_rule('/login', 'login', ldap.login, methods=['GET', 'POST'])

@app.route('/')
@ldap.login_required
def index():
    pass

# @app.route('/login', methods=['GET', 'POST'])
# def login():
#     pass

if __name__ == '__main__':
app.run(debug=True, host="0.0.0.0")
2020-04-07