各种不同语言分别整理的拿来开箱即用的8个开源免费单点登录(SSO)系统
各种不同语言分别整理的拿来开箱即用的8个开源免费单点登录(SSO)系统。
单点登录(SSO)是一个登录服务层,通过一次登录访问多个应用。使用SSO服务可以提高多系统使用的用户体验和安全性,用户不必记忆多个密码、不必多次登录浪费时间。

下面推荐一些市场上最好的开源SSO系统,可作为商业SSO替代。

01 Authelia
https://github.com/authelia/authelia
Authelia是一个免费、开源、可私有化部署的单点登录(SSO)项目。它具有时尚的登录窗口,支持一次性密码设置、通知推送等功能。
Authelia可以独立安装,或者使用Docker、Kubernetes容器部署。
开发语言:Go、TypeScript、Html
02 Keycloak
https://www.keycloak.org/
https://github.com/keycloak/keycloak
Keycloak是一个免费、开源身份认证和访问管理系统,支持高度可配置的单点登录(SSO)功能。
Keycloak内置支持连接到现有的LDAP或Active Directory服务器。也可以自己实现与关系数据库中的用户数据对接。
另外,如果基于角色的授权不能满足需求,Keycloak还提供了细粒度的授权服务。这允许您从Keycloak管理控制台管理所有服务的权限,您可以准确地定义您所需的授权策略。
Keycloak支持许多目前比较流行认证标准协议,如:OpenID Connect,OAuth 2.0、SAML 2.0等。
开发语言:Java、TypeScript、Html
03 Apereo CAS
https://github.com/apereo/cas
Apereo CAS是一个开源的企业级单点登录系统,是CAS项目的一部分。
Apereo CAS开箱即用,并且提供多种协议支持,如:CAS(v1,v2和v3)、SAML(1.0和2.0)、OAuth(v2)、OpenID、OpenID Connect等。
Apereo CAS支持使用多种身份证方法,包括:JAAS、LDAP、RDBMS、Radius、JWT等。
Apereo CAS支持通过Due、YubiKey、RSA、Google Authenticator、U2F、WebAuten等进行身份验证。
系统架构如下图所示:
开发语言:Java(Spring/Spring Cloud)、Html
04 IdentityServer
https://github.com/IdentityServer
IdentityServer是一个完整的IAM(身份和访问管理系统解决方案),它基于OpenID Connect和ASP.NET Core开发,支持OAuth 2.0。通过API提供SSO服务。适合使用.Net技术的开发人员。
开发语言:C#、JavaScript、Html
05 Jasny SSO
https://github.com/jasny/sso
Jasny SSO是一个轻量级的PHP SSO 项目。它由三部分组成:客户端、代理和服务端。它可以安装并集成到任何PHP项目中。
开发语言:PHP
06 OpenAM
https://github.com/OpenIdentityPlatform/OpenAM
OpenAM是一个具有SSO功能的全功能IAM系统,它具有SSO、身份验证、授权、身份联合和友好的API。
它支持CDSSO(跨域单点登录),SAML 2.0,OAuth 2.0和OpenID Connect等协议。
开发语言:Java、TypeScript、Html
部署环境:linux、window、mac、Docker
07 S.S.Octopus
https://github.com/buzzfeed/sso
S.S.Octopus又名sso或者 aka octoboi,是一种用于保护内部服务的单点登录解决方案。它是Buzzfeed下的一个开源SSO项目。它是用Go编写的,可以编译成二进制文件安装,或者Docker安装。
开发语言:Go
08 ORY Hydra
https://github.com/ory/hydra
ORY Hydra是一个开源的SSO项目,支持OpenID、OpenID Connect和OAuth2.0协议,ORY Hydra是ORY IAM生态系统的一部分。ORY IAM生态包含一系列用于构建IAM系统的子项目,并且这些项目都是开源的。
基于ORY Hydra、Vapor 3的iOS应用案例,架构如下图所示:
开发语言:Go
相关文章:
各种不同语言分别整理的拿来开箱即用的8个开源免费单点登录(SSO)系统
各种不同语言分别整理的拿来开箱即用的8个开源免费单点登录(SSO)系统。 单点登录(SSO)是一个登录服务层,通过一次登录访问多个应用。使用SSO服务可以提高多系统使用的用户体验和安全性,用户不必记忆多个密…...
Netty Review - 优化Netty通信:如何应对粘包和拆包挑战
文章目录 概述Pre概述场景复现解决办法概览方式一: 特殊分隔符分包 (演示Netty提供的众多方案中的一种)流程分析 方式二: 发送长度(推荐) DelimiterBasedFrameDecoder 源码分析 概述 Pre Netty Review - 借助SimpleTalkRoom初体验…...
vue介绍以及基本指令
目录 一、vue是什么 二、使用vue的准备工作 三、创建vue项目 四、vue插值表达式 五、vue基本指令 六、key的作用 七、v-model 九、指令修饰符 一、vue是什么 Vue是一种用于构建用户界面的JavaScript框架。它可以帮助开发人员构建单页应用程序和复杂的前端应用程序。Vue…...
重塑数字生产力体系,生成式AI将开启云计算未来新十年?
科技云报道原创。 今天我们正身处一个历史的洪流,一个巨变的十字路口。生成式AI让人工智能技术完全破圈,带来了机器学习被大规模采用的历史转折点。 它掀起的新一轮科技革命,远超出我们今天的想象,这意味着一个巨大的历史机遇正…...
JFreeChart 生成图表,并为图表标注特殊点、添加文本标识框
一、项目场景: Java使用JFreeChart库生成图片,主要场景为将具体的数据 可视化 生成曲线图等的图表。 本篇文章主要针对为数据集生成的图表添加特殊点及其标识框。具体包括两种场景:x轴为 时间戳 类型和普通 数值 类型。(y轴都为…...
vue整合axios 未完
一、简介 1、介绍 axios前端异步请求库类似jouery ajax技术,axios用来在前端页面发起一个异步请求,请求之后页面不动,响应回来刷新页面局部;Axios 是一个基于 promise 的 HTTP 库,可以用在浏览器和 node.js 中 2、特…...
java代码编写twitter授权登录
在上一篇内容已经介绍了怎么申请twitter开放的API接口。 下面介绍怎么通过twitter提供的API,进行授权登录功能。 开发者页面设置 首先在开发者页面开启“用户认证设置”,点击edit进行信息编辑。 我的授权登录是个网页,并且只需要进行简单的…...
SK Ecoplant借助亚马逊云科技,海外服务器为环保事业注入新活力
在当今全球面临着资源紧缺和环境挑战的大背景下,数字技术所依赖的海外服务器正成为加速循环经济转型的关键利器。然而,很多企业在整合数字技术到运营中仍然面临着一系列挑战,依然存在低效流程导致的不必要浪费。针对这一问题,SK E…...
RPC(5):AJAX跨域请求处理
接上一篇RPC(4):HttpClient实现RPC之POST请求进行修改。 1 修改客户端项目 1.1 修改maven文件 修改后配置文件如下: <dependencyManagement><dependencies><dependency><groupId>org.springframework.b…...
用大白话举例子讲明白区块链
什么是区块链?网上这么说: 区块链是一种分布式数据库技术,它以块的形式记录和存储交易数据,并使用密码学算法保证数据的安全性和不可篡改性。每个块都包含了前一个块的哈希值和自身的交易数据,形成了一个不断增长的链条…...
Java URL
URL:统一资源定位符,说白了,就是一个网络 通过URLConnection类可以连接到URL,然后通过URLConnection可以获取读数据的通道。非文本数据用字节流来读取。 读完之后写入本地即可。 public class test {public static void main(S…...
ETL-从1学到100(1/100):ETL涉及到的名词解释
本文章主要介绍ETL和大数据中涉及到名词,同时解释这些名词的含义。由于不是一次性收集这些名词,所以这篇文章将会持续更新,更新日志会存放在本段话下面: 12-19更新:OLTP、OLAP、BI、ETL。 12-20更新:ELT、…...
Jenkins + gitlab 持续集成和持续部署的学习笔记
1. Jenkins 介绍 软件开发生命周期(SLDC, Software Development Life Cycle):它集合了计划、开发、测试、部署的集合。 软件开发瀑布模型 软件的敏捷开发 1.1 持续集成 持续集成 (Continuous integration 简称 CI): 指的是频繁的将代码集成到主干。 持续集成的流…...
R语言【cli】——通过cli_abort用 cli 格式的内容显示错误、警告或信息,内部调用cli_bullets和inline-makeup
cli_abort(message,...,call .envir,.envir parent.frame(),.frame .envir ) 先从那些不需要下大力气理解的参数入手: 参数【.envir】:进行万能表达式编译的环境。 参数【.frame】:抛出上下文。默认用于参数【.trace_bottom】ÿ…...
cka从入门到放弃
无数次想放弃,最后选择了坚持 监控pod日志 监控名为 foobar 的 Pod 的日志,并过滤出具有 unable-access-website 信息的行,然后将 写入到 /opt/KUTR00101/foobar # 解析 监控pod的日志,使用kubectl logs pod-name kubectl logs…...
通过 jekyll 构建 github pages 博客实战笔记
jekyll 搭建教程 jekyll 搭建教程 Gem 安装 Ruby,请访问 下载地址。 Jekyll Jekyll 是一个简单且具备博客特性的静态网站生成器。 Jekyll 中文文档 极客学院中文文档 使用以下命令安装 Jekyll。 $ gem install jekyll在中国可能需要使用代理软件。然后ÿ…...
【AI美图】第09期效果图,AI人工智能汽车+摩托车系列图集
期待中的未来AI汽车 欢迎来到未来的世界,一个充满创新和无限可能的世界,这里有你从未见过的科技奇迹——AI汽车。 想象一下,你站在十字路口,繁忙的交通信号灯在你的视线中闪烁,汽车如潮水般涌来,但是&…...
网线的制作集线器交换机路由器的配置--含思维导图
🎬 艳艳耶✌️:个人主页 🔥 个人专栏 :《产品经理如何画泳道图&流程图》 ⛺️ 越努力 ,越幸运 一、网线的制作 1、网线的材料有哪些? 网线 网线是一种用于传输数据信号的电缆,广泛应…...
LLM微调(四)| 微调Llama 2实现Text-to-SQL,并使用LlamaIndex在数据库上进行推理
Llama 2是开源LLM发展的一个巨大里程碑。最大模型及其经过微调的变体位居Hugging Face Open LLM排行榜(https://huggingface.co/spaces/HuggingFaceH4/open_llm_leaderboard)前列。多个基准测试表明,就性能而言,它正在接近GPT-3.5…...
柔性数组(结构体成员)
目录 前言: 柔性数组: 给柔性数组分配空间: 调整柔性数组大小: 柔性数组的好处: 前言: 柔性数组?可能你从未听说,但是确实有这个概念。听名字,好像就是柔软的数…...
龙虎榜——20250610
上证指数放量收阴线,个股多数下跌,盘中受消息影响大幅波动。 深证指数放量收阴线形成顶分型,指数短线有调整的需求,大概需要一两天。 2025年6月10日龙虎榜行业方向分析 1. 金融科技 代表标的:御银股份、雄帝科技 驱动…...
深入剖析AI大模型:大模型时代的 Prompt 工程全解析
今天聊的内容,我认为是AI开发里面非常重要的内容。它在AI开发里无处不在,当你对 AI 助手说 "用李白的风格写一首关于人工智能的诗",或者让翻译模型 "将这段合同翻译成商务日语" 时,输入的这句话就是 Prompt。…...
【大模型RAG】Docker 一键部署 Milvus 完整攻略
本文概要 Milvus 2.5 Stand-alone 版可通过 Docker 在几分钟内完成安装;只需暴露 19530(gRPC)与 9091(HTTP/WebUI)两个端口,即可让本地电脑通过 PyMilvus 或浏览器访问远程 Linux 服务器上的 Milvus。下面…...
2021-03-15 iview一些问题
1.iview 在使用tree组件时,发现没有set类的方法,只有get,那么要改变tree值,只能遍历treeData,递归修改treeData的checked,发现无法更改,原因在于check模式下,子元素的勾选状态跟父节…...
2025 后端自学UNIAPP【项目实战:旅游项目】6、我的收藏页面
代码框架视图 1、先添加一个获取收藏景点的列表请求 【在文件my_api.js文件中添加】 // 引入公共的请求封装 import http from ./my_http.js// 登录接口(适配服务端返回 Token) export const login async (code, avatar) > {const res await http…...
自然语言处理——Transformer
自然语言处理——Transformer 自注意力机制多头注意力机制Transformer 虽然循环神经网络可以对具有序列特性的数据非常有效,它能挖掘数据中的时序信息以及语义信息,但是它有一个很大的缺陷——很难并行化。 我们可以考虑用CNN来替代RNN,但是…...
CMake控制VS2022项目文件分组
我们可以通过 CMake 控制源文件的组织结构,使它们在 VS 解决方案资源管理器中以“组”(Filter)的形式进行分类展示。 🎯 目标 通过 CMake 脚本将 .cpp、.h 等源文件分组显示在 Visual Studio 2022 的解决方案资源管理器中。 ✅ 支持的方法汇总(共4种) 方法描述是否推荐…...
深入浅出Diffusion模型:从原理到实践的全方位教程
I. 引言:生成式AI的黎明 – Diffusion模型是什么? 近年来,生成式人工智能(Generative AI)领域取得了爆炸性的进展,模型能够根据简单的文本提示创作出逼真的图像、连贯的文本,乃至更多令人惊叹的…...
2025年低延迟业务DDoS防护全攻略:高可用架构与实战方案
一、延迟敏感行业面临的DDoS攻击新挑战 2025年,金融交易、实时竞技游戏、工业物联网等低延迟业务成为DDoS攻击的首要目标。攻击呈现三大特征: AI驱动的自适应攻击:攻击流量模拟真实用户行为,差异率低至0.5%,传统规则引…...
用神经网络读懂你的“心情”:揭秘情绪识别系统背后的AI魔法
用神经网络读懂你的“心情”:揭秘情绪识别系统背后的AI魔法 大家好,我是Echo_Wish。最近刷短视频、看直播,有没有发现,越来越多的应用都开始“懂你”了——它们能感知你的情绪,推荐更合适的内容,甚至帮客服识别用户情绪,提升服务体验。这背后,神经网络在悄悄发力,撑起…...
