一、单体应用的安全,传统的SSO
某些页面必须登录后才能正常使用,之前了解过单体架构可以通过分布式session或JWT实现传统的sso,又或者通过NG的ip hash算法(原理是根据用户的IP不变,定位到固定的后端服务器中寻找session)
这些都不是重点!!!!!
二、Oauth2协议
个人的理解是这样的:我们可以在Oauth2上实现单点登录,但是Oauth2不仅仅只能实现单点登录,可以实现授权第三方应用有权限去访问另外的服务提供者上的信息,而不需要将你的登录信息(账号密码)提供给第三方应用,安全。
(一)Oauth2的四种授权模式(只管开发情况下常用的两种)
(1)密码模式:适用于第三方APP是高度受信用的,例如是自己公司开发的app项目。简单来说就是用户在第三方应用上输入你的账户密码,但是第三方应用不会保存你的账户密码,同时到认证服务器上去验证第三方是否可信,以及你的用户信息
(2)授权码模式(最安全的模式) 与密码模式不同的是,用户不在第三方应用上输入账户密码了,而是通过认证服务器发给你的登录页面上登录,更加安全。