Fork me on GitHub

Spring Cloud Oauth2

Spring Cloud Security:Oauth2 存档

项目升级微服务项目后,用Spring Cloud Security来做认证。参考了很多大佬的教程,进行一个原理总结。

Spring Cloud Security

在SpringBoot和Spring Security OAuth2的基础上,可以快速创建常见模式的系统,如单点登录,令牌中继和令牌交换。

单点登录

什么是单点登录

单点登录英文SSO(Single Sign On),单点登录就是在多个系统中,用户只需一次登录,各个系统即可以感知该用户已经登陆。

多系统中可能有多个Tomcat,而Session是依赖当前系统的Tomcat,所以系统A和系统B的Session不共享。

解决Session不共享的解决方案:

  1. Tomcat集群Session全局复制
  2. 根据用户请求的IP进行哈希映射到对应的机器上
  3. 把Session数据放在Redis中(使用Redis模拟Session)

拆分从多个子系统,在我的项目中就是,区域风险管理系统,人员风险管理系统,人员管理系统,设备管理系统等等。

SSO的逻辑是:

  1. SSO系统生成一个token,并将用户信息存到Redis中,并设置过期时间
  2. 其他系统请求SSO系统进行登录,得到SSO返回的token,写到Cookie中
  3. 每次请求时,Cookie都会带上,拦截器得到token,判断是否已经登陆

OAuth2

是一个验证授权的开放标准。基于这个标准实现自己的OAuth。

在OAuth之前,HTTP Basic Authemtication,输入用户名密码的形式验证是不安全的。OAuth的出现时为了解决访问资源的安全性和灵活性。使得第三方应用对资源的访问更加安全。

类似Spring Security中,可以通过实现UserDetailsService来加载自定义的UserDetails信息。重写了方法 loadUserByUsername(name)

结合JWT

JWT(json web token)

RSA签名

纯干货!Spring Cloud Gateway整合OAuth2.0 实现分布式统一认证授权

微服务权限终极解决方案,Spring Cloud Gateway + Oauth2 实现统一认证和鉴权!



本文标题:Spring Cloud Oauth2

文章作者:tsuki

发布时间:2022.10.09 - 20:10

最后更新:2026.07.10 - 22:43

原始链接:https://tsuki419.github.io/Spring-Cloud-Oauth2.html

许可协议: 署名-非商业性使用-禁止演绎 4.0 国际 转载请保留原文链接及作者。

-------------THE END-------------
0%