V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
rwdy2008
V2EX  ›  Django

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

  •  
  •   rwdy2008 · 2018-05-09 14:11:53 +08:00 · 4063 次点击
    这是一个创建于 2400 天前的主题,其中的信息可能已经有所发展或是发生改变。

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

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

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

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

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


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

    本地的 auth 库只是用来存信息和保持登录状态。
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   1401 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 24ms · UTC 17:41 · PVG 01:41 · LAX 09:41 · JFK 12:41
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.