在django会话中存储LDAP密码

时间:2015-10-29 12:34:04

标签: django ldap password-encryption

所以我知道将用户密码存储为明文(甚至加密)确实是 BAD PRACTICE ....但这是我的问题。

我正在开发一个内部自动化网络应用程序,使用django作为我的后端,用户使用他们的LDAP凭据登录。我的应用程序与几个第三方应用程序(Jira,Jenkins,Gitlab)交互,这些应用程序也使用ldap凭证进行用户身份验证。我还希望能够从服务器写入用户(linux)文件系统(保存生成的脚本)。

我有什么选择?

我唯一拥有的是在用户登录并在django会话中存储密码时加密密码。每个会话将生成加密和解密密钥,并使用django的会话进行保存。只要需要密码,密码就会被解密,但永远不会保存为明文

*显然用户需要专注于此方法

还有其他想法吗?

2 个答案:

答案 0 :(得分:0)

如果我们说使用SSH登录用户帐户,您可以使用公钥/私钥来执行此操作。当用户登录时,使用他的密码连接到他的帐户并在authorized_keys目录中创建~/.ssh文件(或编辑现有文件)。这样你以后就可以访问SSH了。

此外,您可以创建一些脚本来处理根级别的文件系统更改。

答案 1 :(得分:0)

我知道Jira和Gitlab可以使用OAuth,我非常确定Jenkins也能理解这一点。因此,您可以为这些系统在登录时(当您使用明文密码时)为用户生成OAuth-Token,然后使用该令牌而无需存储密码。

关于SSH-Access @GwynBleidD已经给出了一个很好的答案。