JAP 1.0.1 以及 《JAP产品技术白皮书》正式发布
共 3628字,需浏览 8分钟
·
2021-04-22 13:42
JAP 1.0.1 以及 《JAP产品技术白皮书》正式发布
快讯
1.JAP 1.0.1 正式发布2.《JAP产品技术白皮书》正式发布。立即获取:白皮书[1]
JAP 1.0.1 版本内容
新增功能/支持
•添加 com.fujieid.jap.core.util.RequestUtil
•完成jap-ids
模块
jap-ids
是基于 RFC6749[2]、RFC7636[3]、RFC7033[4]等标准协议和 OpenID Connect Core 1.0[5] 认证协议,实现的一款轻量级、业务解耦、开箱即用的新一代国产授权认证框架。
此处附上我精心绘制的jap-ids
业务流程图:
如果图片模糊不清(可能被平台压缩),你可以在“码一码”公众号中回复“ids”获得以上业务流程图。
jap-ids 目前已支持以下功能:
•授权码模式(Authorization Code Grant)•授权码-PKCE模式(Proof Key for Code Exchange)•隐式授权模式(Implicit Grant)•密码授权模式(Resource Owner Password Credentials Grant)•客户端授权模式(Client Credentials Grant)•刷新 access_token•回收 access_token•获取当前授权用户的基本信息•校验登录状态•异常响应•退出登录•服务发现(OpenID Connect Discovery)•JWK 端点(JWKS)•JWK 令牌颁发•自定义 JWT 加解密证书•全场景 response type 支持(
code
、token
、id_token
、id_token token
、code id_token
、code token
、code id_token token
)•等
关于 jap-ids
的更多使用详情,请参考示例项目:jap-ids-demo[6],或者查阅文档:IDS OAuth 2.0 服务端[7]
代码修改/优化
•[jap-oidc] 优化 OidcStrategy#authenticate
方法,缓存 OidcDiscoveryDto
,减少不必要的 http 请求•[jap-oidc] 优化 OidcUtil
工具类的代码,解决一些已知问题•[jap-social] 解决一些已知问题•重构 com.fujieid.jap.core.cache.JapLocalCache
,实现定时器,定期清理本地缓存
合并 PR
•合并 Gitee PR #9[8] by @dreamlu[9]
Issue
•解决 Gitee Issue #I3DC7N[10]
JAP 产品技术白皮书
经过两个月的整理、修改、迭代,我们 JAP 的技术白皮书,终于完成了!
在 wx “JAP 社区交流群”中(入群请加wx:justauth,备注 “jap”),不少朋友都期待着《JAP 产品技术白皮书[11]》的发布。
前期我们也做过一些调研,大部分开发者/用户的述求基本上是:JAP 文档中有太多专有技术名词,理解起来比较困难。针对此,我们在白皮书中对于 JAP 相关领域的概念、名词做了专门解释,能够帮助开发者/用户更深入的了解、使用相关技术。
同时,在此份白皮书中,我们对 JAP 的功能、特点、架构、流程等都做了全面的、详细的解释,部分内容如下:
希望这份白皮书,能够帮助到各位开发者/用户。
你可以在“码一码”公众号中回复“白皮书”获得最新 JAP 白皮书文档(该方式长久可用,不受版本更新的影响)。
关于 JAP
JAP 是什么?
JAP 是一款开源的登录认证中间件,基于模块化设计,为所有需要登录认证的 WEB 应用提供一套标准的技术解决方案,开发者可以基于 JAP 适配绝大多数的 WEB 系统(自有系统、联邦协议)。
JAP 有哪些功能?
JAP 有什么优势?
•易用性:JAP 的 API 沿袭 JustAuth 的简单性,做到了开箱即用的程度。JAP 高度抽象各种登录场景,提供了多套简单使用的 API,极大程度的降低了开发者的学习成本和使用成本•全面性:JAP 全量适配 JustAuth 支持的第三方平台,实现第三方登录。同时也支持所有基于标准OAuth2.0 协议或者 OIDC 协议或者 SAML 协议的应用、系统,同时 JAP 还提供不同语言版本的项目 SDK,适配多种研发场景•模块化:JAP 基于模块化设计开发,针对每一种登录场景,比如账号密码、OAuth、OIDC等,都单独提供了独有的模块化解决方案•标准化:JAP 和业务完全解耦,将登录认证相关的逻辑抽象出一套标准的技术解决方案,针对每一种业务场景,比如用户登录、验证密码、创建并绑定第三方系统的账号等,都提供了一套标准的策略或者接口,开发者可以基于 JAP,灵活并方便的完成相关业务逻辑的开发和适配•通用性:JAP 不仅可以用到第三方登录、OAuth授权、OIDC认证等业务场景,还能适配开发者现有的业务系统的普通账号密码的登录场景,基本将所有登录相关的业务场景都已经涵盖。针对 WEB 应用,JAP 将提供满足各种不同登录场景的解决方案(和开发语言无关)
JAP 适用于哪些场景?
JAP 适用于所有需要登录认证功能的场景。比如:
•要求规范:新项目立项,你们需要研发一套包含登录、认证的系统,并且从长远方面考虑,你们需要一套标准的、灵活的、功能全面的登录认证功能。•需求灵活:现有登录模块为自研,但是新一轮的技术规划中,你们想将登录认证模块重构,以更加灵活的架构适应后面的新需求,比如:集成 MFA 登录、集成 OAuth 登录、SAML登录等。•力求省事:你们的项目太多(或者是开发语言较多,比如:Java、Python、Node 等),每个项目都需要登录认证模块,想解决这种重复劳动的问题,使研发人员有更多的时间和精力投入到业务开发中,提高研发产能和研发效率。
关于 JAP 的更多内容,可以参考《JAP 产品技术白皮书[12]》
相关链接
•Gitee:https://gitee.com/fujieid/jap•Github:https://github.com/fujieid/jap•CodeChina:https://codechina.csdn.net/fujieid/jap•开发者文档:https://justauth.plus
引用链接
[1]
白皮书: https://justauth.plus/paper/JAP-paper-V1.0.0.pdf[2]
RFC6749: https://tools.ietf.org/html/rfc6749[3]
RFC7636: https://tools.ietf.org/html/rfc7636[4]
RFC7033: https://tools.ietf.org/html/rfc7033[5]
OpenID Connect Core 1.0: https://openid.net/specs/openid-connect-core-1_0.html[6]
jap-ids-demo: https://gitee.com/fujieid/jap-ids-demo[7]
IDS OAuth 2.0 服务端: https://justauth.plus/ids/[8]
#9: https://gitee.com/fujieid/jap/pulls/9[9]
@dreamlu: https://gitee.com/dreamlu[10]
#I3DC7N: https://gitee.com/fujieid/jap/issues/I3DC7N[11]
JAP 产品技术白皮书: https://justauth.plus/paper/JAP-paper-V1.0.0.pdf[12]
JAP 产品技术白皮书: https://justauth.plus/paper/JAP-paper-V1.0.0.pdf