V2EX = way to explore
V2EX 是一个关于分享和探索的地方
Sign Up Now
For Existing Member  Sign In
rwdy2008
V2EX  ›  Django

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

  •  
  •   rwdy2008 · May 9, 2018 · 4989 views
    This topic created in 2922 days ago, the information mentioned may be changed or developed.

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

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

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

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

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


    @vicalloy
    geeklian
        6
    geeklian  
       May 10, 2018 via Android
    每次登录都采用 ldap 认证,并同步信息到本地就是了。

    本地的 auth 库只是用来存信息和保持登录状态。
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Solana   ·   1296 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 56ms · UTC 17:39 · PVG 01:39 · LAX 10:39 · JFK 13:39
    ♥ Do have faith in what you're doing.