关于 Django 接入 ldap 认证引发的思考

2018-05-09 14:11:53 +08:00
 rwdy2008

首先,我们知道 Django 接入 ldap 认证后,用户首次登录会去 ldap 认证,如果认证通过,认证相关信息会记录到 Django 的后台 mysqlDB 中,那么接下来的问题是

  1. 既然 Django mysql 记录了用户信息,那么下次同一用户再登录,还需要去 ldap 认证吗?
  2. 如果还需要 ldap 认证,那么 diango 的 mysql 只是一个记录的作用吗?
  3. 如果不需要 ldap 认证,那么肯定会有问题了,ldap 用户修改账号信息后,信息肯定不一致,必然是很大的隐患。

所以这个认证过程详细应该是怎么个流程呢?或者有相关参考资料吗?

4078 次点击
所在节点    Django
6 条回复
xuyl
2018-05-09 14:16:47 +08:00
1. 每次登录都需要重新去 ldap 认证,因为用户可能改过密码或者修改过信息;
2. mysql 记录一份用户信息的作用大着呢,难道你的用户信息只是登录才有用的?权限呢?角色呢?
0044200420
2018-05-09 14:21:55 +08:00
每次登录都要验证,你的浆狗后台只是中转站
ipwx
2018-05-09 15:16:41 +08:00
我记得 Confluence 做的是 Periodic Synchronization,也可以管理员手工触发同步。

好处是不用让账号系统和 LDAP 深度集成,事实上 Confluence 支持非常多的账号来源。
vicalloy
2018-05-09 15:26:16 +08:00
1. 你可以设置成先数据库认证,再 ldap 认证。这个完全根据你的业务需求来。
2. 是否要在数据库创建用户对象这个也根据你的业务需求来。一般都会创建,不然系统用户权限管理等都很麻烦。
3. 账号信息是指什么,一般来说从 ldap 取过来的数据也就一个用户名,其他数据顶多初次链接的时候做个同步。用户名一般是不允许修改的,用户名修改了系统和 ldap 之间的关联就乱了。
geeklian
2018-05-10 07:03:17 +08:00
1. 用 ldap 内的 objectSid 做用户名。


@vicalloy
geeklian
2018-05-10 07:05:10 +08:00
每次登录都采用 ldap 认证,并同步信息到本地就是了。

本地的 auth 库只是用来存信息和保持登录状态。

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/453434

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX