很快啊Spring Authorization Server又發新版本了,現在的版本是0.2.3,本次都有什么改動呢?我們來了解一下,
0.2.3版本特性
本次更新的新特性不少,
為公開客戶端提供默認的設定
根據RFC6479,包含授權碼(authorization_code)授權并且客戶端認證方式ClientAuthenticationMethod只有一種,為none的客戶端都是公開(Public)客戶端,反之就是機密(Confidential)客戶端,
在0.2.3中,為公開的客戶端提供了客戶端默認配置ClientSettings,
if (this.clientSettings == null) {
ClientSettings.Builder builder = ClientSettings.builder();
if (isPublicClientType()) {
// @formatter:off
builder
.requireProofKey(true)
.requireAuthorizationConsent(true);
// @formatter:on
}
this.clientSettings = builder.build();
}
這里多說點,公開客戶端現在不單純是authorization_code模式授權,必須加上PKCE,
OAuth2ClientAuthenticationProvider被細分
Spring Authorization Server目前支持的客戶端認證方式有:
client_secret_basicclient_secret_postclient_secret_jwtprivate_key_jwtnone
之前由OAuth2ClientAuthenticationProvider 一手包辦,現在職責分離了,
JwtClientAssertionAuthenticationProvider
負責private_key_jwt和client_secret_jwt,具體細節請關注我的專欄,
目前胖哥已經實作了完整的private_key_jwt認證的DEMO,
ClientSecretAuthenticationProvider
默認的client_secret_basic和client_secret_post由它負責,
PublicClientAuthenticationProvider
處理上面所說的公開客戶端的認證方式,
InMemoryOAuth2AuthorizationService優化
主要優化了對未完成授權資訊OAuth2Authorization存盤的淘汰策略,如果記憶體中存盤的數量超過100,會把最老存盤的資訊淘汰掉,
增加了聯合身份的DEMO
Federated Identity Pattern (聯合身份模式)舉個例子,你同時對接了好幾個身份提供商(IDP),你都需要跳不同的授權服務器頁面并輸入對應的密碼,現在這些IDP可以都放在Spring Authorization Server下面,委托給Spring Authorization Server來處理身份認證授權,這樣你不用跳來跳去了,只需要維護Spring Authorization Server中IDP的關系了,
請注意該功能不是Spring Authorization Server本身自帶的功能,
OAuth2TokenGenerator
0.2.3抽象了OAuth2Token的的生成模型:
@FunctionalInterface
public interface OAuth2TokenGenerator<T extends OAuth2Token> {
@Nullable
T generate(OAuth2TokenContext context);
}
OAuth2授權碼使用統一的Token生成模型
授權碼授權中的code的生成現在也需要由OAuth2TokenGenerator實作,實作類為OAuth2AuthorizationCodeGenerator,
OAuth2重繪Token使用統一的Token生成模型
OAuth2重繪令牌 OAuth2RefreshToken現在同樣需要由OAuth2TokenGenerator實作,
JWT的生成使用統一的模型
現在JWT的生成也由OAuth2TokenGenerator來實作,具體的實作類為JwtGenerator,
支持不透明令牌
現在你可以自定義一個OAuth2TokenGenerator并注入到Spring IoC來實作自定義的令牌生成邏輯,這意味著不透明令牌也可以通過自定義來實作,
令牌自省過濾器配置現在可以自定義
0.2.3版本之前令牌自省的配置由OAuth2AuthorizationServerConfigurer負責,現在它由獨立的配置類OAuth2TokenIntrospectionEndpointConfigurer負責,
依賴升級
0.2.3也對部分的依賴進行了升級,具體為:
- 更新到Reactor 2020.0.16
- 更新到Spring Security 5.5.5
- 更新到Spring Framework 5.3.16
- 更新到Spring Boot 2.5.10
胖哥也將跟進變化,對依賴進行逐步升級,
關注公眾號:Felordcn 獲取更多資訊
個人博客:https://felord.cn
|
博主:碼農小胖哥 出處:felord.cn 本文著作權歸原作者所有,不可商用,轉載需要宣告出處,否則保留追究法律責任的權利,如果文中有什么錯誤,歡迎指出,以免更多的人被誤導, |
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/449743.html
標籤:Java
