乐趣区

关于java:再见Spring-Security-OAuth

官宣新品

最近,Spring 官网又推出了《Spring Authorization Server》我的项目:

本次将《Spring Authorization Server》我的项目正式上线,去掉了之前的体验状态,此举恰逢 0.2.0 版本公布,这也是第一个正式反对的生产就绪版本。

我的项目前身

首先来看一则 2019 年 的 Spring Security OAuth 2.0 路线更新图阐明:

Spring Security OAuth 2.0 Roadmap Update

https://spring.io/blog/2019/1…

大略的意思是:

Spring Security 我的项目用来反对受权服务器不是一个适合的抉择,因为受权服务器须要一个库来进行构建,而 Spring Security 作为一个框架,不适宜用来参加构建库或产品,市面上又有大量商业和开源受权服务器能够抉择,因而,Spring Security 团队决定不再提供对受权服务器的反对。。


另外,在 2018 年初,Spring 就发表了 Spring Security OAuth 我的项目正式进入保护模式,并且打算在不久的未来会彻底进行反对。

咱们进入 Spring Security OAuth 我的项目主页:

https://projects.spring.io/sp…

能够看到弃用告诉:

Spring Security OAuth 我的项目曾经被弃用了,最新的 OAuth 2.0 反对由 Spring Security 我的项目提供,无关更多详细信息,请参阅 OAuth 2.0 迁徙指南:

https://github.com/spring-pro…

即便 Spring Security OAuth 我的项目被 Spring Security 我的项目接管了,但 Spring Security 仍旧不再蕴含对受权服务器的反对,你能够用商用的、开源的,或者本人搭建,反正 Spring 不再提供了,纯正的只做框架了。。

我的项目背景

Spring 弃用受权服务器之后,社区、博客上的反馈、Gitter 中的探讨和 GitHub 中的评论反应热烈,统一强烈要求 Spring 提供对受权服务器的反对,Spring 预计也是顶不住压力了,或者真的意识到 Spring 生态的确是须要受权服务器这玩意。。

于是在 2020/04/15 这天,Spring 团队又发表新起《Spring Authorization Server》我的项目,以持续提供对 Spring 受权服务器的反对。

https://spring.io/blog/2020/0…

这是由 Spring Security 团队领导的社区驱动我的项目,专一于为 Spring 社区提供受权服务器反对,该我的项目也开始替换了 Spring Security OAuth 提供的对于 Authorization Server 的反对。

残缺性能列表:

  • The OAuth 2.0 Authorization Framework

    • Authorization Grant

      • Authorization Code
      • Client Credentials
      • Refresh Token
    • Client Authentication

      • HTTP Basic
      • HTTP POST
    • User Consent

      • Authorization Code Grant
  • Proof Key for Code Exchange by OAuth Public Clients (PKCE)
  • OAuth 2.0 Token Revocation
  • OAuth 2.0 Token Introspection
  • OAuth 2.0 Authorization Server Metadata
  • JSON Web Token (JWT)
  • JSON Web Signature (JWS)
  • JSON Web Key (JWK)
  • OpenID Connect Core 1.0

    • Authorization Code Flow
  • OpenID Connect Discovery 1.0

    • Provider Configuration Endpoint
  • OpenID Connect Dynamic Client Registration 1.0

    • Client Registration Endpoint

行将到来的性能:

  • JSON Web Token (JWT) Profile for OAuth 2.0 Client Authentication and Authorization Grants
  • OAuth 2.0 Mutual-TLS Client Authentication and Certificate-Bound Access Tokens
  • OpenID Connect Core 1.0

    • UserInfo Endpoint
  • OAuth 2.0 Token Exchange

这部分这里就不开展介绍了,后续栈长有工夫会进行具体的实践+实战,关注公众号 Java 技术栈,第一工夫推送。

为什么须要受权服务器?

这个你须要理解下 OAuth2.0 协定,它定义了四个角色:

  • Client:客户端,即申请受权用户资源的第三方应用程序;
  • Resource Owner:资源所有者,受权 Client 拜访其帐户的用户;
  • Authorization server: 受权服务器,即服务商用于解决用户受权认证的服务器;
  • Resource server:资源服务器,即服务商提供用户受爱护资源的服务器;

另外,OAuth2.0 反对四种运行模式:

  • 受权码模式
  • 隐式受权模式
  • 明码模式
  • 客户端模式

但个别咱们应用较多的还是 受权码模式

受权码模式运行流程如下:

流程阐明:

1、客户端申请用户给予受权;

2、用户批准给予客户端受权,并返回受权码;

3、客户端通过受权码再向认证服务器申请令牌;

4、认证服务器对客户端进行认证并返回令牌;

5、客户端应用令牌向资源服务器获取资源;

6、资源服务器验证令牌,并返回资源;


如流程所示,OAuth2 受权码模式的运行流程就少不了 Authorization Server(受权服务器),受权服务器用于受权认证,以及对 Access Token(令牌)的发放、治理、撤消等。

受权服务器能够和资源服务器在不同的服务器,也能够是同一台服务器。

总结

Spring 官网在 2020/04 才发表搞《Spring Authorization Server》这个我的项目,才一年多工夫就能够上线应用了,效率杠杠的啊,团队的指标也很明确,就是要使《Spring Authorization Server》我的项目最终成为 Java 平台上 OAuth 2 Authorization Server 事实上的规范框架。

好了,明天的分享就到这了,前面栈长还会陆续解读更多的 Java 支流技术,关注公众号 Java 技术栈第一工夫推送。另外,我也将 Spring 系列支流面试题和参考答案都整顿好了,关注公众号 Java 技术栈回复关键字 “ 面试 ” 进行刷题。

最初,感觉我的文章对你用播种的话,动动小手,给个在看、转发,原创不易,栈长须要你的激励。

版权申明:本文系公众号 “Java 技术栈 ” 原创,原创实属不易,转载、援用本文内容请注明出处,禁止剽窃、洗稿,请自重,尊重大家的劳动成果和知识产权,剽窃必究。

近期热文举荐:

1.1,000+ 道 Java 面试题及答案整顿(2021 最新版)

2. 别在再满屏的 if/ else 了,试试策略模式,真香!!

3. 卧槽!Java 中的 xx ≠ null 是什么新语法?

4.Spring Boot 2.5 重磅公布,光明模式太炸了!

5.《Java 开发手册(嵩山版)》最新公布,速速下载!

感觉不错,别忘了顺手点赞 + 转发哦!

退出移动版