登录是一个高频的动作,笔者抓住这一个小点,分析了系统登录的几种方式和对应的场景。
今天谈谈登录。
B端系统,对于登录的业务场景有两种(可能不止,目前遇到过这两种):
但用户需要登录很多个系统,每个系统都有每个系统的用户名和密码,他们很难记住,即使设置成相同的用户名和密码,但需要改密码的时候,每个系统都要修改,十分麻烦。
想象一下,客户登录OA系统需要输入一次用户名和密码,上财务报销系统,需要输入用户名和密码,上项目管理系统需要输入用户名和密码,上某业务管理系统需要输入用户名和密码,会不会让人奔溃?
如果现在客户登录N个系统,只要输入一次用户名和密码,是不是体验很棒?
这两种登录场景很常见,第一种登录场景适用于客户公司业务单一,员工人数不多的情况下;第二种登录场景,公司业务繁多,业务系统多,员工多的时候,一般会产生用一个用户名和密码登录的需求。
对于不同场景的登录,已经有很成熟的解决方案了,下面逐一从非开发技术实现角度介绍。
传统登录
适用于第一种业务场景。
用户系统不是很多,想要上哪个系统,打开哪个系统的链接,输入这个系统的用户名和密码,即可登录。
关闭页面再次进入系统
系统页面被关闭后,登录状态要是失效了(浏览器储存的cookie失效),如果想要再次进入系统,需要打开系统链接,并重新输入用户名和密码。
点击系统中退出按钮退出系统,登录状态失效,如果想要再次进入系统,需要重新输入用户名和密码。
关机后再次进入系统
电脑因断电、电脑故障等情况关机后,登录状态失效,如果要再次进入系统,需要打开系统链接,并重新输入用户名和密码。
修改密码
各个系统有自己的用户名和密码,修改某系统的密码不影响其他系统。
技术实现机制
用户输入用户名和密码,和系统数据库中的用户名和密码进行验证,如果是一样的,则登录成功。
单点登录
适用于第二种业务场景。
单点登录也叫做统一身份认证平台,这个平台上集成了很多个系统,用户只要输入一次用户名和密码就可以访问所有应用统一企业内部身份认证机制的系统,无需重新登录后台的各个应用系统。
我用PPT简单画了个图,用户输入用户名和密码后,选择一个系统进入就可以了。
关闭页面再次进入系统
系统所有页面被关闭后,如果要再次进入系统,则返回统一认证平台,再次登录。
关机后再次进入系统
返回统一认证平台,再次登录。
修改密码
某系统需要修改密码,要么修改统一认证平台上用户密码则其他系统的单点登录密码更新为新密码。
技术实现机制
非技术出身,我自己的理解很难说清楚,大家看下百度的解释。
当用户第一次访问应用系统1的时候,因为还没有登录,会被引导到认证系统中进行登录;根据用户提供的登录信息,认证系统进行身份校验,如果通过校验,应该返回给用户一个认证的凭据--ticket;用户再访问别的应用的时候就会将这个ticket带上,作为自己认证的凭据,应用系统接受到请求之后会把ticket送到认证系统进行校验,检查ticket的合法性。如果通过校验,用户就可以在不用再次登录的情况下访问应用系统2和应用系统3了。
域账号登录
适用于第二种登录场景。
当使用员工公司电脑且通过的域账号和密码登录操作系统后,通过浏览器输入该系统网址无需进行用户名和密码的二次认证,即可访问系统。
直白点是公司员工电脑开机时,输入开机账户(一般是员工工号)和开机密码后,打开公司的系统网址,不需要再次输入用户名和密码就可以进系统。
看起来需求很清楚了,但是产品经理还需要考虑异常情况,多想几个问题,假如计算机脱域或无法连接域服务器,该如何去登录系统?
这里就产生第二个需求,当域账户无法登录的时候,需要支持按照第一种方式,也就是打开系统网址,用户输入系统用户名和密码进行登录。
除此以外,产品经理还需要考虑客户实现域账户登录的资源是否满足,域账号登录需要与操作系统、应用服务器、域服务器配合配置等多个条件,配置上比较麻烦。
如果客户不能满足域账号登录的要求,那么只能采用单点登录去实现这个需求。
关闭页面再次进入系统
系统所有页面被关闭后,想要再次进入系统,只需要重新在浏览器上输入系统链接,即可进入系统,无须再次输入系统用户名和密码,前提是域账号登录状态没有失效。
点击系统上退出按钮后,再次进入系统,浏览器输入系统链接,无须输入系统用户名和密码,即可登录。
同样前提是域账号登录状态没有失效。
关机后再次进入系统
电脑关机后,输入域账号和密码开机,浏览器输入系统链接,无须输入用户名和密码,即可登录。
修改密码
当某系统需要修改密码,要么修改域密码,会影响到其他系统,所有的系统统一用新密码登录。
技术实现机制
实现域登录,需要:
用户的电脑加入域;
需要域控制器,去判断用户输入的用户名和密码是否匹配。
小结
以上为登录的三种方式。
传统方式的登录,用户输入的用户名和密码完全暴露在外面,安全性不高;单点登录和域账号登录,用户输入的用户名和密码在客户方的环境内,安全性较高。