需求
多个应用系统需要实现登录功能,并且账号体系是同一套,同时为了提升使用体验(一次登录,即可访问多个相互信任的应用系统),因此需要搭建一套sso系统。sso的基本原理可以参考现实生活中的公园“通票”,一个公园中可能包含多个景区,每个景区需要分别购票才可游览,也可以选择购买通票,有了通票就可以在此多个景区间无障碍通行
选型
前提是尽量避免重复造轮子,考虑使用开源方案。开源方案中较为有名的有opensso和cas。前者源于sun公司(oracle),不过目前此开源项目已经处于inactive状态。后者源于耶鲁大学,有成熟的协议模型
CAS
CAS(Central Authentication Service) 是 Yale 大学发起的一个开源项目,从结构体系来看主要包含两部分:cas server及cas client。前者负责完成对用户的认证以及对受限资源的授权(只能使用https)。后者负责保护受限资源以及从server端识别授权用户。基本结构如下图: