Flask - Active Directory身份验证

tre*_*nch 24 flask

我做了一个小的Flask应用程序,我希望用户能够使用他们的Windows NT ID进行身份验证.我不是IT团队的一员,因此我对此领域的洞察力有限,而我的IT团队对Python没有经验.

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

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

谢谢!

Pri*_*hta 12

使用Flask非常容易,因为它是基于Python的Web框架的轻量级和基于插件的

LDAP配置需要的东西

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

您需要安装Flask-LDAP插件

pip install Flask-LDAP
Run Code Online (Sandbox Code Playgroud)

这是一个让你入门的基本例子:

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")
Run Code Online (Sandbox Code Playgroud)

更多细节可以在这里找到

  • Flask-LDAP 版本 0.1.6 抛出此错误:“AttributeError: 'LDAP' object has no attribute 'login_required'”。有什么想法可以使这项工作? (2认同)

小智 5

对于Name: Flask-LDAP, Version: 0.1.6使用此:

安装: pip install Flask-LDAP

并通过以下方式导入:

from flask import Flask
from flask_ldap import LDAP, login_required
Run Code Online (Sandbox Code Playgroud)

然后按照 Priyank 的例子进行操作。