单点登录原理详解(图文全面总结)

单点登录原理详解(图文全面总结)-mikechen

单点登录,是大型分布式系统中提升用户体验、和统一认证管理的核心系统,下面我就全面来详解单点登录以及原理@mikechen

单点登录

单点登录(SSO),是一种身份认证机制,允许用户在一个系统中登录后,而无需在每个系统中重复登录。

单点登录原理详解(图文全面总结)-mikechen

 

用户一次登录,访问多个系统,在各大厂互联网公司都有广泛的使用。

不仅如此,单点登录,还可以集中管理认证,提高安全性。

比如:通过集中认证和授权,可以更严格地实施安全策略(如:强密码、双因素认证)。

 

单点登录原理

单点登录的实现原理,依赖于身份认证中心(Identity Provider, IdP),如下图所示:

单点登录原理详解(图文全面总结)-mikechen

如上图,用户的身份认证,由统一的 SSO 认证服务处理,其他系统无需直接管理用户认证。

主要工作流程,如下:

首先,SSO登录。

用户访问业务系统(比如:应用 A),未登录时被重定向到认证中心。

在认证中心进行身份验证(输入用户名、密码,或使用多因素认证),认证成功后,创建统一会话。

其次,生成访问令牌

然后,认证中心,会根据用户的身份信息,生成 Token(访问令牌)。

访问令牌(Access Token), 是在身份验证和授权流程中颁发的一种凭证,用于标识客户端应用的访问权限。

访问令牌,通常由身份认证服务器生成,会携带用户的基本信息(如:用户 ID、角色…等等)。

然后,令牌会加密,并且,设置 Token 的有效期、和作用范围。

最后,将 Token 返回给用户、或客户端应用。

如下所示,令牌:

eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiJ1c2VyMTIzIiw

令牌通常带有数字签名,资源服务器,通过验证签名确保令牌未被篡改。

单点登录原理详解(图文全面总结)-mikechen

然后,验证令牌

系统接收到访问令牌后,开始验证“令牌”。

比如:

应用 A 收到 Token 后,向 SSO 认证中心的校验端点发送请求,验证 Token 的合法性、和有效性。

通过以下方式验证:

比如:使用认证中心的公钥验证 Token 签名。

或者,远程验证:调用认证中心的 Token ,验证接口检查 Token 的有效性。

验证成功后,用户被授予访问权限。

最后,可以访问别的系统

校验通过后,应用 A 根据 Token 中的用户信息(如:用户名、角色..等等),建立会话,并允许用户访问资源。

用户访问其他受保护应用时,自动携带认证令牌,无需再次登录。

 

单点登录应用场景

单点登录,适用于企业级、教育、金融、电商…等领域。

单点登录原理详解(图文全面总结)-mikechen

1.企业内部系统

比如:企业中的 HR 系统、OA 系统、ERP… 等,通过统一认证服务实现单点登录。

2.社交登录集成

提供第三方登录,比如: Google、Facebook…等功能的门户网站。

3.电子商务平台

主站与子站间统一认证,例如:淘宝、天猫….购物平台和论坛社区,都可以一次登陆后,无需重复登录。

评论交流
    说说你的看法