SpringBoot单点登录认证系统MaxKey(附开源项目地址)

这篇具有很好参考价值的文章主要介绍了SpringBoot单点登录认证系统MaxKey(附开源项目地址)。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

1 项目介绍

MaxKey 单点登录认证系统,谐音马克思的钥匙寓意是最大钥匙,支持 OAuth 2.x/OpenID Connect、SAML 2.0、JWT、CAS、SCIM 等标准协议,提供简单、标准、安全和开放的用户身份管理(IDM)、身份认证(AM)、单点登录(SSO)、RBAC 权限管理和资源管理等。

单点登录(Single Sign On)简称为SSO 、用户只需要登录认证中心一次就可>以访问所有相互信任的应用系统,无需再次登录,主要功能:

  1. 所有应用系统共享一个身份认证系统
  2. 所有应用系统能够识别和提取 ticket 信息

MaxKey 注重企业级场景下的性能、安全和易用性,广泛应用于医疗、金融、政府和制造等行业。

2 功能特性

2 .1 标准认证协议

maxkey项目,Java,springboot,spring boot,后端,java

2.2 登录支持

maxkey项目,Java,springboot,spring boot,后端,java

  1. 提供标准的认证接口以便于其他应用集成 SSO,安全的移动接入,安全的 API、第三方认证和互联网认证的整合。
  2. 提供用户生命周期管理,支持 SCIM 2 协议;开箱即用的连接器(Connector)实现身份供给同步。
  3. 简化微软 Active Directory 域控、标准 LDAP 服务器机构和账号管理,密码自助服务重置密码。
  4. IDaas 多租户功能,支持集团下多企业独立管理或企业下不同部门数据隔离的,降低运维成本。
  5. 认证中心具有平台无关性、环境多样性,支持 Web、手机、移动设备等, 如 Apple iOS,Andriod 等,将认证能力从 B/S 到移动应用全面覆盖。
  6. 配置化的密码策略、访问策略;支持 Ip2region 或 GeoLite2 地理库精准 IP 定位 ,强大安全审计,对用户全生命周期审计、访问行为记录追溯审计、安全合规审计、安全风险预警。
  7. 基于 Java EE 平台,微服务架构,采用 Spring、MySQL、Tomcat、Redis、MQ 等开源技术,扩展性强。
  8. 开源、安全、自主可控。

2.3 界面展示

2.3.1 主界面

maxkey项目,Java,springboot,spring boot,后端,java

2.3.2 实时报表

maxkey项目,Java,springboot,spring boot,后端,java

2.3.3 用户管理

maxkey项目,Java,springboot,spring boot,后端,java

2.3.4 应用管理

maxkey项目,Java,springboot,spring boot,后端,java

3 系统安全性

maxkey项目,Java,springboot,spring boot,后端,java

3.1 二次密码登录

单点登录使用户能在一个入口完成登录后,一般情况下用户在点击应用图标时,直接通过相应的协议,登录到应用系统;但是有时要针对特定的用户、特定的应用进行二次密码校验的功能,防止关键系统的登录,导致的信息敏感泄露,比如财务系统或者个人工资账单,在实际工作中经常出现工作代理的情况,即使出现单点登录的密码泄露,二次密码也很好地保护敏感应用系统;

3.2 单点退出

单点退出是指用户在一个系统退出后,其所能单点登录访问的所有系统都同时退出。单点退出主要是为提高安全性,避免用户忘记退出所有应用而造成信息的泄密。其实现方式也非常简单,由于 SSO 和单点登录的应用都是分开的,使用不同的域名,只是通过认证协议帮助用户在多个应用系统中传递身份和登录系统。因此,首先注销单点登录应用,然后修改每个应用系统都使用 MaxKey 的单点退出页面,单点登录的退出页面会将用户登录的 Session 注销掉。

3.3 会话超时

为节约服务端资源,并基于安全性考虑,对于长时间没有活动的客户端其会话将被自动终结。同时,为保证用户的单点登录不受影响,其所有超时都在 MaxKey 端集中控制,即 MaxKey 的会话超时时间比集成的应用系统会话超时时间略长。例如希望实现用户不活动 30 分钟就终止会话,则将 MaxKey 的不活动超时时间设置成 30 分钟,集成应用的不活动超时时间设置成 40 分钟。如果用户登录后打开多个应用,并一直只访问某个应用,而其他应用长时间没有被访问导致应用会话超时,用户再次点击该已超时的应用时,用户会被应用要求重新登录。为避免这种情况,应用检测到用户会话超时后需将用户重定向到登录页面,MaxKey 此时再次实现单点登录,登录成功后应用可重新将用户定向到期之前访问的 URL 或者该应用的首页。

3.4 防暴力破解

由于认证系统需对互联网提供服务,为避免互联网中恶意的暴力破解,系统需提供防暴力破解能力。防暴力破解的关键是提供一种机制,能阻止计算机用穷举法试探用户口令。目前一种广泛使用的防暴力破解技术是 CAPTCHA(Completely Automated Public Turing test to tell Computers and Humans Apart),即在登录界面除用户名+口令之外再增加一个扭曲的数字或字母字段,让用户输入,这种字段人很容易看懂,但是计算机却很难识别,从而避免计算机用穷举法猜测用户密码,这种技术的应用在互联网应用上经常可以看到。

3.5 连续登陆次失败策

使用连续多次登录失败即锁定帐号一定时间的设置,例如如果某个帐号连续 6 次登录失败就锁定该帐号两小时,这种方式也可以避免暴力破解。

3.6 静态密码策略

对密码进行限制无非是为了强制用户设置一个更加安全的密码,密码策略主要有以下几种:

(1)密码必须符合复杂性要求

(2)密码长度最小值

(3)密码最长使用期限

(4)密码最短使用期限

(5)强制密码历史

(6)使用可还原的加密存储密码

3.7 双因素身份认证

双因素身份认证就是通过你所知道再加上你所能拥有的这二个要素组合到一起才能发挥作用的身份认证系统。双因素认证是一种采用时间同步技术的系统,采用了基于时间、事件和密钥三变量而产生的一次性密码来代替传统的静态密码。每个动态密码卡都有一个唯一的密钥,该密钥同时存放在服务器端,每次认证时动态密码卡与服务器分别根据同样的密钥,同样的随机参数(时间、事件)和同样的算法计算了认证的动态密码,从而确保密码的一致性,从而实现了用户的认证。就像我们去银行办卡送的口令牌. 多因素认证(MFA),是一种计算机访问控制的方法,用户要通过两种以上的认证机制之后,才能得到授权,使用计算机资源。MFA 的目的是建立一个多层次的防御,使未经授权的人访问计算机系统或网络更加困难,从而提高安全性。

3.8 密码存储

基于 Spring Security 实现密码加密和验证,规则是通过对密码明文添加**{noop}**前缀

MaxKey 默认密码加密策略 BCrypt,用户表(userinfo)->密码字段(password),存储方式**{类型}密文**

maxkey项目,Java,springboot,spring boot,后端,java

3.8.1 bcrypt 编码算法

bcrypt 使用的是布鲁斯·施内尔在 1993 年发布的 Blowfish 加密算法。bcrypt 算法将 salt 随机并混入最终加密后的密码,验证时也无需单独提供之前的 salt,从而无需单独处理 salt 问题。加密后的格式一般为:

$2a$10$/bTVvqqlH9UiE0ZJZ7N2Me3RIgUCdgMheyTgV0B4cMCSokPa.6oCa

其中:$是分割符,无意义;2a是bcrypt加密版本号;10是cost的值;而后的前22位是salt值;再然后的字符串就是密码的密文了。

3.8.2 bcrypt 特点

bcrypt 有个特点就是非常慢。这大大提高了使用彩虹表进行破解的难度。也就是说该类型的密码暗文拥有让破解者无法忍受的时间成本。同时对于开发者来说也需要注意该时长是否能超出系统忍受范围内。通常是 MD5 的数千倍。同样的密码每次使用 bcrypt 编码,密码暗文都是不一样的。也就是说你有两个网站如果都使用了 bcrypt 它们的暗文是不一样的,这不会因为一个网站泄露密码暗文而使另一个网站也泄露密码暗文。所以从 bcrypt 的特点上来看,其安全强度还是非常有保证的。

3.8.3 不推荐使用 md5

首先 md5 不是加密算法,是哈希摘要。以前通常使用其作为密码哈希来保护密码。由于彩虹表的出现,md5 和 sha1 之类的摘要算法都已经不安全了。如果有不相信的同学 可以到一些解密网站 如 cmd5 网站尝试解密 你会发现 md5 和 sha1 是真的非常容易被破解。文章来源地址https://www.toymoban.com/news/detail-821276.html

4 开源项目地址

  • Gitee:https://gitee.com/dromara/MaxKey
  • Github:https://github.com/dromara/MaxKey
  • 官方网站:http://www.maxkey.top

到了这里,关于SpringBoot单点登录认证系统MaxKey(附开源项目地址)的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 深入理解SSO原理,项目实践使用一个优秀开源单点登录项目(附源码)

    深入理解SSO原理,项目实践使用一个优秀开源单点登录项目(附源码)。 一、简介 单点登录(Single Sign On),简称为 SSO。 它的解释是在多个应用系统中,用户只需要登录一次就可以访问所有相互信任的应用系统。 ❝ 所谓一次登录,处处登录。同样一处退出,处处退出。 ❞

    2024年02月11日
    浏览(45)
  • 34、商城系统(十五):认证服务,短信验证码,密码加盐,OAuth2.0社交登录,SpringSession认证功能,单点登录

    目录 一、新建认证服务 1.后端项目启动 2.前端页面复制 3.配置域名 4.配置gateway

    2024年02月19日
    浏览(49)
  • 八个开源免费单点登录(SSO)系统

    使用SSO服务可以提高多系统使用的用户体验和安全性,用户不必记忆多个密码、不必多次登录浪费时间。下面推荐一些市场上最好的开源SSO系统,可作为商业SSO替代。 单点登录(SSO)是一个登录服务层,通过一次登录访问多个应用。使用SSO服务可以提高多系统使用的用户体验

    2024年02月04日
    浏览(50)
  • 【springboot+vue项目(十四)】基于Oauth2的SSO单点登录(一)整体流程介绍

    场景:现在有一个前后端分离的系统,前端框架使用vue-element-template,后端框架使用springboot+springSecurity+JWT+Redis(登录部分)现在需要接入到 已经存在的第三方基于oauth2.0的非标准接口 统一认证系统。  温馨提示:如果是接入到 基于oauth2.0的 标准接口的认证服务系统,可以直

    2024年02月19日
    浏览(44)
  • 【单点登录SSO认证中心】

    (2017-09-22更新)GitHub:https://github.com/sheefee/simple-sso 1、http无状态协议 web应用采用browser/server架构,http作为通信协议。http是无状态协议,浏览器的每一次请求,服务器会独立处理,不与之前或之后的请求产生关联,这个过程用下图说明,三次请求/响应对之间没有任何联系 但这

    2024年02月13日
    浏览(45)
  • 【Oauth2.0 单点登录 + 第三方授权认证】用户认证、授权模式

    本文主要对 SpringSecurity Oauth 2.0 用户认证,授权码授权模式、密码授权模式,以及授权流程进行讲解 开发中,有些功能只有管理员才有,普通用户是没有的。即需要对用户的身份进行认证,是管理员还是普通用户。认证方式有两种: 身份认证: 用户在访问相应资源时对用户

    2023年04月08日
    浏览(65)
  • 分布式项目 12 用jsonp来完成单点登录功能(两个系统之间进行信息交互)

    在项目中使用ctrl+H ,来快速查找相关的hrl请求。 首先全部的请求会进过jt-web,在进行对其他系统的通信。 说明:当点击“登录”或者\\\"免费注册\\\"跳转到登录或者注册页面。 在jt-web项目中,声明UserController资源,完成页面资源的调度,具体代码实现如下所示: 创建项目sso 修改

    2024年02月08日
    浏览(66)
  • 单点登录的认证过程,我拿到票据了, 可以卖肉了吗?

    我拿到票据了, 可以卖肉了吗? SSO: 只能买一两, 不能再多了 单点登录的认证过程是如何的, 比方说单点登录服务D, 子系统A和B, A B D和浏览器之间是如何通信的 以下是单点登录(SSO)过程的详细步骤: 用户尝试访问子系统A。 子系统A检查用户是否已登录(例如检查本地会话)。

    2023年04月10日
    浏览(73)
  • 【springboot+vue项目(十五)】基于Oauth2的SSO单点登录(二)vue-element-admin框架改造整合Oauth2.0

    Vue-element-admin 是一个基于 Vue.js 和 Element UI 的后台管理系统框架,提供了丰富的组件和功能,可以帮助开发者快速搭建现代化的后台管理系统。 vue-element-admin/   |-- build/                          # 构建相关配置文件   |    |-- build.js                   # 生产环境构建脚本

    2024年02月20日
    浏览(43)
  • oauth2.0第2季 分布式认证与授权实现单点登录

    1.使用jwttoken进行令牌传输,资源服务器在本地怎么验证token? 1.1.1 oauth是什么 1.1.2 oauth的角色 1.1.3 oauth的认证流程 1.1.4 oauth的4种模式 1.介绍单体架构  使用sesion保存会话信息的情况 2.前后端分离项目,调用方式 session架构不适合前后端分离项目 3.解决办法,引出oauth2.0 配置

    2024年02月11日
    浏览(46)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包