← 返回信息流
AI 资讯Hacker News·3 小时前

Ory 发布基于 Go 语言的开源 API 密钥服务器

原标题:Show HN: Open-source API Key server written in Go by Ory

速览

Ory 发布了一款使用 Go 语言编写的开源 API 密钥服务器。该项目旨在为开发者提供安全、高效的 API 密钥管理解决方案。作为基础设施工具,它有助于提升应用系统的安全性和可维护性。

AI 深度解读

Show HN:Ory 发布开源 API 密钥服务器 Ory Talos

背景

在云原生和微服务架构日益普及的今天,API 密钥(API Keys)已成为身份验证和授权的核心机制。然而,随着系统规模的扩大,如何高效、安全地管理海量 API 密钥的签发、验证和撤销,同时保持低延迟和高吞吐量,成为了许多开发者和企业面临的挑战。

Ory 是一家专注于构建云原生身份和访问管理(IAM)基础设施的公司。其生态系统包括 Ory Kratos(身份管理)、Ory Hydra(OAuth2/OIDC 提供程序)、Ory Oathkeeper(访问代理)和 Ory Keto(策略决策点)。为了进一步完善其身份安全拼图,Ory 推出了 Ory Talos,这是一个用 Go 语言编写的开源 API 密钥服务器,旨在解决大规模系统下的密钥管理痛点。

核心内容

Ory Talos 是一个可扩展且安全的 API 密钥服务器,专为低延迟验证、水平扩展和可预测的操作而优化。它遵循既定的 API 密钥安全最佳实践,能够签发、验证、撤销和派生 API 密钥以及短期令牌,适用于高吞吐量的系统。

核心功能与设计原则

Ory Talos 的设计重点包括:

  • 规模化密钥管理:支持大规模地签发、验证和撤销 API 密钥。
  • 统一验证:支持导入外部签发的 API 密钥,实现统一的验证流程。
  • 令牌派生:能够从长期有效的密钥中派生出短期的 JWT(JSON Web Token)和 macaroon 令牌,减少服务器负载。
  • Side-car 部署:支持旁路部署模式,以实现快速的 API 密钥验证。
  • 低延迟验证:通过缓存机制和最终一致性撤销策略,确保验证过程的低延迟。
  • 可预测的操作:通过结构化日志、指标监控和链路追踪,确保运维的可观测性。

架构优势

Ory Talos 遵循云架构最佳实践,具备以下特性:

  • 单一二进制文件运行:提供三种部署模式:admin(管理)、self-service(自助服务)或 all-in-one(全合一)。
  • 混合验证机制
    • API 密钥验证通过数据库查询配合缓存实现低延迟。
    • 派生的 JWT 和 macaroon 令牌支持离线验证,无需数据库查找。
  • 职责分离:将管理面(Admin)和自助服务面(Self-service)分离,确保密钥创建、撤销、派生和验证的独立扩展和安全隔离,特别是支持基于“持有证明”(Proof-of-Possession)的自助撤销。
  • 水平扩展能力:支持外部数据库(Postgres、MySQL、CockroachDB)和可选的分布式缓存,适应现代云原生环境(如 Kubernetes)。
  • 离线令牌生成:支持离线生成作用域受限的短期令牌,使代理程序、CI/CD 作业和服务无需在每次请求时调用服务器。
  • 安全路由:保持凭证路由、哈希和验证的集中化,并采用恒定时间(constant-time)算法以防止时序攻击。

部署选项

用户可以选择两种主要方式运行 Ory Talos:

  1. Ory Network(托管服务)

    • 这是在生产环境中使用 Ory Talos 最快的方式。
    • 提供全球边缘节点的全球低延迟 API 密钥签发、验证和派生。
    • 集成 OAuth2 和 OpenID Connect 用于单点登录(SSO)、API 访问和机器对机器授权。
    • 支持基于 Zanzibar 模型的低延迟权限检查(使用 Ory Permission Language)。
    • 提供符合 GDPR 要求的存储,注重数据本地化和合规性。
    • 提供基于用量的公平定价。
  2. 自托管(Self-hosted)

    • 用户拥有对基础设施、部署和定制的完全控制权。
    • 开源版(OSS):作为单一实例运行,使用嵌入式 SQLite 数据库。适合个人、研究人员、黑客以及希望进行实验、原型开发或运行低流量工作负载且无需服务等级协议(SLA)的公司。
    • 企业版(OEL):在自托管基础上增加企业级功能,包括多节点部署、多租户、分布式缓存、速率限制执行、边缘验证节点、定期安全发布(含 CVE 补丁及 SLA)、高级扩展支持、优先技术支持以及私有 Docker 注册表访问。

快速开始

用户可以通过安装 Ory CLI 并使用 Ory Network,或者使用 Docker Compose 在本地运行 Ory Talos。

  • 安装 CLI
    bash <(curl https://raw.githubusercontent.com/ory/meta/master/install.sh) -b . ory
    sudo mv ./ory /usr/local/bin/
    
  • 认证与创建项目
    ory auth
    ory create project --create-workspace "Ory Open Source" --name "GitHub Quickstart" --use-project
    
  • 本地运行(开源版)
    docker-compose -f docker-compose.oss.yaml up --build
    
    API 将在 http://localhost:4420 可用。

生态系统与其他 Ory 组件

Ory 的架构设计原则包括:最小依赖、随处运行、 effortless 扩展、最小化人为和网络错误空间。二进制文件小巧,支持 ARM、AMD64、i386 等处理器架构以及 FreeBSD、Linux、macOS、Windows 等操作系统,无需 Java、Node、Ruby 等系统依赖。

Ory Talos 是 Ory 生态系统的一部分,其他关键组件包括:

  • Ory Kratos:API 优先的身份和用户管理系统,实现自助登录/注册、多因素认证(MFA/2FA)、账户恢复和验证等功能。
  • Ory Hydra:OpenID Certified™ OAuth2 和 OpenID Connect 提供程序,可通过编写小型“桥接”应用连接到任何现有身份系统,提供对 UI 和用户体验流的绝对控制。
  • Ory Oathkeeper:BeyondCorp/零信任身份与访问代理(IAP),支持可配置的认证、授权和请求变异规则,支持 JWT、Access Tokens、API Keys、mTLS 等认证方式。
  • Ory Keto:策略决策点(PDP),使用类似 AWS IAM 策略的访问控制策略集,确定主体(用户、应用、服务等)是否有权对资源执行特定操作。

关键要点

  • 高性能与低延迟:Ory Talos 通过缓存和离线令牌派生机制,显著降低了 API 密钥验证的延迟,适合高吞吐量场景。
  • 灵活部署:支持从单机 SQLite 原型到大规模分布式 Kubernetes 集群的多种部署模式,兼顾灵活性与扩展性。
  • 安全最佳实践:采用恒定时间验证、结构化日志、链路追踪以及支持导入外部密钥,确保系统的安全性和可观测性。
  • 社区驱动:Ory 社区拥有超过 50,000 名成员,其技术栈每天保护超过 70 亿次 API 请求,显示出强大的社区影响力和生产验证。
  • 商业化路径清晰:提供开源版供开发和测试,企业版则通过 OEL 提供多租户、SLA 支持和优先服务,满足不同规模企业的需求。
  • 集成性强:作为 Ory 生态系统的一部分,Ory Talos 可与 Kratos、Hydra、Oathkeeper 和 Keto 无缝集成,构建完整的身份与访问管理解决方案。

意义与影响

Ory Talos 的发布填补了开源领域在专门化、高性能 API 密钥管理服务器方面的空白。对于正在构建大规模微服务、SaaS 平台或需要处理海量 API 调用的企业而言,Ory Talos 提供了一个经过生产验证、安全且易于集成的解决方案。

其设计哲学强调“云原生”和“零信任”,通过分离验证路径(在线验证 vs 离线令牌)和职责分离,帮助开发者构建更具弹性和安全性的系统。此外,O

查看原文 →github.com