投票:OAuth2.0 技术选型你会怎么选

标签: 投票 oauth2 技术 | 发表时间:2020-01-10 15:19 | 作者:码农小胖哥
出处:https://juejin.im/welcome/backend

1. 前言

在使用 OAuth2.0Authorization Server (授权服务器)是一个回避不了的设施,在大多数情况下我们调用的是一些知名的、可靠的、可信任的第三方平台,比如 QQ、微信、微博、github 等。我们的应用只作为 Client 进行注册接入即可。也就是说我们只需要实现 OAuth2.0 客户端的逻辑就可以了,无须关心授权服务器的实现。然而有时候我们依然希望构建自己的 Authorization Server。我们应该如何实现?今天不会讨论具体的技术细节,来谈谈 OAuth2.0 的技术选型。

2. Spring Security OAuth2 现状

在做 Spring Security 相关教程 的时候首先会考虑 Spring 提供的 OAuth2.0 功能。当我去 Spring 官网了解相关的类库时发现居然 SpringOAuth2.0 类库即将过期的通知,有图有真相:

总结以下就是 Spring Security OAuth 的模块即将过期,后续的功能已经迁移到 Spring Security 5.2.x 中,但是不会再提供 Authorization Server 的功能。 在官方声明中还提到, 当前 Spring Security OAuth 分支是 2.3.x2.4.x2.3.x版本将于 2020 年 3 月寿命终止。我们将在达到功能均等后至少一年支持 2.4.x 版本。因此鼓励用户开始将其旧版 OAuth 2.0 客户端和资源服务器应用程序迁移到 Spring Security 5.2 中的新支持。详细参见 官方博客.

3. 对 OAuth2.0 的技术选型

从上面的信息看来, Spring Security 未来依然提供 OAuth2客户端支持资源服务器支持授权服务器 将逐渐退出 Spring Security 的生态环境。所以如果没有授权服务器需求的情况下选择 Spring Security 依然是没有问题的,一旦有这个需求我们该如何选择?我这里调研了几个开源免费的项目。

3.1 keycloak

keycloakRedHat 公司出品。是一个致力于解决应用和服务身份验证与访问管理的开源工具。可以通过简单的配置达到保护应用和服务的目的。它提供了身份和访问管理的有用功能:

  • 单点登录( SSO),身份代理和第三方登录。
  • 支持 OpenID ConnectOAuth 2.0SAML 2.0 等标准协议。
  • 用户集中管理。
  • 客户端适配器,轻松保护应用程序和服务。
  • 可视化管理控制台和帐户管理控制台。
  • 可扩展性、高性能、快速实现落地。

文档比较完毕,而且是一个成熟的、免费的商业级产品。

3.2 Nimbus SDK

全称是 Nimbus OAuth 2.0 / OpenID Connect SDK,这是一个类库。Spring 官方在博客中提到可以使用该类库构建 Authorization Server,它同时支持 OAuth2.0OpenID Connect,比较完整地实现了这两个协议,而且针对补充协议也在积极的跟进。缺点在于中文教程不多而且是一个类库性质的。不过官方提供了 DEMO ,有能力的同学入门也不算难事。

3.3 Apache Oltu

Apache Oltu 是 Apache 基金会旗下的一个毕业项目。提供了 OAuth2.0 的常用实现,根据文档提供的信息来看上手还是比较简单的,模块化的提供了对 Authorization Server、Resource Server、Client、JOSE、 的支持。中文教程网上还是有不少的,缺点在于项目维护比较滞后,最新的版本是 2016 年发布的。

3.4 Vertx-auth-oauth2

vertx-auth-oauth2 属于 Vert.x 生态,提供了比较完整的 OAuth2.0 实现,而且项目维护比较活跃,唯一的缺点在于有技术栈的局限性。

4. 总结

针对 Java 的一些 OAuth2.0 技术选型参考就是上面几个了。不知道你会选择哪一个? 我在公众号: Felordcn 发起了一个关于 OAuth2.0 技术选型的投票,希望你能够参与。 投票传送门【复制链接到微信中打开投票】

关注公众号:Felordcn获取更多资讯

个人博客:https://felord.cn

相关 [投票 oauth2 技术] 推荐:

SPRING BOOT OAUTH2 + KEYCLOAK - service to service call

- - BlogJava-首页技术区
employee-service调用department-service,如果要按OAUTH2.0流程,只需要提供client-id和client-secrect即可. 在KEYCLOAK中引入service-account,即配置该employee-service时,取消standard-flow,同时激活service-account.

【转】oauth2开放认证协议原理及案例分析

- - 研发管理 - ITeye博客
OAuth认证协议原理分析及使用方法. ,虽然 OAuth2还没有正式发布,但是国内外的OAuth2的采用情况几乎要完全替代掉OAuth1.1了. 像淘宝、腾讯、人人网、百度开放平台就已经采用Oauth2,新浪微博也发来邮件说是要很快上马OAuth2,彻底替换掉OAuth1.1. ,最新的版本是 2011年7月25号发布的,协议变化还是很快的,所以看到国内的一些已经实现的实例,再比照官方的 oauth2,会有些出入的.

Spring security oauth2最简单入门环境搭建--二、干货

- - ITeye博客
关于OAuth2的一些简介,见我的上篇blog: http://wwwcomy.iteye.com/blog/2229889 PS:貌似内容太水直接被鹳狸猿干沉. 友情提示 学习曲线:spring+spring mvc+spring security+Oauth2基本姿势,如果前面都没看过请及时关闭本网页.

使用OAUTH2+Zuul实现认证和授权 GitHub - wiselyman/uaa-zuul:

- -
在 Spring Cloud需要使用 OAUTH2来实现多个微服务的统一认证授权,通过向 OAUTH服务发送某个类型的 grant type进行集中认证和授权,从而获得 access_token,而这个token是受其他微服务信任的,我们在后续的访问可以通过 access_token来进行,从而实现了微服务的统一认证授权.

SpringBoot 整合 oauth2(三)实现 token 认证 - 简书

- -
关于session和token的使用,网上争议一直很大. session是空间换时间,而token是时间换空间. session占用空间,但是可以管理过期时间,token管理部了过期时间,但是不占用空间.. sessionId失效问题和token内包含. session基于cookie,app请求并没有cookie.

投票:OAuth2.0 技术选型你会怎么选

- - 掘金后端
在使用 OAuth2.0 中 Authorization Server (授权服务器)是一个回避不了的设施,在大多数情况下我们调用的是一些知名的、可靠的、可信任的第三方平台,比如 QQ、微信、微博、github 等. 我们的应用只作为 Client 进行注册接入即可. 也就是说我们只需要实现 OAuth2.0 客户端的逻辑就可以了,无须关心授权服务器的实现.

使用Spring Security Oauth2完成RESTful服务password认证的过程 - 王安琪

- - 博客园_首页
        摘要:Spring Security与Oauth2整合步骤中详细描述了使用过程,但它对于入门者有些重量级,比如将用户信息、ClientDetails、token存入数据库而非内存. 配置过程比较复杂,经过几天时间试验终于成功,下面我将具体的使用Spring Security Oauth2完成password认证的过程记录下来与大家分享.

Apache投票接受OpenOffice.org

- 灰灰 - Solidot
甲骨文已宣布将开源办公软件项目OpenOffice.org捐赠给Apache基金会. 6月13日,Apache基金会进行了投票表决,以压倒性多数同意接受OpenOffice.org成为Apache的一个孵化器项目. OpenOffice.org将转交给Apache基金会管理,它可能需要数个月时间才能变成Apache的新顶级项目.

投票的过程好…

- 俊超 - 爱胡扯
投票的过程好…太能创意了吧,这也行.

ChinaMode2010评选活动投票入围公司及投票

- scaoen - 天涯海阁-Web2.0Share
之前我总结了我今年在博客介绍的2010年优秀初创企业,颇受欢迎. 而最近由我们Chinamode组织的由用户来提名和专家评审来评审的评选活动经过3周时间,目前已经评选出第二阶段投票阶段的入围公司,现汇总如下,其中不乏一些非常优秀的互联网/移动互联网初创企业,大家可以到Chinamode首页进行投票选择每个类别您最喜欢的公司.