单点登录&OAuth2.0

单点登录

在多系统共存环境下,用户在一个系统中登录,其他系统也可通行

好处

  • 用户体验提升:无需多次登录
  • 安全性增强:集中管理认证用户信息,可以更好的控制和保护用户信息
  • 降低运维成本:无需多系统维护登录认证

风险

  • 单点故障:sso系统崩溃,无法进行验证

    解决方案:冗余部署、定期备份+故障恢复策略、负载均衡等提高系统可用性

  • sso服务被击破:sso被击破,攻击者可获得所有应用的访问权限

    解决方案:加强sso服务安全防护,如多因素认证、定期审计

难点

  • 不同系统间如何进行通讯?

    解决方案:服务调用(grpc)、http、消息队列、文件系统、进程通讯

  • token过期同步、一致性问题

  • 跨域问题

    解决方案:使用相同顶级域名

  • 使用全局共享Session还是各系统单独维护

    全局共享Session:一般存储在redis、mysql集群中;易出现问题:第三方存储压力瓶颈;解决方案:使用JWT Token存储非敏感、高频数据 // CPU换内存

    各系统单独维护:全局存储独一份的信息,比如是否登录信息;个性化信息各系统分别存储

  • sso可用性保障:负载均衡、熔断限流、来源验证 // 网关处理

多设备登录和单点登录有关吗?

多设备登录是指在多个设备上登录同一个账号,多设备间需要分开登录;单点登录指同一体系下所有系统,一处登录,其他系统可正常通行。sso机制是多设备登录的基础,多设备登录需要通过sso服务进行身份验证,并获取统一的访问权限;多设备登录扩展了sso的应用场景。

鉴权和登录的关系

登录(Identity):你是谁?是不是合法用户
鉴权(Authorization):是合法用户的你有哪些权限

sso 流程

在这里插入图片描述

go 源码

gitee: https://gitee.com/luyue_zhang/sso_oauth2/tree/master/sso

演示

在这里插入图片描述

相关资料

单点认证(SSO)方案调研总结

OAuth2.0

OAuth2.0 流程

在这里插入图片描述

go 源码

gitee:https://gitee.com/luyue_zhang/sso_oauth2/blob/master/oauth2/readme.md

演示

在这里插入图片描述

sso和oauth2.0的区别

  • 可以用oauth2.0实现sso,登录可以被认为是一种资源
  • oauth2.0常用于对接第三方平台,sso常用于公司内部多系统场景
  • oauth2.0有权限控制
Vue 单点登录结合 OAuth2.0 是一种常见的身份验证和授权机制。OAuth2.0 允许用户使用他们在其他应用程序中拥有的凭据来登录您的应用程序,而无需创建新的用户名和密码。 在 Vue 中实现单点登录结合 OAuth2.0 的步骤如下: 1. 注册 OAuth2.0 提供商:您需要选择一个 OAuth***获取客户端ID和客户端密钥。 2. 安装依赖:使用 npm 或 yarn 安装用于处理 OAuth2.0 的库,例如 `vue-oauth2-oidc`。 3. 配置 OAuth2.0 客户端:在 Vue 项目的配置文件中,将 OAuth2.0 客户端的配置信息(客户端ID、客户端密钥、授权终结点等)添加进去。 4. 实现登录和授权流程:在 Vue 组件中,您可以创建一个登录按钮或链接,当用户点击时触发 OAuth2.0 的登录流程。您可以使用 `vue-oauth2-oidc` 提供的方法来处理认证请求和获取访问令牌。 5. 处理回调:当用户成功登录并授权后,OAuth2.0 提供商将重定向用户到您的应用程序,并附带一个授权码。您需要在 Vue 组件中处理回调,验证授权码并交换访问令牌。 6. 保持登录状态:一旦您获得访问令牌,您可以将其存储在 Vue 的状态管理器(如Vuex)中,以便在应用程序的其他部分使用。您可以使用访问令牌来获取用户信息或调用受保护的 API。 通过以上步骤,您可以实现 Vue 单点登录结合 OAuth2.0。请注意,具体的实现细节可能因您选择的 OAuth2.0 提供商而有所不同,您需要查阅相关文档和示例代码来完成集成。
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值