zoukankan      html  css  js  c++  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/11/14/spring-security-oauth-2-0-roadmap-update

    大概的意思是:

    Spring Security 项目用来支持授权服务器不是一个合适的选择,因为授权服务器需要一个库来进行构建,而 Spring Security 作为一个框架,不适合用来参与构建库或产品,市面上又有大量商业和开源授权服务器可以选择,因此,Spring Security 团队决定不再提供对授权服务器的支持。。


    另外,在 2018 年初,Spring 就宣布了 Spring Security OAuth 项目正式进入维护模式,并且计划在不久的将来会彻底停止支持。

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

    https://projects.spring.io/spring-security-oauth/docs/oauth2.html

    可以看到弃用通知:

    Spring Security OAuth 项目已经被弃用了,最新的 OAuth 2.0 支持由 Spring Security 项目提供,有关更多详细信息,请参阅 OAuth 2.0 迁移指南:

    https://github.com/spring-projects/spring-security/wiki/OAuth-2.0-Migration-Guide

    即使 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/04/15/announcing-the-spring-authorization-server

    这是由 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开发手册(嵩山版)》最新发布,速速下载!

    觉得不错,别忘了随手点赞+转发哦!

  • 相关阅读:
    Learning to Segment Every Thing(偏监督学习)
    特征金字塔-Feature Pyramid Networks for Object Detection
    Mask R-CNN翻译
    04.卷积神经网络_第一周卷积神经网络
    对极几何
    hdu 3572 Task Schedule【 最大流 】
    uva 11624 Fire! 【 BFS 】
    hdu 3549 Flow Problem 【最大流】
    codeforces 277 A Learning Languages 【DFS 】
    poj 2828 Buy Tickets【线段树 单点更新】
  • 原文地址:https://www.cnblogs.com/javastack/p/15202904.html
Copyright © 2011-2022 走看看