当前位置: 首页 > article >正文

2026 年重启 BrowserID:开发者为定制应用打造 WKID 身份服务器

2026 年重启 BrowserID我正在构建 WKIDWakamoleguy 的身份服务器这是一个 [BrowserID](https://en.wikipedia.org/wiki/Mozilla_Persona) 风格的身份提供商IdP用于我为自己、朋友和家人开发的定制应用程序。下面来谈谈我为何要重拾这个已停用 10 年的协议。大语言模型LLMs让开发者将想法转化为实用应用变得前所未有的容易。较低的入门门槛使得专为个人使用或供少数亲朋好友使用的小型定制项目如雨后春笋般涌现。这类软件从定义上来说是自由的因为用户即开发者可以根据自己的意愿随意修改。我自己也参与过一些这样的项目但用户管理一直是我头疼的问题。即便一个应用是为满足我自己的需求而开发我也常常想展示我正在做的东西所以 [Tailnets](https://tailscale.com/docs/concepts/tailnet) 和 [forward-auth 网关](https://www.authelia.com/) 并不适用。我不想为每个服务都重新开发用户管理功能同时也不希望我那美国女孩玩偶鞋收藏伴侣应用依赖谷歌、Auth0 或其他可能会暂停我账户的公司的价值观。事实证明BrowserID 非常适合这种情况它基于电子邮件域名进行联合认证而我可以控制自己的域名。这意味着在我的认证流程中无需他人参与。它默认具有隐私性和抗审查性。身份提供商不会看到其用户登录的网站。它使用电子邮件地址作为标识符因此我无需单独收集电子邮件地址并将其映射到密码密钥、OIDC 标识符等。对于依赖方来说实现起来非常轻量级。无需像在 [Authentik](https://goauthentik.io/) 这样的集中式自托管服务器上那样为每个应用在身份提供商处进行注册。对于不熟悉的人来说BrowserID 的流程与 OAuth 流程很相似网站显示“登录”按钮启动 BrowserID 流程。BrowserID 提示用户输入电子邮件地址。根据该地址用户会被引导至其身份提供商进行登录。身份提供商向 BrowserID 对话框提供用户身份的加密签名断言BrowserID 对话框对其进行签名并转发给原始网站。网站接收经过验证的电子邮件地址检查签名并创建会话。如果你对 BrowserID 非常熟悉可能会想知道 WKID 是否依赖第三方 cookie而如今浏览器对第三方 cookie 的屏蔽越来越严格。为避免这个问题我确实需要对规范进行一些调整但我已经有了应对方案。BrowserID 在 2016 年失败了但 WKID 不会Mozilla 在推广 BrowserID 时遇到了鸡和蛋的问题。除非有足够多的依赖方使用否则身份提供商没有动力加入联盟而依赖方在用户的身份提供商不支持的情况下也不想使用它。Mozilla 试图通过托管 persona.org 作为备用身份提供商来解决这个问题该提供商可以验证任何电子邮件地址但最终仍未能获得足够的发展动力。我不会遇到这个问题因为我改变了目标。我并不想在全球身份提供商市场中获胜。WKID 本身就是为我自己使用而开发的定制应用。如果只有我自己的几个业余服务使用它而且只供一个用户使用那也算是成功。如果其他人觉得它有用并将其用于他们的项目我们还能额外实现联合认证。出于这个原因并且由于实际发送电子邮件会带来一系列问题如可送达性、滥用、声誉等我根本不打算提供备用身份提供商功能这意味着除非用户的电子邮件域名提供商支持 WKID否则他们将无法使用我的应用。而且像 gmail.com、outlook.com、yahoo.com、icloud.com 等大型提供商永远不会支持。对于任何企业来说这都是不切实际的假设但请记住这些都是定制应用。我的用户是我和我的家人我们使用的是我域名下的电子邮件。WKID 当前的进展WKID 仍在开发中还不适合分享。端到端的流程已经可以正常运行并经过测试但还需要进行一些样式优化、文档清理和简化自托管说明。我从事这项工作的主要优势在于自从事依赖电子邮件、XMPP 和 SIP 地址均遵循 userdomain 格式的统一通信应用开发以来我就对 BrowserID 情有独钟此外我还有一二十年构建 Web SaaS 的经验。如果你在身份验证服务方面有经验并能提供建议或者想在自己的项目中试用 WKID请 我。干杯在 [Twitter](https://twitter.com/share?urlhttps://www.wakamoleguy.com/p/reviving-browserid-in-2026textReviving%20BrowserID%20in%202026viawakamoleguy) 或 [Mastodon](https://toot.kytta.dev/?textReviving%20BrowserID%20in%202026%20https://www.wakamoleguy.com/p/reviving-browserid-in-2026) 上分享本文。关于我大家好我叫 Will Mitchell是一名软件工程师和工程经理早在我还不能开车的时候就开始从事 Web 开发。我曾在从种子轮初创公司到 Dropbox 和 Asana 等各种规模的公司发布过软件。我住在新泽西州在网上的昵称是 wakamoleguy。找到 /wakamoleguy[GitHub](//github.com/wakamoleguy)[Twitter](//twitter.com/wakamoleguy)[Mastodon](//mastodon.social/wakamoleguy)[RSS](/feed.xml)

相关文章:

2026 年重启 BrowserID:开发者为定制应用打造 WKID 身份服务器

2026 年重启 BrowserID我正在构建 WKID(Wakamoleguy 的身份服务器),这是一个 [BrowserID](https://en.wikipedia.org/wiki/Mozilla_Persona) 风格的身份提供商(IdP),用于我为自己、朋友和家人开发的定制应用…...

GnuPG 2.5.19 版本发布:新增功能、修复漏洞,旧版 2 个月后停维!

什么是 GnuPGGNU 隐私卫士(GnuPG,GPG)是 OpenPGP 和 S/MIME 标准的完整且免费的实现。它能对数据和通信进行加密和签名,有多功能的密钥管理系统,还有访问公钥目录的模块。GnuPG 本身是命令行工具,方便和其他…...

Codex技能大揭秘:自动化工作流、多样功能及创建贡献指南!

超棒的Codex技能这是一份精心整理的实用Codex技能列表,可用于在Codex CLI和API中实现工作流自动化。想让技能的功能不止于生成文本?Codex可以发送邮件、创建问题、发布到Slack,还能在1000多个应用程序中执行操作。快速入门:为Code…...

80年代法国电视加密技术Discret 11:曾改变行业格局,却因盗版停用

【FABIEN SANGLARDS WEBSITE相关信息】 网站提供了联系方式(CONTACT)、RSS订阅(RSS)和捐赠渠道(DONATE)。时间为2020年6月7日,主题是80年代法国电视加密技术Discret 11。 【80年代法国电视情况】…...

打开文件有多难?Flatpak 安全分析暴露问题,修复后更安全

艰难地打开一个文件在不同场景下,打开文件难度不同。若开发涉及安全边界且与文件有关的东西,打开文件可能极其困难。在最坏情况下,安全边界两侧进程操作共享文件系统树,会面临子路径含 ..、路径组件为符号链接、TOCTOU 竞态等问题…...

基于主从博弈的电热综合能源系统动态定价策略与能量管理优化模型研究——MATLAB实现与CPLE...

MATLAB代码:基于主从博弈的电热综合能源系统动态定价与能量管理 关键词:主从博弈 电热综合能源 动态定价 能量管理 仿真平台:MATLAB 平台 优势:代码具有一定的深度和创新性,注释清晰,非烂大街的代码&…...

【第5章 AI Agent 与工具调用】5.7 章节实战(二):多Agent协作的信息抽取系统

写在前面 在真实业务场景中,信息抽取往往不是单一模型能够“一键完成”的任务。面对海量、多源、跨领域的文本数据,单体的抽取模型往往面临 **性能瓶颈**、**可维护性差**、**扩展困难** 等问题。于是,**多 Agent 协作**(Multi‑Agent Collaboration) 成为了一种被广泛讨…...

【第5章 AI Agent 与工具调用】5.6 章节实战(一):用 LangChain 构建 ReAct Agent

在前面 让我们先来看一个生活中常见的场景。假设你让 AI 助手帮你完成这样的任务:"帮我查一下明天北京到上海的机票,找出最便宜的选项,然后帮我订那个航班,最后把行程添加到日历里。" 这个任务对人类来说,需要思考、查询、比较、操作等多个步骤的组合。但早期…...

如何在5分钟内完成BepInEx插件框架的完整安装指南

如何在5分钟内完成BepInEx插件框架的完整安装指南 【免费下载链接】BepInEx Unity / XNA game patcher and plugin framework 项目地址: https://gitcode.com/GitHub_Trending/be/BepInEx BepInEx是一款功能强大的游戏插件框架,专为Unity Mono、IL2CPP和.NET…...

Moonlight TV:如何用开源方案实现30ms低延迟游戏串流?

Moonlight TV:如何用开源方案实现30ms低延迟游戏串流? 【免费下载链接】moonlight-tv Lightweight NVIDIA GameStream Client, for LG webOS TV and embedded devices like Raspberry Pi 项目地址: https://gitcode.com/gh_mirrors/mo/moonlight-tv …...

3个关键步骤掌握XLeRobot强化学习训练:从零到实战的完整指南

3个关键步骤掌握XLeRobot强化学习训练:从零到实战的完整指南 【免费下载链接】XLeRobot XLeRobot: Practical Dual-Arm Mobile Home Robot for $660 项目地址: https://gitcode.com/GitHub_Trending/xl/XLeRobot 还在为机器人强化学习训练的高成本和复杂环境…...

5个技巧让TV Bro成为你智能电视的完美浏览器伴侣

5个技巧让TV Bro成为你智能电视的完美浏览器伴侣 【免费下载链接】tv-bro Simple web browser for android optimized to use with TV remote 项目地址: https://gitcode.com/gh_mirrors/tv/tv-bro TV Bro是一款专为Android电视优化的开源智能电视浏览器,通过…...

如何永久保存微信聊天记录:留痕项目终极指南

如何永久保存微信聊天记录:留痕项目终极指南 【免费下载链接】WeChatMsg 提取微信聊天记录,将其导出成HTML、Word、CSV文档永久保存,对聊天记录进行分析生成年度聊天报告 项目地址: https://gitcode.com/GitHub_Trending/we/WeChatMsg …...

2025终极指南:U校园自动答题神器AutoUnipus,免费实现100%正确率智能刷课

2025终极指南:U校园自动答题神器AutoUnipus,免费实现100%正确率智能刷课 【免费下载链接】AutoUnipus U校园脚本,支持全自动答题,百分百正确 2024最新版 项目地址: https://gitcode.com/gh_mirrors/au/AutoUnipus 还在为U校园平台繁重的网课任务而…...

新手避坑指南:74HC165级联硬件连接与C语言驱动调试全流程(从原理图到数据读取)

74HC165级联实战:从硬件连接到数据读取的深度避坑指南 第一次接触74HC165这类并行转串行芯片时,很多开发者都会遇到一个尴尬局面——按照教程连接电路、复制代码,但单片机就是读不回预期数据。作为电子设计中最经典的移位寄存器之一&#xff…...

Android Studio中文语言包:3步实现IDE界面全面本地化

Android Studio中文语言包:3步实现IDE界面全面本地化 【免费下载链接】AndroidStudioChineseLanguagePack AndroidStudio中文插件(官方修改版本) 项目地址: https://gitcode.com/gh_mirrors/an/AndroidStudioChineseLanguagePack Android Studio中…...

终极BT下载加速指南:如何用trackerslist让下载速度翻3倍 [特殊字符]

终极BT下载加速指南:如何用trackerslist让下载速度翻3倍 🚀 【免费下载链接】trackerslist Updated list of public BitTorrent trackers 项目地址: https://gitcode.com/GitHub_Trending/tr/trackerslist 还在为BT下载速度慢如蜗牛而烦恼吗&…...

3步实现CentOS-WSL高效部署方案:Windows开发环境深度整合实战

3步实现CentOS-WSL高效部署方案:Windows开发环境深度整合实战 【免费下载链接】CentOS-WSL A GitHub Actions automated CentOS RootFS to use with WSL 项目地址: https://gitcode.com/gh_mirrors/ce/CentOS-WSL CentOS-WSL项目通过GitHub Actions自动化将C…...

终极音乐AI入门指南:免费音乐分析数据集FMA的完整使用教程

终极音乐AI入门指南:免费音乐分析数据集FMA的完整使用教程 【免费下载链接】fma FMA: A Dataset For Music Analysis 项目地址: https://gitcode.com/gh_mirrors/fm/fma 您是否曾梦想让计算机理解音乐?或者想要构建一个能自动识别音乐流派的智能系…...

D2DX暗黑破坏神2现代优化指南:3步让你的经典游戏焕然一新

D2DX暗黑破坏神2现代优化指南:3步让你的经典游戏焕然一新 【免费下载链接】d2dx D2DX is a complete solution to make Diablo II run well on modern PCs, with high fps and better resolutions. 项目地址: https://gitcode.com/gh_mirrors/d2/d2dx 你是否…...

MCP 2026硬件兼容性TOP5断点全曝光:从DMA地址映射异常到ACPI表解析失败,附12个真实日志诊断模板

更多请点击: https://intelliparadigm.com 第一章:MCP 2026国产化硬件适配全景概览 MCP 2026(Multi-Core Processing Platform 2026)是面向关键基础设施领域推出的国产自主可控多核处理器平台,已全面支持飞腾D2000、…...

【Docker AI Toolkit 2026终极指南】:5大颠覆性新功能+3个生产环境避坑清单,早用早降本37%

更多请点击: https://intelliparadigm.com 第一章:Docker AI Toolkit 2026终极概览与价值定位 Docker AI Toolkit 2026 是面向生产级 AI 工程化的统一容器化平台,深度融合模型训练、推理服务、可观测性与合规治理能力。它不再仅是“Docker …...

VS Code Copilot Next 工作流配置避坑手册,17个官方文档未提及的权限陷阱与Token泄漏风险(含审计清单PDF)

更多请点击: https://intelliparadigm.com 第一章:VS Code Copilot Next 自动化工作流配置全景概览 VS Code Copilot Next 是微软推出的下一代智能编程助手,深度集成于 VS Code 编辑器中,支持上下文感知代码生成、自然语言指令执…...

为什么92%的MCP 2026试点项目在Phase 2失败?——来自中科院量子实验室的4个反直觉适配真相

更多请点击: https://intelliparadigm.com 第一章:为什么92%的MCP 2026试点项目在Phase 2失败?——来自中科院量子实验室的4个反直觉适配真相 适配层与量子态感知协议的隐性冲突 MCP 2026规范要求Phase 2启动时完成“动态拓扑感知校准”&am…...

BitLocker加密后,电脑变卡了?教你几招优化Win11磁盘性能与安全性的平衡术

BitLocker加密后电脑变卡?Win11磁盘性能与安全性的终极平衡术 "为什么我的电脑启用BitLocker之后,打开文件的速度明显变慢了?"这是许多Windows 11用户在开启磁盘加密后的第一反应。作为微软内置的企业级加密方案,BitLoc…...

3步立即掌握Ryujinx:如何快速解决Switch游戏在PC上卡顿的难题?

3步立即掌握Ryujinx:如何快速解决Switch游戏在PC上卡顿的难题? 【免费下载链接】Ryujinx 用 C# 编写的实验性 Nintendo Switch 模拟器 项目地址: https://gitcode.com/GitHub_Trending/ry/Ryujinx 想在电脑上畅玩《塞尔达传说:王国之泪…...

Pandas数据清洗与优化实战技巧

1. 数据按摩的艺术:Pandas实战指南刚接触数据分析时,我总把数据想象成一块未经雕琢的大理石——原始、粗糙但充满可能。而Pandas就是我的雕刻刀,通过一系列"数据按摩"技巧,把杂乱无章的原始数据变成结构清晰的宝藏。今天…...

明日方舟全自动辅助MAA:一键长草的终极指南与实战教程

明日方舟全自动辅助MAA:一键长草的终极指南与实战教程 【免费下载链接】MaaAssistantArknights 《明日方舟》小助手,全日常一键长草!| A one-click tool for the daily tasks of Arknights, supporting all clients. 项目地址: https://git…...

ChatGPT翻译实战:技术文档与文学内容的高效处理

1. 项目概述:当ChatGPT遇上翻译需求去年接手一个跨国项目时,我需要在48小时内完成87页技术文档的本地化。传统翻译工具输出的机械结果让我不得不花费大量时间二次润色,直到尝试用ChatGPT进行定向优化。这个经历让我系统整理了AI翻译的实战方法…...

MySQL ER_GRP_RPL_SERVER_SET_TO_READ_ONLY_DUE_TO_ERRORS报错怎么修复?

针对 MySQL ER_GRP_RPL_SERVER_SET_TO_READ_ONLY_DUE_TO_ERRORS 报错,修复的核心在于排查服务器组复制错误原因并恢复读写模式。远程处理时,首先登录数据库检查全局只读状态,若因复制错误导致自动只读,需查看错误日志定位具体故障…...