大规模用户登录系统演进、便捷登录设计与实现
The following article is from 百度Geek说 Author 欢迎关注的
导读 introduction
随着互联网、物联网和移动终端等技术的迅猛发展,登录认证面临着新的挑战和需求。虽然登录认证在信息系统中是传统且古老的组成部分,但未来的发展前景依然广阔。不论是用户登录、PC端、移动端还是智能设备的访问,身份认证在保障业务操作安全、资金安全、系统间通信和与外部系统集成等多个方面起到至关重要的作用。随着认证方式的不断演进,从最初的cookie和session,发展到如今的多端登录、多因子认证以及API令牌等多种认证手段。同时,用户终端设备的不断升级也推动着认证方式和手段的不断创新。
01
登录认证发展历史
1.1 单体应用时期
1.2 Token验证机制
1.3 多业务统一账号中心
1.设计统一认证方案: 制定一套统一的认证协议或标准,以确保各业务系统与认证中台之间的通信和数据交互规范。这样的设计有助于确保认证系统的稳定性和兼容性,同时简化了不同业务系统之间的集成和沟通。
2.搭建认证中心: 建立独立的认证中心系统,负责统一管理用户身份、处理登录请求、颁发令牌等任务。认证中心的建立能集中处理用户身份的统一管理和认证流程,实现高效管理,为各业务系统提供稳定可靠的认证服务。
3.业务系统集成认证中心: 业务系统在需要认证的场景调用认证中心提供的接口进行认证,避免自行实现认证逻辑,减少耦合。通过与认证中心进行集成,业务系统可以快速、简便地获取认证服务,大大提高了系统的可维护性和灵活性。
4.统一管理用户身份和权限: 认证中心统一管理用户身份信息和权限,确保各系统之间的用户身份一致。权限变更只需在用户中心进行,无需逐个系统修改。这种集中式的用户身份和权限管理方式有助于降低系统维护成本,并简化管理流程,同时提高了系统的安全性和一致性。
1.4 外部合作OAuth授权
1.授权码模式(authorization code)
2. 简化模式(implicit)
3. 密码模式(resource owner password credentials)
4. 客户端模式(client credentials)
在百度OAuth体系中,通常遵循授权码模式。以下是一次移动端流程的简要描述(Web流程内重定向流程有些许差异):
1.5 统一登录分散认证阶段
安全隔离: 通过为不同产品线新增sub_token,可以实现对不同产品线的安全隔离。即使某个产品线的token泄露,攻击者也只能获取到与该产品线相关的sub_token,而无法影响其他产品线的安全。
细粒度控制: 每个sub_token可以针对具体的产品线或业务场景进行配置,包括权限范围、有效期等。这样可以实现对不同业务的细粒度控制,提高了安全性。
快速应对风险: 当某个产品线出现安全问题时,可以快速作出响应,封禁受影响的 sub_token,从而降低了整体风险。
降低攻击影响: 即使某个sub_token被攻击者获取,由于其仅适用于特定的产品线或业务场景,攻击者对其他产品线的影响将大大降低。
02
便捷登录方案
2.1 运营商手机号一键登录
00:05
用户可以使用自己手机号码作为登录凭证,实现一键登录,这种登录方式通常与用户的手机号码关联,无需记忆繁琐的用户名和密码,提高了用户体验和登录效率,实现通常依赖于运营商的身份认证系统,通过向运营商发送请求等方式,验证用户sim卡。一旦验证通过,系统即可信任用户的手机号卡号,无需再次输入密码或其他信息。完整的一键登录设计一般为以下流程:
2.2 可信设备历史登录
历史账号一键登录是指用户无需重复输入账号和密码,而是通过一键点击即可完成登录操作。这种登录方式利用了用户过去登录过的账号信息,通过存储和验证机制,实现了用户登录过程的简化和加速。
用户无需反复输入账号和密码,只需点击一次即可完成登录,大大提升了登录过程的便捷性和速度。通过减少用户的操作步骤,简化了登录流程,从而提升用户的使用体验和满意度。虽然简化了登录过程,历史账号可以一键登录,但仍然需要经过安全身份验证机制,以确保用户账号的安全,例如遇到安全风险进行面部识别、双因素认证等技术手段。
2.3 人脸验证登录
顾名思义,用户使用智能设备进行人脸验证,在与底图比对验证通过后,派发账号的登录信息,这个过程有两个核心环节:①知道要派发哪个账号 ②用户的人脸底图收集。
对于环节①,一般设计都是用户主动输入自己的账号,自动触发检测当前账号是否支持人脸登录,或者使用历史登录过的账号自动触发检测,即:
而服务端检测用户账号是否支持人脸登录,一般需要用户主动开启刷脸登录方式,而在开启刷脸登录时,需要用户进行人脸验证录入底图,这样在下次使用人脸验证时,变可以使用录入的底图进行比对。当然,对于安全性要求较高的业务,可以引导用户进行实名,之后的刷脸登录访问公安网进行三要素比对(收费),而百度内部同时支持这两种流程,下面是一次完整流程:
03
展望
参考阅读:
本文由高可用架构转载。技术原创及架构实践文章,欢迎通过公众号菜单「联系我们」进行投稿