投票:OAuth2.0 技术选型你会怎么选
2020-01-10 16:02:55来源:博客园 阅读 ()
投票:OAuth2.0 技术选型你会怎么选
1. 前言
在使用 OAuth2.0 中 Authorization Server (授权服务器)是一个回避不了的设施,在大多数情况下我们调用的是一些知名的、可靠的、可信任的第三方平台,比如 QQ、微信、微博、github 等。我们的应用只作为 Client 进行注册接入即可。也就是说我们只需要实现 OAuth2.0 客户端的逻辑就可以了,无须关心授权服务器的实现。然而有时候我们依然希望构建自己的 Authorization Server。我们应该如何实现?今天不会讨论具体的技术细节,来谈谈 OAuth2.0 的技术选型。
2. Spring Security OAuth2 现状
在做 Spring Security 相关教程 的时候首先会考虑 Spring 提供的 OAuth2.0 功能。当我去 Spring 官网了解相关的类库时发现居然 Spring 的 OAuth2.0 类库即将过期的通知,有图有真相:
总结以下就是 Spring Security OAuth 的模块即将过期,后续的功能已经迁移到 Spring Security 5.2.x 中,但是不会再提供 Authorization Server 的功能。 在官方声明中还提到, 当前 Spring Security OAuth 分支是 2.3.x
和 2.4.x
。2.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
keycloak是 RedHat 公司出品。是一个致力于解决应用和服务身份验证与访问管理的开源工具。可以通过简单的配置达到保护应用和服务的目的。它提供了身份和访问管理的有用功能:
- 单点登录(SSO),身份代理和第三方登录。
- 支持 OpenID Connect,OAuth 2.0 和 SAML 2.0 等标准协议。
- 用户集中管理。
- 客户端适配器,轻松保护应用程序和服务。
- 可视化管理控制台和帐户管理控制台。
- 可扩展性、高性能、快速实现落地。
文档比较完毕,而且是一个成熟的、免费的商业级产品。
3.2 Nimbus SDK
全称是 Nimbus OAuth 2.0 / OpenID Connect SDK,这是一个类库。Spring 官方在博客中提到可以使用该类库构建 Authorization Server,它同时支持 OAuth2.0 和 OpenID 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 技术选型的投票,希望你能够参与。投票传送门【复制链接到微信中打开投票】
原文链接:https://www.cnblogs.com/felordcn/p/12178682.html
如有疑问请与原作者联系
标签:
版权申明:本站文章部分自网络,如有侵权,请联系:west999com@outlook.com
特别注意:本站所有转载文章言论不代表本站观点,本站所提供的摄影照片,插画,设计作品,如需使用,请与原作者联系,版权归原作者所有
- jdk各个版本下载 2020-06-11
- 我被炒鱿鱼了 2020-06-06
- 秒杀系统必须考虑的 3 个技术问题! 2020-06-05
- 最新四面京东拿offer回来分享面试经验总结(技术三面+HR面) 2020-06-04
- 微服务平台技术架构 2020-06-02
IDC资讯: 主机资讯 注册资讯 托管资讯 vps资讯 网站建设
网站运营: 建站经验 策划盈利 搜索优化 网站推广 免费资源
网络编程: Asp.Net编程 Asp编程 Php编程 Xml编程 Access Mssql Mysql 其它
服务器技术: Web服务器 Ftp服务器 Mail服务器 Dns服务器 安全防护
软件技巧: 其它软件 Word Excel Powerpoint Ghost Vista QQ空间 QQ FlashGet 迅雷
网页制作: FrontPages Dreamweaver Javascript css photoshop fireworks Flash