概述¶
本网站提供 Spring Authorization Server 的参考文档和使用指南。
介绍 Spring 授权服务器¶
Spring Authorization Server 是一个框架,实现了 OAuth 2.1、OpenID Connect 1.0 以及其他相关规范。它构建在 Spring Security 之上,为构建 OpenID Connect 1.0 身份提供者(Identity Provider)和 OAuth2 授权服务器产品提供了一个安全、轻量且高度可定制的基础。
使用场景¶
下面列出了一些使用 Spring Authorization Server 的典型场景,以便与使用开源或商业的 OAuth2 或 OpenID Connect 1.0 Provider 产品进行对比:
- 当需要高级定制时,能够对配置和定制行为进行完全掌控。
- 相比功能繁多的商业产品,更倾向于使用轻量级的授权服务器。
- 在软件授权费用和/或托管成本方面具有潜在节省。
- 采用熟悉的 Spring 编程模型,在开发过程中能够快速启动并且易于使用。
功能列表¶
| 类别 | 功能 | 相关规范 |
|---|---|---|
授权许可类型 |
• 授权码 └─ 用户同意 • 客户端凭证 • 刷新令牌 • 设备码 └─ 用户同意 • 令牌交换 |
• 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) |
协议端点 |
• OAuth2 授权端点 • OAuth2 推送授权请求端点 • OAuth2 设备授权端点 • OAuth2 设备验证端点 • OAuth2 令牌端点 • OAuth2 令牌内省端点 • OAuth2 令牌撤销端点 • OAuth2 授权服务器元数据端点 • JWK 集合端点 • OpenID Connect 1.0 提供者配置端点 • OpenID Connect 1.0 登出端点 • OpenID Connect 1.0 用户信息端点 • 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 8414) • JSON Web Key (JWK) (RFC 7517) • OpenID Connect Discovery 1.0(规范) └─ 提供者配置端点 • OpenID Connect RP 发起的登出 1.0(规范) └─ 登出端点 • OpenID Connect Core 1.0(规范) └─ 用户信息端点 • OpenID Connect 动态客户端注册 1.0(规范) └─ 客户端注册端点 └─ 客户端配置端点 |