网易首页 > 网易号 > 正文 申请入驻

AuthCore的令牌家族:一个拒绝做JWT花瓶的IAM服务

0
分享至

“目标不是又一个JWT登录教程项目。”AuthCore的构建者在它的技术博客中这样写道。他们要的是一个安全敏感、行为足够真实的身份与访问管理后端服务,迫使团队直面令牌生命周期、失败处理、审计纪律和运维证据。这个名为AuthCore的项目,用FastAPI搭骨架,塞进了PostgreSQL、Redis、Celery、Alembic、Docker、GitHub Actions和Trivy,把“生产级”三个字烙在了每一行代码里。

架构图很直白:客户端请求先撞上Uvicorn驱动的FastAPI应用,身后是四员大将。PostgreSQL负责存储用户、会话、令牌家族、MFA配置、RBAC角色和审计日志,所有持久化的命根子都在这儿。Redis扛起速率限制计数器、登录失败计数器和锁机状态,把热点数据挡在数据库门外。Celery作为后台任务地基,目前只用来递送邮件,但明摆着留着给日后任何异步动作。最后,一条GitHub Actions CI流水线严阵以待,依次跑Ruff lint、Black格式检查、带Postgres和Redis服务的Docker Compose测试、80%覆盖率门禁、Docker镜像构建和Trivy严重漏洞扫描。这条线断一次,就别想合入。

路由表划分得很清楚。认证部分的三条POST:注册、登录和刷新令牌;MFA部分四条:初始化设置、验证、禁用和挑战验证;会话部分供用户查看或删除自己的会话;管理员路由只有超级用户能碰,管着RBAC角色和审计日志查询。整张表没有一条多余的路由,但也把日常IAM需要的口子开齐了。

注册流程的开场是邮箱归一化。紧接着密码策略上场:至少12字符,小写、大写、数字、符号一个不落,直接怼掉常见弱密码和含邮箱用户名的字符串。如果开启了泄露检查,AuthCore会调 HaveIBeenPwned 的 k-anonymity 接口——只发送密码SHA-1哈希的前5个字符,原始密码从未离开系统。通过检查的明文再用bcrypt加盐哈希,然后创建用户、生成初始会话、签发访问令牌和刷新令牌,最后写一条审计事件。这环环相扣的7步,没有一步是纯粹为了跑通而写。

登录时先查Redis锁机状态,一旦锁了直接甩回423 StatusCode。没锁就验密码:失败则递增Redis计数器、写失败审计事件、返回401;成功就把计数器清零。接下来的岔路在于MFA。如果用户没启用MFA,立马发放两枚令牌。如果启用了,只返回一个短生命的MFA挑战令牌,必须等用户输完TOTP验证码并通过验证后,才能拿到完整的访问和刷新令牌。这意味着即使密码泄露,攻击者没有TOTP设备照样进不去。

为刷新令牌加上家族和重用检测,是AuthCore最硬核的一块。访问令牌短命,刷新令牌长命,后者因此需要更严的管教。每个令牌家族同时只有一个合法刷新令牌——最新签发的那枚。轮换时,客户端呈上刷新令牌,服务端验签后,拿它的哈希去和库里该家族最新哈希比对:匹配就签发新令牌、新刷新令牌,更新哈希;不匹配——也就是有人拿旧令牌重放——立刻废掉整个家族,写审计事件,返回401。值得注意的一个实现细节:生成HTTP异常前的失败审计事件,是在抛异常之前显式提交的。在FastAPI里,这个顺序保证了哪怕请求被异常打断,审计记录已经落盘,不会跟着回滚一起消失。

从注册时的密码泄露检测,到登录时的锁机和挑战令牌,再到刷新令牌的家族重用检测,AuthCore把IAM服务里那些通常被演示项目跳过的角落一一照亮。它不是又一个教你生成JWT的教程,而是一份用真实行为逼着自己做安全决策的答卷。

特别声明:以上内容(如有图片或视频亦包括在内)为自媒体平台“网易号”用户上传并发布,本平台仅提供信息存储服务。

Notice: The content above (including the pictures and videos if any) is uploaded and posted by a user of NetEase Hao, which is a social media platform and only provides information storage services.

相关推荐
热点推荐
中国旅行博主称到菲律宾第1天,遭人下药迷晕被盗钱财:喝下搭讪女子递来液体后失去意识,事后监控显示自己被一路尾随;当地警方已立案

中国旅行博主称到菲律宾第1天,遭人下药迷晕被盗钱财:喝下搭讪女子递来液体后失去意识,事后监控显示自己被一路尾随;当地警方已立案

扬子晚报
2026-06-25 14:23:46
行程结束,中方离开欧盟总部,临走前交换清单,冯德莱恩痛下黑手

行程结束,中方离开欧盟总部,临走前交换清单,冯德莱恩痛下黑手

影孖看世界
2026-06-30 15:32:03
未来5年,有可能退出市场的4个新能源汽车品牌,这些车建议不要买

未来5年,有可能退出市场的4个新能源汽车品牌,这些车建议不要买

阿芒娱乐说
2026-06-30 06:20:37
官宣!番禺沙溪全面清租,限商户7月10日前搬走!

官宣!番禺沙溪全面清租,限商户7月10日前搬走!

广州楼市发布
2026-06-30 21:58:55
两任国防部长判死缓,今天不得不提这个人了。

两任国防部长判死缓,今天不得不提这个人了。

华人星光
2026-05-08 11:04:21
人口大迁徙已成定局?明后年,越来越多的人会举家流入这4座城市

人口大迁徙已成定局?明后年,越来越多的人会举家流入这4座城市

琴音似君语
2026-06-26 16:39:55
我今年22岁,谈过5个男朋友,基本都同居过,我妈说我不自爱

我今年22岁,谈过5个男朋友,基本都同居过,我妈说我不自爱

千秋文化
2026-06-24 19:41:05
同学聚会,发现一个扎心的现实:年过40的女同学中,1/3没有工作,1/3做着低薪但没前途工作,剩下的1/3基本都在体制内

同学聚会,发现一个扎心的现实:年过40的女同学中,1/3没有工作,1/3做着低薪但没前途工作,剩下的1/3基本都在体制内

品读时刻
2026-06-13 09:03:28
宝马汽车销售公司因造谣小米被处罚40万元!

宝马汽车销售公司因造谣小米被处罚40万元!

鞭牛士
2026-06-30 18:49:28
对不起,让我笑一会……

对不起,让我笑一会……

正经的米饭
2026-06-26 10:54:30
大宝贝和黄教主及大佬的瓜!

大宝贝和黄教主及大佬的瓜!

八卦疯叔
2026-06-29 09:50:03
凄惨!阿根廷球星全家殒命!妻儿全部遇难,一夜间沦为孤家寡人

凄惨!阿根廷球星全家殒命!妻儿全部遇难,一夜间沦为孤家寡人

林轻吟
2026-06-30 19:45:49
CCTV5+直播中日男篮大战,12人名单没出炉,郭士强按最强阵容备战

CCTV5+直播中日男篮大战,12人名单没出炉,郭士强按最强阵容备战

体育大学僧
2026-06-30 13:19:58
人伦大乱,正在悄悄毁掉无数中国家庭!看似平常,实则家道衰败

人伦大乱,正在悄悄毁掉无数中国家庭!看似平常,实则家道衰败

游戏收藏指南
2026-06-29 06:41:55
50岁大妈救受伤蛇养12年,宠物院长捂嘴尖叫:这哪是蛇啊

50岁大妈救受伤蛇养12年,宠物院长捂嘴尖叫:这哪是蛇啊

故事秘栈
2025-05-17 18:42:12
官宣!人口流入的城市,要疯狂建高中了

官宣!人口流入的城市,要疯狂建高中了

城市财经
2026-06-30 12:28:32
父亲正国级、母亲副国级!顶级高干独女,晚年低头“化缘”扶贫

父亲正国级、母亲副国级!顶级高干独女,晚年低头“化缘”扶贫

蹲坑看世界
2026-06-30 08:45:55
里子面子都丢了!管不住下半身的任素汐,一场演唱会撕下她的体面

里子面子都丢了!管不住下半身的任素汐,一场演唱会撕下她的体面

温读史
2026-07-01 02:06:34
吴建豪再婚太太正面照曝光,是艳丽的日本女歌手,经纪公司已确认

吴建豪再婚太太正面照曝光,是艳丽的日本女歌手,经纪公司已确认

胡一舸南游y
2026-06-30 17:12:55
金鹰奖视帝投票排名:张译倒数,于和伟仅第三,第一名毋庸置疑

金鹰奖视帝投票排名:张译倒数,于和伟仅第三,第一名毋庸置疑

翰飞观事
2026-06-30 19:23:08
2026-07-01 04:31:00
摸鱼算法
摸鱼算法
致力于用最前沿的AI技术,换取更多发呆时间的三十岁青年。
256文章数 51关注度
往期回顾 全部

科技要闻

iPhone18 Pro遭泄密!印度代工商惹祸

头条要闻

坎贝尔承认:中国是最成功渡过难关的国家

头条要闻

坎贝尔承认:中国是最成功渡过难关的国家

体育要闻

德国足球,脸都不要了

娱乐要闻

黄晓明沦陷!羡慕周杰伦能降住昆凌

财经要闻

万亿“寒王”,历史时刻

汽车要闻

奇瑞风云A9探店 五个理由一定来看看

态度原创

教育
旅游
亲子
健康
房产

教育要闻

考上玄外又不想去了,放弃的人不止一个!网友纷纷表示不理解!

旅游要闻

云南这条山沟,为啥敢叫潇湘?看过山水才懂古人浪漫!

亲子要闻

我来兑现2年前的承诺啦!

狂吃“糯叽叽”小心肠梗阻!

房产要闻

TOP10单盘狂卖210亿!海南楼市,上半年热销榜单出炉

无障碍浏览 进入关怀版