1 Star 0 Fork 338

yw613 / jap

forked from 符节开源 / jap 
加入 Gitee
与超过 1200万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
克隆/下载
贡献代码
同步代码
取消
提示: 由于 Git 不支持空文件夾,创建文件夹后会生成空的 .keep 文件
Loading...
README
LGPL-3.0

Just auth into any app

star star

开源地址: Gitee | Github

官方网站: https://jap.fujieid.com

🎨 JAP 是什么?

JAP 是一款开源的认证中间件,基于模块化设计,并且与业务高度解耦,使用起来非常灵活,开发者可以毫不费力地将 JAP 集成到任何 web 应用程序中,就像集成 JA 一样,简单方便。

JAP 要做的是为所有需要身份认证的应用提供一套标准的解决方案,集成所有 APP。方便开发者无缝对接任何第三方应用或者自有系统。

  • JAP 口号:Just auth into any app!
  • JAP 目标:让身份链接无处可藏
  • JAP 价值:方便开发者无缝对接任何第三方应用或者自有系统,提高开发效率,减少代码维护成本
  • JAP 愿景:以开源的方式,受惠于开源社区,赋能于开发者。使之成为开发者生态内必不可少的“基础设施”,以期形成新的技术标准。

ps:我们要让开发者可以基于 JAP 开发出自己的 IAM 或者 IDaaS 系统。

✨ JAP 有什么特点?

  • 单点登录:一处登录,处处通行
  • 开箱即用:API 设计趋近于白话,类似并参考 JustAuth
  • 多平台:
    • 国内外数十家第三方平台(基于 JustAuth)
    • OAuth(OIDC) 协议的平台,内置国内外常见平台
    • SAML 协议的平台,内置国内外常见平台
  • 业务解耦:JAP 不深入具体的业务,只将授权认证方面的功能抽象出一套标准的组件,方便任意系统快速对接
  • 模块化:JAP 基于模块开发,基本做到,用哪种引哪种
  • 统一标准:一切内置实现或者自定义的实现,都基于标准的策略
  • 多语言支持:Java、Python、Go、Node等

💥 适用于哪些场景?

  • 新项目立项,你们需要研发一套包含登录、认证的系统
  • 现有登录模块为自研,但是新一轮的技术规划中,你们想将登录认证模块重构,以更加灵活的架构适应后面的新需求,比如:集成 MFA 登录、集成 OAuth 登录等
  • 你们的项目太多,每个项目都需要登录认证模块,想解决这种重复劳动的问题
  • 从长远方面考虑,公司或组织或个人需要一套标准的、灵活的、功能全面的登录认证功能
  • 你们不想将研发成本放到登录认证这种必须但想做完善又需要花费大量时间成本、人力成本的事情上,希望有一个中间件可以完美集成登录认证功能,使研发人员有更多的时间和精力投入到业务开发中,提高研发产能和研发效率
  • 你们除了需要对接标准的身份提供商外,还有一些非标准的身份提供商,需要投入研发人员单独定制开发
  • 你们企业种用到的开发语言较多,比如:Java、Python、Node等,每种语言对应的系统,都要使用不同语言实现相同的登录认证功能
  • 你们需要研发一个支持 OAuth 登录的 Web 应用程序
  • 你们想让自己的系统支持对外提供 OAuth 服务
  • 你们需要研发一个支持 SAML 登录的 Web 应用程序,但又苦于 SAML 那庞大而繁琐的业务流程和配置
  • 你们想让自己的系统支持对外提供 SAML 服务
  • 你们想研发一个支持 LDAP 登录的程序,但又不知道如何入手
  • 你们觉得传统的账号密码非常脆弱,所想让用户使用一次性的手机验证码或邮箱验证码进行登录
  • 你们企业希望联合其现有的企业用户目录,以允许员工使用其现有的企业凭据登录各种内部和第三方应用程序。
  • ...

❓ JAP 常见问题有哪些?

❔ JAP 不支持具体的业务操作吗?

JAP 针对用户、应用等业务数据,只提供标准的业务接口,不提供数据库层面的支持。JAP 要做的是为广大开发者提供一套技术标准,既然是标准,那就不能依赖于任何和具体业务相关的逻辑。不管你们的系统是用的 MySQL、Oracle、SQLlite、Redis、MongoDB 还是其他的,JAP 通通不关心。JAP 对外提供标准接口,业务端只需要按需实现 JAP 的接口即可,这种设计能在最大程度上增加它的灵活性,使它不受限于某一具体的数据库实现方案。

❔ JAP 可以用到企业级项目吗?

当然,JAP 的价值就在于:方便开发者无缝对接任何第三方应用或者自有系统,提高开发效率,减少代码维护成本。所以对于企业来说,这是一个降本增效的功能。JAP 基于模块化开发,并且不侵入业务系统,可以十分方便的集成到企业内部各个系统或者统一的登录认证网关中。

❔ JAP 可以商用吗?

JAP 基于 LGPL 3.0 协议。商用分为以下两种情况:

  • LGPL 允许商业软件通过类库引用(link)方式使用而不需要开源商业软件的代码。这使得采用 LGPL 协议的开源代码可以被商业软件作为类库引用并发布和销售
  • 如果修改 LGPL 协议的代码或者衍生,则所有修改的代码,涉及修改部分的额外代码和衍生的代码都必须采用 LGPL 协议。因此 LGPL 协议的开源代码不适合通过修改和衍生的方式做二次开发的商业软件采用

🚀 开源推荐

🏘️ 加入社群

输入图片说明

GNU LESSER GENERAL PUBLIC LICENSE Version 3, 29 June 2007 Copyright (C) 2007 Free Software Foundation, Inc. <http://fsf.org/> Everyone is permitted to copy and distribute verbatim copies of this license document, but changing it is not allowed. This version of the GNU Lesser General Public License incorporates the terms and conditions of version 3 of the GNU General Public License, supplemented by the additional permissions listed below. 0. Additional Definitions. As used herein, "this License" refers to version 3 of the GNU Lesser General Public License, and the "GNU GPL" refers to version 3 of the GNU General Public License. "The Library" refers to a covered work governed by this License, other than an Application or a Combined Work as defined below. An "Application" is any work that makes use of an interface provided by the Library, but which is not otherwise based on the Library. Defining a subclass of a class defined by the Library is deemed a mode of using an interface provided by the Library. A "Combined Work" is a work produced by combining or linking an Application with the Library. The particular version of the Library with which the Combined Work was made is also called the "Linked Version". The "Minimal Corresponding Source" for a Combined Work means the Corresponding Source for the Combined Work, excluding any source code for portions of the Combined Work that, considered in isolation, are based on the Application, and not on the Linked Version. The "Corresponding Application Code" for a Combined Work means the object code and/or source code for the Application, including any data and utility programs needed for reproducing the Combined Work from the Application, but excluding the System Libraries of the Combined Work. 1. Exception to Section 3 of the GNU GPL. You may convey a covered work under sections 3 and 4 of this License without being bound by section 3 of the GNU GPL. 2. Conveying Modified Versions. If you modify a copy of the Library, and, in your modifications, a facility refers to a function or data to be supplied by an Application that uses the facility (other than as an argument passed when the facility is invoked), then you may convey a copy of the modified version: a) under this License, provided that you make a good faith effort to ensure that, in the event an Application does not supply the function or data, the facility still operates, and performs whatever part of its purpose remains meaningful, or b) under the GNU GPL, with none of the additional permissions of this License applicable to that copy. 3. Object Code Incorporating Material from Library Header Files. The object code form of an Application may incorporate material from a header file that is part of the Library. You may convey such object code under terms of your choice, provided that, if the incorporated material is not limited to numerical parameters, data structure layouts and accessors, or small macros, inline functions and templates (ten or fewer lines in length), you do both of the following: a) Give prominent notice with each copy of the object code that the Library is used in it and that the Library and its use are covered by this License. b) Accompany the object code with a copy of the GNU GPL and this license document. 4. Combined Works. You may convey a Combined Work under terms of your choice that, taken together, effectively do not restrict modification of the portions of the Library contained in the Combined Work and reverse engineering for debugging such modifications, if you also do each of the following: a) Give prominent notice with each copy of the Combined Work that the Library is used in it and that the Library and its use are covered by this License. b) Accompany the Combined Work with a copy of the GNU GPL and this license document. c) For a Combined Work that displays copyright notices during execution, include the copyright notice for the Library among these notices, as well as a reference directing the user to the copies of the GNU GPL and this license document. d) Do one of the following: 0) Convey the Minimal Corresponding Source under the terms of this License, and the Corresponding Application Code in a form suitable for, and under terms that permit, the user to recombine or relink the Application with a modified version of the Linked Version to produce a modified Combined Work, in the manner specified by section 6 of the GNU GPL for conveying Corresponding Source. 1) Use a suitable shared library mechanism for linking with the Library. A suitable mechanism is one that (a) uses at run time a copy of the Library already present on the user's computer system, and (b) will operate properly with a modified version of the Library that is interface-compatible with the Linked Version. e) Provide Installation Information, but only if you would otherwise be required to provide such information under section 6 of the GNU GPL, and only to the extent that such information is necessary to install and execute a modified version of the Combined Work produced by recombining or relinking the Application with a modified version of the Linked Version. (If you use option 4d0, the Installation Information must accompany the Minimal Corresponding Source and Corresponding Application Code. If you use option 4d1, you must provide the Installation Information in the manner specified by section 6 of the GNU GPL for conveying Corresponding Source.) 5. Combined Libraries. You may place library facilities that are a work based on the Library side by side in a single library together with other library facilities that are not Applications and are not covered by this License, and convey such a combined library under terms of your choice, if you do both of the following: a) Accompany the combined library with a copy of the same work based on the Library, uncombined with any other library facilities, conveyed under the terms of this License. b) Give prominent notice with the combined library that part of it is a work based on the Library, and explaining where to find the accompanying uncombined form of the same work. 6. Revised Versions of the GNU Lesser General Public License. The Free Software Foundation may publish revised and/or new versions of the GNU Lesser General Public License from time to time. Such new versions will be similar in spirit to the present version, but may differ in detail to address new problems or concerns. Each version is given a distinguishing version number. If the Library as you received it specifies that a certain numbered version of the GNU Lesser General Public License "or any later version" applies to it, you have the option of following the terms and conditions either of that published version or of any later version published by the Free Software Foundation. If the Library as you received it does not specify a version number of the GNU Lesser General Public License, you may choose any version of the GNU Lesser General Public License ever published by the Free Software Foundation. If the Library as you received it specifies that a proxy can decide whether future versions of the GNU Lesser General Public License shall apply, that proxy's public statement of acceptance of any version is permanent authorization for you to choose that version for the Library.

简介

JAP 是一款开源的登录中间件,基于模块化设计,并且与业务高度解耦,使用起来非常灵活,开发者可以毫不费力地将 JAP 集成到任何 web 应用程序中,就像集成 JA 一样,简单方便。Just auth into any app! 展开 收起
Java
LGPL-3.0
取消

发行版

暂无发行版

贡献者

全部

近期动态

加载更多
不能加载更多了
Java
1
https://gitee.com/yw613/jap.git
git@gitee.com:yw613/jap.git
yw613
jap
jap
master

搜索帮助