有没有办法在Flask中的会话期间/在多个视图之间保持LDAP会话?

时间:2019-06-30 14:26:33

标签: python flask ldap

这是我的第一个Flask项目,因为我找不到适用于我的用例的东西。因此,这将是LDAP目录上方的非常简单的自助门户。用户应该能够查看其LDAP数据并更改一些选定的属性(密码,手机号码等)。

我不想使用全局LDAP角色来访问用户数据,但是我的ACL已经在工作,以便用户可以在验证到Directoy的同时修改所需的ACL。由于他们无论如何都需要登录进行认证,因此我正在寻找一种方法来保持该用户的LDAP连接打开。 我什至不确定这是否可能。

如果没有其他提示,如何实现?将密码保存在Flask会话中的某处(听起来有安全风险),以便我可以从Flask应用程序中访问它吗?

1 个答案:

答案 0 :(得分:0)

您的问题是,LDAP通常是面向连接的,而Flask是基于WSGI的,WSGI是基于请求的,并且在请求之间没有持久对象,除非您对此做任何事情。

您可以采取的措施取决于LDAP服务器的身份验证和授权选项。一种典型的实现方式是某种代理身份验证,其中服务代表用户操作。 openldap文档中描述的SASL Proxy Authn方案适合您的用例:

https://openldap.org/doc/admin24/sasl.html#Uses%20of%20Proxy%20Authorization