理解认证与授权
什么是认证(Authentication)
认证是关于验证你的凭据,如用户名/邮箱和密码,以验证访问者的身份。系统确定你是否就是你所说的使用凭据。在公共和专用网络中,系统通过登录密码验证用户身份。身份认证通常通过用户名和密码完成,有时与认证可以不仅仅通过密码的形式,也可以通过手机验证码或者生物特征等其他因素
什么是授权(Authorization)
授权发生在系统完成身份认证之后,最终会授予你访问资源(如信息,文件,数据库,资金,位置,几乎任何内容)自的完全权限。
简单来说,授权决定了你访问系统的能力以及达到的程度。
Single Sign On(SSO)
在典型的单点登录SSO体系结构中,身份提供者和服务提供者交换数字证书和元数据以建立信任。它们通过诸如安全断言标记语言(SAML)、OIDC(基于OAuth2)等开放协议进行交互。
SSO与OAuth2的关系
SSO是认证服务器程序”的统称,强调认证,,例如:ApacheCAS;
OAuth2是一个协议,是行业标准强调授权,对应实现是“授权服务器”,例如:SpringAuthorizationServer
SSO可以基于OIDC(基于Auth2)协议实现分布式认证,当然可以基于SAML协议实现
OAuth2在实现授权控制前必须要通过认证,因此SSO是OAuth2的前置,目前主流的OAuth2授权服务器都内置了认证功能,并不
需要额外部署SSO服务器