Spring Authorization Server 1.0 提供 OAuth 2.1 和 OpenID Connect 1.0 实现

Spring Authorization Server 1.0 发布概述

VMware在引入Spring Authorization Server两年半后,正式发布了1.0版本。该项目基于Spring Security,支持创建OpenID Connect 1.0身份提供者和OAuth 2.1授权服务器,取代了不再维护的Spring Security OAuth项目。

主要特性与技术栈

  • 技术栈:Spring Authorization Server基于Spring Framework 6.0,要求Java 17作为最低版本。
  • 核心功能:支持授权许可、令牌格式、客户端认证和协议端点等功能。

示例应用配置

通过Spring Initializr创建的Spring Boot应用示例展示了基本配置。示例应用基于REST,需要在pom.xml中添加spring-boot-starter-web依赖。

示例代码

  • REST端点:创建一个简单的REST端点来返回当前时间。
  • 应用启动类:使用Spring Boot启动应用。

添加Spring Authorization Server依赖

pom.xml中添加spring-security-oauth2-authorization-server依赖后,启动应用时会生成并记录默认的安全密码。

登录功能演示

访问/time端点时,请求会被重定向到登录页面。使用默认用户名user和记录的密码登录后,请求会重定向回/time?continue并显示时间。

开发第一个应用

文档详细介绍了在配置类中定义多个@Bean组件,这些组件是Spring Authorization Server所必需的。

关键Bean定义

  1. 协议端点过滤器链:定义OAuth2协议端点的默认安全配置。
  2. 认证过滤器链:定义Spring Security的认证配置。
  3. 用户详情服务:简化示例中在内存中存储用户信息。
  4. 注册客户端仓库:在内存中注册新客户端。
  5. JWK源:使用RSA密钥对生成和签名访问令牌。
  6. Jwt解码器:解码签名的访问令牌。
  7. 授权服务器设置:配置OAuth2授权服务器。

扩展功能

应用可以进一步扩展以使用各种OAuth2和OpenID Connect 1.0功能,如令牌管理等。

资源与支持

  • 视频教程:由Spring Security团队的核心贡献者Joe Grandja和《Spring Security in Action》作者Laurentiu Spilca提供的详细讲解视频。
  • 支持政策:根据VMware Tanzu开源软件支持政策,主要版本支持长达三年,VMware还提供商业24/7支持。
  • 更多信息:可以通过《入门指南》、参考文档和GitHub上的示例获取更多信息。
阅读 29
0 条评论