关于修改密码的方法以及说明
有不少朋友,在自己部署体验 go-ldap-admin 之后,对如何修改用户的密码这个问题有一些疑惑,本文就来统一介绍说明一下。
# 提供的方式
目前修改密码,提供了两种方式来进行。
# 第一种
通过忘记密码进行修改:
注意红框中的忘记密码,此处是普通用户在忘记密码的情况下,可通过输入邮箱对密码进行重置,重置成功之后,系统会自动生成密码,并发送到对应用户邮箱。
- 部分公司的企业邮箱也是基于 ldap 进行认证的,那么这里可能会是个死循环,目前暂时不兼容这种情况,后续考虑会集成其他收信方式,比如短信。
# 第二种
通过用户个人中心进行修改:
此处则是用户已知个人原来密码的情况下,可以在此处输入旧密码与新密码进行密码的修改。
# 不可修改的地方
有很多朋友,可作为管理员登陆账号,然后维护用户信息的时候,感觉应该直接在编辑用户信息的页面修改用户的密码,于是就这么做了,发现没有生效,对这个地方我没有做修改密码的能力:
所以不要再通过此处给普通用户更改密码了。
# 疑问交流
此时,可能有一些朋友会有一些疑问,我根据过往的一些交流,整理在此。
为什么管理员不能直接在编辑用户的时候更改用户密码呢?
这是因为,原则上来说,一个普通用户的密码应该只有他一个人知道才合理,当普通用户的密码通过管理员修改的时候,也就意味着管理员也知道了普通用户的密码,这是不合理的,因此此处无法修改普通用户的密码。
通过邮箱重置密码的页面并没有做二次校验,是不是意味着存在安全隐患?
有朋友问起过这个问题,如果内部有人恶意刷别人的邮箱,不停地重置别人的密码,岂不是存在安全隐患了。这里我想说,的确存在这个问题,目前我也还没有想到比较合适的解决这个问题的办法,只能从人道上信任内部员工。
那么合理的用户密码管理手段应该是怎样的呢?
合理的方式,应该是优雅的方式,当运维 go-ldap-admin 平台应用起来之后,就应该通过邮件同步到所有的业务部门,将如何修改个人密码的方式,告知给所有人,并且,这还需要成为每个部门培训新员工的一个基本内容,从而不至于,每当公司入职一个新员工,从三方 IM 自动同步过来之后,这个员工就来问运维如何该自己的密码了。
以上,是平台对这块儿的设计考量,如果你有更好的想法,或者意见,可以在项目的 issue 当中交流。