放弃密码模式吧,最先进的Spring Cloud认证授权方案在这里

旧的Spring Security OAuth2停止维护已经有一段时间了,99%的Spring Cloud微服务项目还在使用这些旧的体系,严重青黄不接。很多同学都在寻找新的解决方案,甚至还有念念不忘密码模式的,别想了,已经凉透了。今天看到这篇文章的同学有福了,问题将在这里得到解决。

仓库地址https://github.com/NotFound403/id-server

方案

目前这应该是Spring生态中最新的解决方案,没有之一。先看下流程,微服务无关的其它的组件这里先屏蔽了,剩下图的几个组件:

详细流程为

  • ①用户向网关请求登录或者通过网关请求资源服务器的资源。
  • ②网关发现用户没有授权发起基于OAuth2授权码的OIDC流程,向授权服务器Id Server发起授权请求。
  • ③授权服务器Id Server收到授权请求重定向到用户登录页面要求用户登录认证,以发起授权。
  • ④用户输入用户名密码进行登录认证。
  • ⑤Id Server授权服务器处理用户认证并重定向到网关约定的OAuth2 Redirect URI,这个过程属于标准的OIDC授权码流程。
  • ⑥网关获得AccessToken
  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
1. 授权模式 授权模式是 OAuth2 中最常用的授权模式之一,适用于需要用户登录授权的场景。在该模式下,客户端会将用户引导到授权服务器,用户登录授权后,授权服务器会将授权码返回给客户端,并要求客户端使用该授权码向授权服务器请求访问令牌。 集成步骤: 1)引入 spring-cloud-starter-oauth2 依赖 2)配置授权服务器,包括 client-id、client-secret、授权类型、授权范围等信息 3)配置资源服务器,包括拦截器、资源控制等信息 4)实现用户登录、授权、获取令牌等功能 2. 密码模式 密码模式适用于内部系统之间的调用,不需要用户登录授权。在该模式下,客户端会向授权服务器发送用户名和密码授权服务器验证通过后,将令牌返回给客户端。 集成步骤: 1)引入 spring-cloud-starter-oauth2 依赖 2)配置授权服务器,包括 client-id、client-secret、授权类型、授权范围等信息 3)配置资源服务器,包括拦截器、资源控制等信息 4)实现获取令牌等功能 3. 短信验证码模式 短信验证码模式适用于移动端应用,用户通过手机号码获取验证码,然后使用验证码进行授权。在该模式下,客户端会向授权服务器发送手机号码和验证码,授权服务器验证通过后,将令牌返回给客户端。 集成步骤: 1)引入 spring-cloud-starter-oauth2 依赖 2)配置授权服务器,包括 client-id、client-secret、授权类型、授权范围等信息 3)配置资源服务器,包括拦截器、资源控制等信息 4)实现获取验证码、验证验证码、获取令牌等功能 4. 验证码模式 验证码模式适用于 Web 应用,用户通过输入验证码进行授权。在该模式下,客户端会向授权服务器发送用户名、密码和验证码,授权服务器验证通过后,将令牌返回给客户端。 集成步骤: 1)引入 spring-cloud-starter-oauth2 依赖 2)配置授权服务器,包括 client-id、client-secret、授权类型、授权范围等信息 3)配置资源服务器,包括拦截器、资源控制等信息 4)实现获取验证码、验证验证码、获取令牌等功能
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值