OAuth 2.1 授权服务器
OAuth 2.1 授权服务器特性为 OAuth 2.1 授权框架 中定义的授权服务器角色提供支持。
授权服务器功能实现了 OAuth 2.1 和 OpenID Connect 1.0 规范以及其他相关规范。它为构建 OpenID Connect 1.0 身份提供者和 OAuth 2.1 授权服务器产品提供了一个安全、轻量且可定制的基础。
使用场景
以下列表提供了使用 Spring Security Authorization Server 与使用开源或商业 OAuth2 或 OpenID Connect 1.0 提供商产品相比的一些使用场景。
-
当需要高级定制场景时,提供对配置和自定义的完全控制。
-
相较于包含所有“花哨功能”的商业产品,更倾向于轻量级的授权服务器。
-
可能节省软件许可和/或托管成本。
-
在开发过程中,使用熟悉的 Spring 编程模型,能够快速启动且易于使用。
功能列表
Spring Security 授权服务器支持以下功能:
| 类别 | 功能 | 相关规范 |
|---|---|---|
| 授权许可 | - 授权码 |
- 客户端凭证
- 刷新令牌
- 设备码
- 令牌交换| - OAuth 2.1 授权框架 (草案)
- 授权码许可
- 客户端凭证许可
- 刷新令牌许可
- OpenID Connect Core 1.0 (规范)
- 授权码流程
- OAuth 2.0 设备授权许可 (规范)
- 设备流程
- OAuth 2.0 令牌交换 (规范)
- 令牌交换流程 |
| 令牌格式| - 自包含式(JWT)
- 引用式(不透明令牌)| - JSON Web Token (JWT) (RFC 7519)
- JSON Web Signature (JWS) (RFC 7515) |
| 令牌类型| - DPoP绑定的访问令牌| - OAuth 2.0 持有证明演示 (DPoP) (RFC 9449) |
| 客户端认证| -client_secret_basic
-client_secret_post
-client_secret_jwt
-private_key_jwt
-tls_client_auth
-self_signed_tls_client_auth
-none(公共客户端)| - OAuth 2.1 授权框架(客户端认证)
- 用于 OAuth 2.0 客户端认证的 JSON Web Token (JWT) 配置文件(RFC 7523)
- OAuth 2.0 相互 TLS 客户端认证和证书绑定的访问令牌(RFC 8705)
- OAuth 公共客户端的代码交换证明密钥 (PKCE)(RFC 7636) |
| 协议端点| - OAuth 2.0 授权端点
- OAuth 2.0 推送式授权请求端点
- OAuth 2.0 设备授权端点
- OAuth 2.0 设备验证端点
- OAuth 2.0 令牌端点
- OAuth 2.0 令牌内省端点
- OAuth 2.0 令牌吊销端点
- OAuth 2.0 客户端注册端点
- OAuth 2.0 授权服务器元数据端点
- JWK 集端点
- OpenID Connect 1.0 提供方配置端点
- OpenID Connect 1.0 登出端点
- OpenID Connect 1.0 UserInfo 端点
- OpenID Connect 1.0 客户端注册端点| - OAuth 2.1 授权框架 (草案)
- 授权端点
- 令牌端点
- OAuth 2.0 推送式授权请求 (RFC 9126)
- 推送式授权请求端点
- OAuth 2.0 设备授权许可 (RFC 8628)
- 设备授权端点
- 设备验证端点
- OAuth 2.0 令牌内省 (RFC 7662)
- OAuth 2.0 令牌吊销 (RFC 7009)
- OAuth 2.0 动态客户端注册协议 (RFC 7591)
- OAuth 2.0 授权服务器元数据 (RFC 8414)
- JSON Web 密钥 (JWK) (RFC 7517)
- OpenID Connect Discovery 1.0 (规范)
- 提供方配置端点
- OpenID Connect RP-Initiated Logout 1.0 (规范)
- 注销端点
- OpenID Connect Core 1.0 (规范)
- 用户信息端点
- OpenID Connect Dynamic Client Registration 1.0 (规范)
- 客户端注册端点
- 客户端配置端点 |
章节总结
📄️ 入门指南
如果您是初次接触 Spring Security 授权服务器,以下章节将引导您创建第一个应用程序。
📄️ 配置模型
OAuth2AuthorizationServerConfiguration 是一个 @Configuration 配置类,它为 OAuth2 授权服务器提供了最简化的默认配置。
📄️ 核心模型 / 组件
RegisteredClient 是向授权服务器注册的客户端表示形式。客户端必须先向授权服务器注册,才能启动授权授予流程,例如 authorization\_code 或 client\_credentials。
📄️ 协议端点
OAuth2AuthorizationEndpointConfigurer 提供了自定义 OAuth2 授权端点的能力。它定义了多个扩展点,允许您自定义 OAuth2 授权请求的预处理、主处理和后处理逻辑。