跳到主要内容
弗美科技
技术分享

LDAP 统一账号,实验室台账少了一半密码

高校实验室设备台账,原来每台仪器一个本地账号,学生毕业、老师换组,密码就没人说得清。接了学校 LDAP,用学工号统一认证,后台只留角色不管密码。顺带把设备预约的冲突判断从前端挪到数据库,用一条唯一索引挡住同一时段重复预约。

2018年9月12日统一认证高校台账

一个高校实验室的设备台账,接手时最难的不是功能,是账号。

原来的样子

四十多台仪器,分布在三间屋子。台账系统里有 60 多个账号,每个老师、每个研究生各一个,密码是本地存的 MD5。学生毕业、老师换课题组,账号没人删,也没人记得密码。管理员的办法是「谁忘了就给他重置一遍」,一学期重置二十几次。

更要命的是有人把账号借给外人用,出事查日志查不到人。

换成 LDAP

学校那边有现成的 LDAP,学工号就是唯一标识。我们做的改动其实不大:

登录不再查本地 users 表,改成拿学工号和密码去 bind LDAP,成功之后按 ou 和 group 取回身份,映射到系统的三个角色:管理员、指导教师、学生。本地只存学工号、姓名、角色和最近登录时间,不存密码。

这一步之后,账号的增删归学校统一管,毕业即停用,我们这边不用同步。密码找回的工单基本没了。

有个坑:LDAP 的 filter 里我们一开始写了 cn 匹配,结果有重名的两个学生,bind 都对得上但取回了错的那条属性。改成用唯一的 uid 之后才准。

预约冲突

台账里另一个高频问题是设备预约。原来在前端判断「这个时段有没有被占」,两个人同时打开同一天,都看见空的,都提交成功。

后来在预约表上加了唯一索引 (device_id, slot_start),数据库直接挡重复,后端捕获冲突返回一句「刚被约走」。前端那层判断留着,只是为了让提示来得快一点,不再当真。

设备怎么盘

每台仪器贴了一张二维码,扫码进详情页,能看到保管人、上次校准日期、当前状态。盘点时管理员用手机挨个扫,系统记录扫码时间和位置,导出一张 Excel。第一次盘了 43 台,有 3 台台账上写着在用、实际早搬去另一间屋了。

那年秋天去学校,实验室走廊里灯管有一盏在闪。管设备的老师拿着手机一台台扫过去,扫完说,比之前拿本子对快多了。

商务咨询 · 免费初步沟通

需要针对你的场景给个建议?

把业务背景和当前系统情况告诉我们,我们会给出可执行的思路。

在线留言

周一至周五 9:00–18:00 · 工作日 9:00–18:00 响应,留言会在一个工作日内回复。

商务微信
商务微信二维码

扫一扫,加商务微信咨询服务与方案报价

或填写需求表单