您的位置:首页 >聚焦 >

久等|全面拥抱Spring全新OAuth解决方案

2022-06-10 08:44:08    来源:程序员客栈

PIG 微服务开发平台v3.5 发布,正式支持Spring Authorization Server

以下全文 Spring Authorization Server 简称为: SAS

本文以PIG 微服务[1]开发平台为演示,适用于 Spring Security OAuth 2.3 <-> 2.5 的认证中心迁移

背景Spring 团队正式宣布 Spring Security OAuth 停止维护,该项目将不会再进行任何的迭代目前 Spring 生态中的 OAuth2 授权服务器是 Spring Authorization Server 已经可以正式生产使用作为 SpringBoot 3.0 的过渡版本 SpringBoot 2.7.0 过期了大量关于 SpringSecurity 的配置类,如沿用旧版本过期配置无法向上升级。迁移过程① Java 1.8 支持

目前最新的 SAS 0.3 基于 Java 11 构建,低版本 Java 无法使用

经过和 Spring Security 官方团队的沟通 0.3.1 将继续兼容 Java 1.8

我们联合 springboot 中文社区编译了适配 java 1.8 的版本坐标如下

io.springboot.securityspring-security-oauth2-authorization-server0.3.0

② 授权模式扩展

扩展支持密码模式,SAS 基于 oauth 2.1 协议不支持密码模式

扩展支持短信登录

③ Redis 令牌存储
支持Redis存储 令牌

官方目前没有提供基于 Redis 令牌持久化方案

PIG 扩展 PigRedisOAuth2AuthorizationService 支持

④ Token 输出格式化使用自省令牌的情况下 默认实现为

ku4R4n7YD1f584KXj4k_3GP9o-HbdY-PDIIh-twPVJTmvHa5mLIoifaNhbBvFNBbse6_wAMcRoOWuVs9qeBWpxQ5zIFrF1A4g1Q7LhVAfH1vo9Uc7WL3SP3u82j0XU5x

默认实现
为方便结合 redis 高效检索 token ,结合 RDM 分组也可以更方便的图形化观察

统一前缀::令牌类型::客户端ID::用户名::uuid

@BeanpublicOAuth2TokenGeneratoroAuth2TokenGenerator(){CustomeOAuth2AccessTokenGeneratoraccessTokenGenerator=newCustomeOAuth2AccessTokenGenerator();//注入Token增加关联用户信息accessTokenGenerator.setAccessTokenCustomizer(newCustomeOAuth2TokenCustomizer());returnnewDelegatingOAuth2TokenGenerator(accessTokenGenerator,newOAuth2RefreshTokenGenerator());}

⑤ Token 输出增强使用自省令牌,默认情况下输出的 Token 格式

{"access_token":"xx","refresh_token":"xx","scope":"server","token_type":"Bearer","expires_in":43199}

Token 增强输出关联用户信息

{"sub":"admin","clientId":"test","access_token":"xx","refresh_token":"xx","license":"https://pig4cloud.com","user_info":{"username":"admin","accountNonExpired":true,"accountNonLocked":true,"credentialsNonExpired":true,"enabled":true,"id":1,"deptId":1,"phone":"17034642999","name":"admin","attributes":{}}}

⑥ 授权码模式个性化
注入自定义confirm
基于授权码的开发平台
⑦ 资源服务器自省方案扩展支持资源资源服务器本地查询
默认的资源服务器自省模式
扩展资源服务器本地自省
扩展资源服务器本地自省

- 优势:1. 用户状态实时更新 2. 减少网络调用提升性能

参考资料[1]

PIG 微服务: https://github.com/pig-mesh/pig

关键词: 认证中心 解决方案 参考资料

相关阅读