Hacker News 中文摘要

RSS订阅

Cloudflare为所有用户推出自托管OAuth -- Cloudflare launched self-managed OAuth for all

文章摘要

Cloudflare宣布全面开放OAuth服务,允许开发者自行创建和管理OAuth客户端,以更安全便捷的方式授权第三方应用访问其API,取代此前仅限少数合作方使用且管理不便的API令牌方式。

文章总结

好的,这是根据您的要求,对原文进行的中文重述:

标题:面向所有用户开放OAuth,解锁Cloudflare应用生态

Cloudflare为全球20%的网站提供服务,其开发者平台也集成了众多第三方工具。为此,Cloudflare提供了丰富的API,支持自动化、CI/CD等集成。近期,Cloudflare推出了自管理OAuth功能,允许用户创建和管理自己的OAuth客户端,以实现对Cloudflare API的委托访问。

虽然Cloudflare此前已支持OAuth(如Wrangler和部分合作伙伴集成),但仅限于少数手动接入的集成,并未广泛开放。开发者构建自己的集成时,只能依赖更难管理的API令牌。过去一年,Cloudflare在改进OAuth的授权、撤销和安全模型的同时,也接入了更多早期合作伙伴。随着开发者平台的发展和代理工具对委托访问需求的增长,向所有用户开放OAuth变得至关重要。

通过自管理OAuth,开发者可以提供标准的OAuth流程,让用户直接授予作用域访问权限,从而更轻松地构建SaaS集成、内部开发者平台和代理工具,同时让用户拥有更清晰的授权、更便捷的撤销和更强的控制力。

安全地扩展生态

早期的OAuth方案仅适用于少量精心管理的合作伙伴,其权限模型、授权体验和滥用防范机制尚不成熟。为此,Cloudflare今年更新了授权体验,使请求访问的应用及其权限更加清晰;在仪表板中增加了撤销功能,方便用户管理应用访问权限;并增强了应用所有权的可见性,以防范OAuth钓鱼攻击。

向所有用户开放自管理OAuth,还需要对底层OAuth引擎进行重大升级。这一过程需要周密的规划,以最大限度地减少对用户的影响,同时确保数据的稳定和安全。

规划OAuth引擎升级

Cloudflare的OAuth引擎基于开源项目Hydra。随着平台增长和代理工作流普及,原有部署已无法满足新需求。升级计划分两步进行:先升级到最新的1.X版本,评估变化后,再升级到2.X版本。

在规划1.X升级时,发现Hydra数据库的架构迁移会带来影响:创建索引会锁定关键表,影响用户操作;同时会向关键表添加列或移动列。此外,旧版SDK的SELECT *操作会因架构变更导致反序列化问题。为解决这些问题,Cloudflare重写了SQL迁移脚本(使用CREATE INDEX CONCURRENTLY),并构建了自定义版本的Hydra,以显式选择列而非SELECT *

对于更复杂的2.X升级,Cloudflare评估了多种方案,最终选择了蓝绿部署策略。由于升级和迁移过程需要数小时,系统必须在此期间持续正常运行。第一个蓝绿方案是禁用数据库写入,但这会阻止新的授权和撤销操作。为此,Cloudflare设计了另一种方案:保持数据库写入,但接受切换过程中部分写入丢失的风险。具体措施包括:延长令牌过期时间至数小时,以减少新令牌的写入;并利用Cloudflare Queues创建一个队列系统,在撤销事件发生时记录信息,待数据库切换到新版本后,再重放这些撤销事件,确保用户撤销操作不丢失。

执行升级

1.X升级过程顺利,自定义数据库迁移速度快且无用户影响。但切换后,出现了刷新令牌错误增加的问题。原因是新版本对刷新令牌的重用有更严格的失效机制,这会影响Wrangler和MCP客户端。Cloudflare通过在路由OAuth流量的Worker中添加刷新令牌合并行为来缓解此问题,短暂缓存刷新请求,避免因重试导致令牌链失效。而2.X版本的Hydra提供了可配置的“刷新令牌宽限期”,从根本上解决了此问题。

2.X升级采用了蓝绿部署策略。具体步骤包括:启用撤销重放捕获队列、复制并恢复数据库、清理违反新约束的现有数据、同时切换Hydra服务及两个关键内部系统,以及进行切换后的监控和验证。升级窗口选在Hydra请求量最低的时段。生产环境迁移耗时约三小时。切换后,发现授权服务中的数据清理任务过于激进,原因是Hydra迁移中的一个问题导致某些有效OAuth会话状态被破坏,引发了403错误。Cloudflare通过数据恢复和改进授权行为解决了此问题。升级完成后,OAuth流量保持稳定,系统性能和可靠性得到提升。

性能提升

升级后,数据库迁移涉及约1.325亿行更新和1.147亿行插入。Hydra API的P95延迟从185ms降至101ms(降低45%),内存占用、堆分配、协程数和CPU使用率均有显著下降。

面向所有用户的自管理OAuth

向所有用户开放OAuth是构建更广泛Cloudflare应用生态的重要一步。现在,任何Cloudflare用户都可以创建自己的OAuth应用并构建集成。用户可查阅文档或直接在仪表板中创建首个OAuth应用。

评论总结

以下是对评论内容的总结,涵盖主要观点和论据,并保留关键引用(中英文),同时保持不同观点的平衡性:

主要观点与论据

  1. 担忧Cloudflare转型为云平台,可能损害其核心优势

    • 评论2认为,Cloudflare转向云平台会削弱其原本擅长的“小型云和DIY托管”服务,一旦云服务收入超过核心业务,免费服务可能消失。
      • 引用:"Cloudflare turning into a Cloud platform is undoing what it was really doing well: making small clouds and diy hosting manageable..."
      • 引用:"Once their revenue from Cloud services overtakes their core offering, bye bye Cloudflare free and so on."
    • 评论5担心Cloudflare会像Google一样,因维护成本随意关闭服务。
      • 引用:"I hope Cloudflare does not turn into Google, with so many different things that they will eventually kill all of these services randomly..."
  2. 对OAuth引入的批评:复杂、滥用风险、缺乏必要性

    • 评论3认为,作为基础设施提供商,Cloudflare引入OAuth可能导致权限滥用,AWS等公司不这样做是有原因的。
      • 引用:"this idea of some user delegating permissions to their account to some third party client for infrastructure is ripe for abuses."
      • 引用:"If companies like AWS are not doing it then its for a good reason."
    • 评论6批评OAuth和企业认证过于复杂,希望保留简单的API密钥选项。
      • 引用:"Oauth and enterprise auth has to be the worst thing ever made... I just want a damn API key..."
    • 评论8讽刺许多开发团队不愿自行实现OAuth2,尽管有成熟库可用。
      • 引用:"You'd think implementing OAuth2 were splitting the atom the way so many dev teams won't even consider rolling their own..."
  3. 对博客内容和技术实现的质疑

    • 评论4认为博客内容冗长且缺乏新意,技术细节对用户无帮助,且Cloudflare本应更早推出此功能。
      • 引用:"It's full of technical details, but I'm really not sure who they're for... the fact that it took them this long should be embarrassing."
      • 引用:"For the record this is something they should have had... at least six or seven years ago?"
    • 评论7对“自管理OAuth”等概念感到困惑,认为文章解释不清。
      • 引用:"What's a 'self-managed' Oauth here? What is access is being granted to, who are the clients, who are the partners...?"
  4. 对Cloudflare未来方向的担忧

    • 评论9猜测Cloudflare最终会要求用户提供身份证明,以应对英国和美国部分州的法规。
      • 引用:"the end game: they will start requiring proof of id to access resources they host."
    • 评论10指出Cloudflare虽好用且不贵,但正将自己置于互联网中心,可能带来风险。
      • 引用:"Classic Cloudflare, for all, works well, not too expensive... positioning itself at the center of everything."
  5. 其他评论

    • 评论11提及Cloudflare裁员20%的新闻,暗示公司内部调整。
      • 引用:"Cloudflare to cut about 20% of its workforce"
    • 评论12批评文档缺乏简洁的入门示例。
      • 引用:"if you want a 3-step 'getting started' example you have to wade through the docs..."

平衡性总结

  • 支持方:无明确正面评论,但评论10承认Cloudflare“好用且不贵”。
  • 反对方:多数评论对OAuth引入、转型方向、技术实现和未来策略持批评或担忧态度。
  • 中立/质疑方:评论4、7、12主要针对博客内容和文档质量,而非功能本身。