JAP 1.0.1 以及 《JAP產(chǎn)品技術(shù)白皮書(shū)》正式發(fā)布
JAP 1.0.1 以及 《JAP產(chǎn)品技術(shù)白皮書(shū)》正式發(fā)布

快訊
1.JAP 1.0.1 正式發(fā)布2.《JAP產(chǎn)品技術(shù)白皮書(shū)》正式發(fā)布。立即獲取:白皮書(shū)[1]
JAP 1.0.1 版本內(nèi)容
新增功能/支持
?添加 com.fujieid.jap.core.util.RequestUtil?完成jap-ids模塊
jap-ids是基于 RFC6749[2]、RFC7636[3]、RFC7033[4]等標(biāo)準(zhǔn)協(xié)議和 OpenID Connect Core 1.0[5] 認(rèn)證協(xié)議,實(shí)現(xiàn)的一款輕量級(jí)、業(yè)務(wù)解耦、開(kāi)箱即用的新一代國(guó)產(chǎn)授權(quán)認(rèn)證框架。
此處附上我精心繪制的jap-ids 業(yè)務(wù)流程圖:

如果圖片模糊不清(可能被平臺(tái)壓縮),你可以在“碼一碼”公眾號(hào)中回復(fù)“ids”獲得以上業(yè)務(wù)流程圖。
jap-ids 目前已支持以下功能:
?授權(quán)碼模式(Authorization Code Grant)?授權(quán)碼-PKCE模式(Proof Key for Code Exchange)?隱式授權(quán)模式(Implicit Grant)?密碼授權(quán)模式(Resource Owner Password Credentials Grant)?客戶端授權(quán)模式(Client Credentials Grant)?刷新 access_token?回收 access_token?獲取當(dāng)前授權(quán)用戶的基本信息?校驗(yàn)登錄狀態(tài)?異常響應(yīng)?退出登錄?服務(wù)發(fā)現(xiàn)(OpenID Connect Discovery)?JWK 端點(diǎn)(JWKS)?JWK 令牌頒發(fā)?自定義 JWT 加解密證書(shū)?全場(chǎng)景 response type 支持(
code、token、id_token、id_token token、code id_token、code token、code id_token token)?等
關(guān)于 jap-ids 的更多使用詳情,請(qǐng)參考示例項(xiàng)目:jap-ids-demo[6],或者查閱文檔:IDS OAuth 2.0 服務(wù)端[7]
代碼修改/優(yōu)化
?[jap-oidc] 優(yōu)化 OidcStrategy#authenticate 方法,緩存 OidcDiscoveryDto,減少不必要的 http 請(qǐng)求?[jap-oidc] 優(yōu)化 OidcUtil 工具類的代碼,解決一些已知問(wèn)題?[jap-social] 解決一些已知問(wèn)題?重構(gòu) com.fujieid.jap.core.cache.JapLocalCache,實(shí)現(xiàn)定時(shí)器,定期清理本地緩存
合并 PR
?合并 Gitee PR #9[8] by @dreamlu[9]
Issue
?解決 Gitee Issue #I3DC7N[10]
JAP 產(chǎn)品技術(shù)白皮書(shū)
經(jīng)過(guò)兩個(gè)月的整理、修改、迭代,我們 JAP 的技術(shù)白皮書(shū),終于完成了!

在 wx “JAP 社區(qū)交流群”中(入群請(qǐng)加wx:justauth,備注 “jap”),不少朋友都期待著《JAP 產(chǎn)品技術(shù)白皮書(shū)[11]》的發(fā)布。
前期我們也做過(guò)一些調(diào)研,大部分開(kāi)發(fā)者/用戶的述求基本上是:JAP 文檔中有太多專有技術(shù)名詞,理解起來(lái)比較困難。針對(duì)此,我們?cè)诎灼?shū)中對(duì)于 JAP 相關(guān)領(lǐng)域的概念、名詞做了專門解釋,能夠幫助開(kāi)發(fā)者/用戶更深入的了解、使用相關(guān)技術(shù)。
同時(shí),在此份白皮書(shū)中,我們對(duì) JAP 的功能、特點(diǎn)、架構(gòu)、流程等都做了全面的、詳細(xì)的解釋,部分內(nèi)容如下:


希望這份白皮書(shū),能夠幫助到各位開(kāi)發(fā)者/用戶。
你可以在“碼一碼”公眾號(hào)中回復(fù)“白皮書(shū)”獲得最新 JAP 白皮書(shū)文檔(該方式長(zhǎng)久可用,不受版本更新的影響)。
關(guān)于 JAP
JAP 是什么?
JAP 是一款開(kāi)源的登錄認(rèn)證中間件,基于模塊化設(shè)計(jì),為所有需要登錄認(rèn)證的 WEB 應(yīng)用提供一套標(biāo)準(zhǔn)的技術(shù)解決方案,開(kāi)發(fā)者可以基于 JAP 適配絕大多數(shù)的 WEB 系統(tǒng)(自有系統(tǒng)、聯(lián)邦協(xié)議)。
JAP 有哪些功能?

JAP 有什么優(yōu)勢(shì)?
?易用性:JAP 的 API 沿襲 JustAuth 的簡(jiǎn)單性,做到了開(kāi)箱即用的程度。JAP 高度抽象各種登錄場(chǎng)景,提供了多套簡(jiǎn)單使用的 API,極大程度的降低了開(kāi)發(fā)者的學(xué)習(xí)成本和使用成本?全面性:JAP 全量適配 JustAuth 支持的第三方平臺(tái),實(shí)現(xiàn)第三方登錄。同時(shí)也支持所有基于標(biāo)準(zhǔn)OAuth2.0 協(xié)議或者 OIDC 協(xié)議或者 SAML 協(xié)議的應(yīng)用、系統(tǒng),同時(shí) JAP 還提供不同語(yǔ)言版本的項(xiàng)目 SDK,適配多種研發(fā)場(chǎng)景?模塊化:JAP 基于模塊化設(shè)計(jì)開(kāi)發(fā),針對(duì)每一種登錄場(chǎng)景,比如賬號(hào)密碼、OAuth、OIDC等,都單獨(dú)提供了獨(dú)有的模塊化解決方案?標(biāo)準(zhǔn)化:JAP 和業(yè)務(wù)完全解耦,將登錄認(rèn)證相關(guān)的邏輯抽象出一套標(biāo)準(zhǔn)的技術(shù)解決方案,針對(duì)每一種業(yè)務(wù)場(chǎng)景,比如用戶登錄、驗(yàn)證密碼、創(chuàng)建并綁定第三方系統(tǒng)的賬號(hào)等,都提供了一套標(biāo)準(zhǔn)的策略或者接口,開(kāi)發(fā)者可以基于 JAP,靈活并方便的完成相關(guān)業(yè)務(wù)邏輯的開(kāi)發(fā)和適配?通用性:JAP 不僅可以用到第三方登錄、OAuth授權(quán)、OIDC認(rèn)證等業(yè)務(wù)場(chǎng)景,還能適配開(kāi)發(fā)者現(xiàn)有的業(yè)務(wù)系統(tǒng)的普通賬號(hào)密碼的登錄場(chǎng)景,基本將所有登錄相關(guān)的業(yè)務(wù)場(chǎng)景都已經(jīng)涵蓋。針對(duì) WEB 應(yīng)用,JAP 將提供滿足各種不同登錄場(chǎng)景的解決方案(和開(kāi)發(fā)語(yǔ)言無(wú)關(guān))
JAP 適用于哪些場(chǎng)景?
JAP 適用于所有需要登錄認(rèn)證功能的場(chǎng)景。比如:
?要求規(guī)范:新項(xiàng)目立項(xiàng),你們需要研發(fā)一套包含登錄、認(rèn)證的系統(tǒng),并且從長(zhǎng)遠(yuǎn)方面考慮,你們需要一套標(biāo)準(zhǔn)的、靈活的、功能全面的登錄認(rèn)證功能。?需求靈活:現(xiàn)有登錄模塊為自研,但是新一輪的技術(shù)規(guī)劃中,你們想將登錄認(rèn)證模塊重構(gòu),以更加靈活的架構(gòu)適應(yīng)后面的新需求,比如:集成 MFA 登錄、集成 OAuth 登錄、SAML登錄等。?力求省事:你們的項(xiàng)目太多(或者是開(kāi)發(fā)語(yǔ)言較多,比如:Java、Python、Node 等),每個(gè)項(xiàng)目都需要登錄認(rèn)證模塊,想解決這種重復(fù)勞動(dòng)的問(wèn)題,使研發(fā)人員有更多的時(shí)間和精力投入到業(yè)務(wù)開(kāi)發(fā)中,提高研發(fā)產(chǎn)能和研發(fā)效率。
關(guān)于 JAP 的更多內(nèi)容,可以參考《JAP 產(chǎn)品技術(shù)白皮書(shū)[12]》
相關(guān)鏈接
?Gitee:https://gitee.com/fujieid/jap?Github:https://github.com/fujieid/jap?CodeChina:https://codechina.csdn.net/fujieid/jap?開(kāi)發(fā)者文檔:https://justauth.plus
引用鏈接
[1] 白皮書(shū): 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 服務(wù)端: 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 產(chǎn)品技術(shù)白皮書(shū): https://justauth.plus/paper/JAP-paper-V1.0.0.pdf[12] JAP 產(chǎn)品技術(shù)白皮書(shū): https://justauth.plus/paper/JAP-paper-V1.0.0.pdf
