简单说:
1.sso重点在提供登录能力
2.oauth提供获取用户能访问的资源能力
oauth包含了登录后的资源授权,所以:
1.oauth可以用来实现sso,不提供用户访问资源接口即可
2.而sso不能用来实现oauth
技术实现区别:
1.sso可以用cookie实现(几个系统域名相同),也可以jwt,最简单的实现登录sso后写主域名的cookie,业务系统用子域名可以读到cookie来判断登录。
2.oauth授权服务和应用服务是没有关系,只有通过令牌传递信息。
场景区别:
sso的应用一般是企业内部的多个系统和授权中心之间的交互。
oauth是第三方平台和业务系统,比如企业的OA想用飞书登录。
1.sso的目标是登录,所以账户数据只会在sso维护,业务系统没有账户数据。
2.oauth场景,授权方和业务方系统可以是不同企业,业务方有自己的账户,一般会和授权方的账户做绑定。