开篇词-企业级CAS单点登录实战
当时公司的系统越来越多。管理后台一套登录项目管理工具Jira一套登录Confluence Wiki又一套登录。新员工入职要创建三次账号。员工忘密码IT经常帮忙重置。员工离职又要一个系统一个系统禁用账号。更麻烦的是有时候认证中心退出了另外两个系统居然还能继续访问。后来我们就开始做一套统一认证。我曾经落地过一套企业级单点登录SSO把内部管理后台、Jira、知识库这三个系统都接到同一个认证中心。后来这套方案也一直作为公司的统一认证方案在用。本专栏会按我们当时做项目的顺序从需求、架构一直讲到代码一共九篇。为什么要做SSO左边是改造之前每个系统各认各的密码。右边是接入SSO之后登录都统一交给认证中心员工登录一次三个系统都能进。一说SSO大家第一反应往往是「登录一次到处都能登录」。往下做你会发现远远不只是登录一次这么简单。还有下面几件事要解决统一身份一个人、一个主账号各系统认的是同一张用户主数据。统一登录入口未登录时跳到认证中心而不是每个系统各画一张登录页。统一登出在认证中心退一次关联系统会话一起失效。可扩展接入新系统接入有章可循而不是每次临时摸索。我为什么写这个专栏网上写SSO的文章不少常见的是把CAS协议和几个接口讲清楚。可到了落项目的时候你会发现问题根本不是登录而是第三方系统怎么接新系统怎么注册网关放哪里登录和登出怎么统一OAuth2和CAS到底怎么配合所以这套专栏我就按我们当时项目落地的顺序一步一步写。里面会涉及管理后台、协作平台、知识库这三类最常见的接入场景不是Demo也不是Hello World。本专栏解决什么问题企业里最常见的就是下面三类系统细节放在第02篇PRD类型专栏中的叫法一句话说明自研后台内部管理后台前后端分离走一条登录路线外部协作协作平台AJira成熟Web产品走另一条路线外部文档知识库Confluence同上产品不同接法类似学完CAS以后一到项目里下面这几个问题就会冒出来什么时候用OAuth2什么时候用CAS自研前后端分离后台和第三方Web产品接入方式不一样不能硬套同一种协议。业务系统拿到的凭证长什么样自研后台拿的是网关换取的业务JWT第三方系统拿的是CAS一次性票据向认证中心校验通过后在本地建立Session。为什么要有网关管理后台的API流量需要统一鉴权登录入口也适合收敛在网关这部分第06篇展开。单点登出怎么才算真登出认证中心退一次自研后台的旧令牌和第三方系统的本地会话都要失效第08篇专门讲。这些东西现在不用急着记我们后面再慢慢展开。这张图不用记细节。浏览器请求从网关进来登录交给认证中心后面还有用户主数据管理后台和第三方系统都接在这套体系里。具体模块为什么这么设计第03篇会讲清楚。专栏目录我没有按知识点去拆而是按当时项目推进的顺序来写。先定需求再定架构再把认证中心搭起来然后一个系统一个系统接进去最后把单点登出补完整。开篇词本篇需求PRD应用清单、场景对比、验收边界技术架构设计方案整体架构准绳CAS认证中心多方式登录与JDBC认证服务注册与环境隔离OAuth2与网关前后端分离单点登录CAS协议第三方应用接入实战单点登出与全局会话失效专栏总结与新应用接入指南系统大概长什么样一提SSO大家第一个想到的就是CAS。CAS只是其中一个模块。还有网关、用户主数据、业务令牌、管理后台。现在不用关心实现先知道整个系统有哪些模块模块干什么认证中心统一登录页、发票据、登记接入应用、编排单点登出网关管理后台的登录入口和API流量入口用户主数据存查员工账号登录时把邮箱、工号、扫码结果解析成同一个人管理端用户服务给管理后台签发业务令牌接收认证中心的登出通知四个模块为什么这么设计、各自负责什么第03篇架构设计会讲清楚。技术栈整套方案基于JAVA 17Apereo CAS、Spring Cloud Gateway、Spring Boot等企业常用技术栈实现具体版本和选型理由在架构篇说明。学完之后你能做什么就是以后公司让你做SSO的时候你知道第一步该干什么第二步该干什么。如果哪天领导跟你说「把这个新系统接进统一认证。」我希望你不会一脸懵而是知道应该先去看认证中心、还是去改网关、还是注册CAS服务。

相关新闻

RAG本地知识库问答

RAG本地知识库问答

环境准备1、安装Ollama2、安装langchain代码如下:from langchain_community.document_loaders import TextLoader from langchain.text_splitter import RecursiveCharacterTextSplitter from langchain_community.vectorstores import FAISS # 新版ollama包 from langchain_ol…

2026/9/21 19:05:21 阅读更多 →
Windows 终极清理指南:免费开源工具 Win11Debloat,3 步告别卡顿与广告

Windows 终极清理指南:免费开源工具 Win11Debloat,3 步告别卡顿与广告

Windows 终极清理指南:免费开源工具 Win11Debloat,3 步告别卡顿与广告 【免费下载链接】Win11Debloat A simple, lightweight PowerShell script that allows you to remove pre-installed apps, disable telemetry, as well as perform various other c…

2026/9/21 16:40:08 阅读更多 →
【LeetCode】678.有效的括号字符串

【LeetCode】678.有效的括号字符串

欢迎来到李耶的频道【LeetCode面试题】。 有效的括号字符串 678.有效的括号字符串 题目 给定一个只包含三种字符的字符串:( ,) 和 *,写一个函数来检验这个字符串是否为有效字符串。有效字符串具有如下规则: 任何左括号 ( 必须…

2026/9/23 15:38:08 阅读更多 →

最新新闻

决策树算法详解:从信息熵到调参实战,理解机器学习基石

决策树算法详解:从信息熵到调参实战,理解机器学习基石

1. 为什么我把决策树当成机器学习的“第一课”在很多机器学习入门资料里,第一个接触的算法往往是线性回归,然后是逻辑回归,一路学到神经网络。但说实话,从我自己的学习经历和后来带新人的经验来看,决策树才是最适合建立…

2026/9/24 21:12:17 阅读更多 →
AI编程实战:构建人机协同的项目纪律系统

AI编程实战:构建人机协同的项目纪律系统

1. 从“写不出第一行代码”到跑通4个AI编程项目的实战路径我第一次打开Cursor时,光是配置Python环境就卡了两小时——不是因为不会装conda,而是根本不确定该用系统Python、pyenv还是直接上Docker。那会儿连requirements.txt里-e .代表什么都要查三遍文档…

2026/9/24 21:12:16 阅读更多 →
Python爬虫必学:接口、JSON与分页实战全解析

Python爬虫必学:接口、JSON与分页实战全解析

很多零基础学Python爬虫的人,真正卡住的地方往往不是requests用不熟,而是这样一个瞬间:网页上明明能看到自己想要的数据,可把抓下来的HTML源码翻个底朝天,就是搜不到目标文本。我第一次遇到这个情况,硬是折…

2026/9/24 21:12:16 阅读更多 →
CNN/VGG/ResNet人脸表情识别实战:从数据到部署全流程

CNN/VGG/ResNet人脸表情识别实战:从数据到部署全流程

简介:面向计算机专业毕业设计与深度学习初学者的完整人脸表情识别项目,以卷积神经网络为核心,覆盖数据预处理、模型搭建、训练评估与实时识别演示的完整流程,可直接用于课程作业、论文写作或实战练手。压缩包共36个文件&#xff0…

2026/9/24 21:12:16 阅读更多 →
工厂焊装车间照明节能改造:KNX照明系统方案分区灯控人体感应

工厂焊装车间照明节能改造:KNX照明系统方案分区灯控人体感应

焊装车间是汽车工厂中照明设计最复杂的场景之一。焊接作业时弧光强烈,而检验工位又要求极高照度——两者对灯光的需求完全不同,用同一套照明方案无法兼顾。据《乘用车工厂焊装车间照明节能设计的探讨》一文披露,一汽大众华北生产基地焊装车间…

2026/9/24 21:12:16 阅读更多 →
结构可靠性分析:从安全系数到失效概率的定量评估

结构可靠性分析:从安全系数到失效概率的定量评估

在结构设计里,最怕的不是算不准,而是你以为自己算得很准。刚工作那会儿,我按规范给一根简支梁取了安全系数2.5,所有验算都满足,结果现场反馈说梁在使用荷载下挠度偏大,局部焊缝还有开裂迹象。复核时我反复检…

2026/9/24 21:11:15 阅读更多 →

日新闻

基于YOLOv8的渔船作业监控系统:从环境搭建到边缘部署全流程

基于YOLOv8的渔船作业监控系统:从环境搭建到边缘部署全流程

简介:这是一套面向计算机、人工智能、自动化等专业学生与教师的毕业设计级项目资源,围绕YOLOv8实现渔船作业监控系统,可用于毕设、课程设计、大作业或项目立项演示。压缩包共97个文件,约24.21MB,以70个Python源码文件为…

2026/9/24 0:00:19 阅读更多 →
单细胞注释实战:基于Scanpy的标记基因与参考映射流程解析

单细胞注释实战:基于Scanpy的标记基因与参考映射流程解析

简介:一份基于单细胞RNA测序数据的细胞类型注释算法研究Python毕业设计源码,针对计算机相关专业正在做毕设或需要项目实战的学习者,可用于课程设计与期末大作业。项目代码完整、经导师指导评审通过,可直接运行,覆盖数据…

2026/9/24 0:00:19 阅读更多 →
C#源生成器实战:用增量生成器替代反射,告别AOT崩溃

C#源生成器实战:用增量生成器替代反射,告别AOT崩溃

第一次在项目里被反射卡住,是在一个老旧的WinForms模块里:几十个类依赖PropertyChanged通知,运行时反射读属性、发通知,每次启动慢半拍不说,一上.NET Native/AOT裁剪模式几乎全面崩盘。后来我把这段逻辑全部改成C#源生…

2026/9/24 0:00:19 阅读更多 →

周新闻

Flutter for OpenHarmony游戏卡片渐变背景实战:从原理到性能优化

Flutter for OpenHarmony游戏卡片渐变背景实战:从原理到性能优化

直接铺开项目本身吧。这几个月我一直在折腾一件事:用Flutter给OpenHarmony做一款游戏集合类的App,说白了就是把若干小游戏塞进一个壳里,用统一入口分发。这个方向本身不算新鲜,真正让我花了不少心思的,是首页那堆游戏卡…

2026/9/24 14:34:13 阅读更多 →
Word表格编号全攻略:从列表编号到题注交叉引用

Word表格编号全攻略:从列表编号到题注交叉引用

写Word文档,最让人头疼的往往是那些“看起来不起眼”的小问题。比如表格编号这事:今天在表后面多加了两个空白行,明天给客户交稿前发现整个章节的编号全部错位,光是挨个改序号就能耗掉大半个下午。我前阵子帮人整理一份上百页的技…

2026/9/24 9:10:42 阅读更多 →
从第一个站到第二个站:独立开发者的静态网站选型与落地实践

从第一个站到第二个站:独立开发者的静态网站选型与落地实践

1. 项目概述1.1 核心需求解析做独立开发者这几年,说实话,第一个网站上线的那天晚上我兴奋得没睡着。但等它跑了半年,流量惨淡、功能臃肿、代码自己都懒得看第二遍之后,我才慢慢琢磨明白一个道理:第一个网站是练手&…

2026/9/24 14:33:56 阅读更多 →

月新闻

持续集成 流水线自动化与 声明式交付 实践:原型怎样变成可用功能

持续集成 流水线自动化与 声明式交付 实践:原型怎样变成可用功能

持续集成 流水线自动化与 声明式交付 实践:原型怎样变成可用功能分类:[AI/大模型]细分主题:AI 增强型 CI/CD 流水线自动化与 GitOps 实践:Agent 工作流、工具调用与任务拆解:从原型到生产的验收清单很多团队在尝试用大…

2026/9/24 12:50:34 阅读更多 →
容器编排 生产环境运维与排障实战:复盘记录怎样真正派上用场

容器编排 生产环境运维与排障实战:复盘记录怎样真正派上用场

容器编排 生产环境运维与排障实战:复盘记录怎样真正派上用场分类:[工程技术]细分主题:Kubernetes 生产环境运维与排障实战:可复制的项目复盘模板与决策记录大部分团队的事故复盘报告,最后都变成了躺在 Confluence 或钉…

2026/9/24 14:33:48 阅读更多 →
容器 容器化技术与镜像安全管理:核心链路应该先拆哪一步

容器 容器化技术与镜像安全管理:核心链路应该先拆哪一步

容器 容器化技术与镜像安全管理:核心链路应该先拆哪一步分类:[工程技术]细分主题:Docker 容器化技术与镜像安全管理:核心链路的逐步实现与关键代码取舍面对一个积累了五六年历史包袱的单体架构应用(包含 Web 接口、后台…

2026/9/24 12:49:17 阅读更多 →