
Spring Authorization Server
文章平均质量分 85
markix
什么问题,什么结果,预期结果?
展开
-
【Spring Authorization Server 系列】(一)入门篇,快速搭建一个授权服务器
Spring Authorization Server是一个框架,提供了OAuth2.1和OpenIDConnect1.0规范以及其他相关规范的实现。它建立在SpringSecurity之上,为构建OpenIDConnect1.0IdentityProviders和OAuth2AuthorizationServer产品提供安全、轻量级和可定制的基础。旧版的框架是,该框架已停止维护。SpringSecurityOAuth2认证/授权服务器的前世今生。...............原创 2022-08-01 00:50:55 · 10886 阅读 · 16 评论 -
Spring 对 OAuth 的实现及前世今生
Spring 对 OAuth 的实现,从最初的 Spring Security OAuth,到如今的 Spring Security 和 Spring Authorization Server原创 2022-08-16 09:30:00 · 724 阅读 · 1 评论 -
2 令牌的配置(有效期 & 格式)
在实际配置中,令牌的配置是以客户端的粒度区分的,也就是不同客户端可以指定不同的令牌有效期和令牌格式。令牌的配置实际上就是客户端的属性:RegisteredClient.tokenSettings。令牌支持两种格式:自包含(JWT)和引用(Opaque)。自包含令牌使用受保护的、有时间限制的数据结构,其中包含令牌元数据和用户和/或客户端的声明。JSON Web Token (JWT) 是一种广泛使用的格式。引用令牌是唯一标识符,用作对令牌元数据和用户和/或客户端声明的引用,存储在提供者处。......原创 2022-08-07 00:24:22 · 1682 阅读 · 0 评论 -
3 JWT 和 JWS
JSON Web Token (JWT) 是一个开放标准 (RFC 7519),它定义了一种紧凑且自包含的方式,用于在各方之间传输信息(Claims)。这些信息以JSON格式定义。JWT 可以理解为是一个规范。实际上,具体的实现方案有 JWS(JSON Web Signature) 和 JWE(JSON Web Encryption)。......原创 2022-08-29 01:10:16 · 1352 阅读 · 0 评论 -
4 JWS 的签名方式
JWS 签名算法有三种:- HMAC【哈希消息验证码(对称)】(HS256/HS384/HS512)- RSASSA【RSA签名算法(非对称)】(RS256/RS384/RS512)- ECDSA【椭圆曲线数据签名算法(非对称)】(ES256/ES384/ES512)原创 2022-08-31 23:35:35 · 1758 阅读 · 0 评论 -
5 客户端认证 OAuth2ClientAuthenticationFilter
当访问 OAuth2 相关接口时,授权服务器需要进行客户端认证。Spring Authorization Server 支持如下五种客户端认证方式:client_secret_basic、client_secret_post、client_secret_jwt、private_key_jwt、none (public clients)。核心拦截器为 OAuth2ClientAuthenticationFilter原创 2022-09-01 00:28:52 · 3536 阅读 · 6 评论 -
6 客户端认证方式 之 client_secret_basic & client_secret_post
client_secret_basic 和 client_secret_post 认证方式都是将客户端的 client_id 和 client_secret 传递给授权服务器,授权服务器接收到请求,则根据不同的认证方式从请求中解析出来客户端信息,对 client_secret 进行验证。原创 2022-09-28 08:30:00 · 6252 阅读 · 0 评论 -
7 客户端认证方式 之 client_secret_jwt
`client_secret_jwt`方式就是利用 `JWT` 进行认证。请求方和授权服务器,两者都知道客户端的 `client_secret`,通过相同的 `HMAC` 算法(对称签名算法)去加签和验签 `JWT` ,可以达到客户端认证的目的。原创 2022-09-28 23:42:07 · 3233 阅读 · 8 评论 -
8 客户端认证方式 之 private_key_jwt
private_key_jwt 方式就是利用 JWT 进行认证。请求方拥有自己的公私钥(密钥对),使用私钥对 JWT 加签,并将公钥暴露给 授权服务器。授权服务器通过请求方的公钥验证 JWT。也能达到客户端认证的目的。原创 2022-09-29 10:56:04 · 1948 阅读 · 3 评论 -
9 客户端认证方式 之 PKCE
PKCE 是授权码流程的扩展,用于防止 CSRF 和授权码(code)注入攻击。 所以 PKCE 一般都伴随着授权码模式使用,可称之为 增强版授权码流程,又称 Authorization Code with PKCE Flow。用于公共客户端的认证...原创 2022-09-30 16:31:32 · 2790 阅读 · 1 评论 -
10 令牌颁发 OAuth2TokenEndpointFilter
授权服务器提供令牌颁发接口(/oauth2/token),由客户端发起请求,授权服务器生成访问令牌(access_token)返回,客户端使用此令牌才能去调用资源服务器的接口。Spring Authorization Server 目前支持如下三种令牌颁发策略:Authorization Code、Client Credentials、Refresh Token,分别对应 授权码模式、客户端凭证模式、刷新令牌模式。核心拦截器为 OAuth2TokenEndpointFilter原创 2022-10-09 15:54:41 · 2023 阅读 · 5 评论 -
11 令牌颁发方式 之 客户端凭证模式
客户端凭证模式就是只需要客户端信息,只要通过了客户端认证那一关,就能拿到令牌。原创 2022-10-09 17:06:08 · 959 阅读 · 0 评论 -
12 令牌颁发方式 之 授权码模式
授权码模式的流程:1. 客户端发起授权请求 -> 2. 用户授权 -> 3. 客户端拿到授权码code -> 4. 客户端通过code获取token原创 2022-10-09 18:22:46 · 1094 阅读 · 0 评论 -
13 令牌颁发方式 之 刷新令牌
在授权码模式颁发令牌时,当发现该客户端支持 REFRESH_TOKEN 模式时,还会返回刷新令牌。客户端可以使用刷新令牌(refresh token)重新获取访问令牌(access token)。(一般来说访问令牌时效会比较短,刷新令牌时效比较长,通过刷新令牌获取访问令牌可以避免多次授权)原创 2022-10-10 10:28:13 · 1128 阅读 · 2 评论 -
14 异常处理 & 日志
很多异常信息都是简化的信息,很难直观看出根本原因,而且后台还没有打印异常日志。笔者通过 debug 来查看异常日志。原创 2022-10-27 14:37:29 · 673 阅读 · 0 评论 -
15 Spring Security OAuth2登录(三方登录)
OAuth2可以用来实现 OAuth2登录(三方登录)。在OAuth2登录的场景中,用户信息则是"资源"!Spring Security 实现了 OAuth2登录功能。实现原理是:Client获取用户授权,得到令牌,通过令牌,获取用户信息(资源)。再在本地构建用户登录认证信息,维持用户会话状态,以此达到登录的目的。原创 2022-10-28 14:06:10 · 3048 阅读 · 5 评论 -
16 OAuth2登录流程分析
Client获取用户授权,得到令牌,通过令牌,获取用户信息(资源)。再在本地构建用户登录认证信息,维持用户会话状态,以此达到登录的目的。OAuth2AuthorizationRequestRedirectFilter、OAuth2LoginAuthenticationFilter原创 2022-10-28 15:31:13 · 1713 阅读 · 0 评论 -
17 微信OAuth2授权登录
利用 微信OAuth2网页授权 实现登录功能。原创 2022-10-31 11:33:07 · 3039 阅读 · 2 评论