ory/hydra

GitHub: ory/hydra

Ory Hydra 是一个获得 OpenID 认证的高性能 OAuth 2.0 和 OpenID Connect 服务器,通过无头 API 与现有用户管理系统集成,解决互联网-scale 的身份认证与授权问题。

Stars: 17311 | Forks: 1584

Ory Hydra - Open Source OAuth 2 and OpenID Connect server

聊天 · 讨论 · 简报 · 文档 · 体验 Ory Network · 招聘

Ory Hydra 是一个经过强化的、获得 OpenID 认证的 OAuth 2.0 服务器和 OpenID Connect Provider,针对低延迟、高吞吐量和低资源消耗进行了优化。它通过登录和授权应用连接到你现有的身份提供商,让你对用户界面和体验拥有绝对的控制权。 - [什么是 Ory Hydra?](#what-is-ory-hydra) - [为什么选择 Ory Hydra](#why-ory-hydra) - [OAuth2 和 OpenID Connect:开放标准](#oauth2-and-openid-connect-open-standards) - [OpenID Connect 认证](#openid-connect-certified) - [部署选项](#deployment-options) - [在 Ory Network 上使用 Ory Hydra](#use-ory-hydra-on-the-ory-network) - [自托管 Ory Hydra](#self-host-ory-hydra) - [快速开始](#quickstart) - [谁在使用 Ory Hydra](#who-is-using-ory-hydra) - [生态系统](#ecosystem) - [Ory Kratos:身份和用户基础设施与管理](#ory-kratos-identity-and-user-infrastructure-and-management) - [Ory Hydra:OAuth2 & OpenID Connect 服务器](#ory-hydra-oauth2--openid-connect-server) - [Ory Oathkeeper:身份与访问代理](#ory-oathkeeper-identity--access-proxy) - [Ory Keto:作为服务的访问控制策略](#ory-keto-access-control-policies-as-a-server) - [文档](#documentation) - [开发 Ory Hydra](#developing-ory-hydra) - [安全性](#security) - [披露漏洞](#disclosing-vulnerabilities) - [遥测](#telemetry) - [库和第三方项目](#libraries-and-third-party-projects) ## 什么是 Ory Hydra? Ory Hydra 是 OAuth 2.0 授权框架和 OpenID Connect Core 1.0 的服务器实现。它遵循 [云架构最佳实践](https://www.ory.com/docs/ecosystem/software-architecture-philosophy) 并专注于: - OAuth 2.0 和 OpenID Connect 流程 - Token 的颁发与验证 - Client 管理 - 授权和登录流程编排 - JWKS 管理 - 低延迟和高吞吐量 我们建议从 [Ory Hydra 介绍文档](https://www.ory.com/docs/hydra) 开始, 以了解更多关于其架构、功能集以及它与其他系统比较的信息。 ### 为什么选择 Ory Hydra Ory Hydra 旨在: - 成为一个没有用户管理的独立 OAuth 2.0 和 OpenID Connect 服务器 - 通过登录和授权应用连接到任何现有的身份提供商 - 让你对用户界面和体验流程拥有绝对的控制权 - 与任何身份验证 endpoint 配合使用: [Ory Kratos](https://github.com/ory/kratos), [authboss](https://github.com/go-authboss/authboss), [User Frosting](https://www.userfrosting.com/),或者你的专有系统 - 扩展以支持大量 client 和 token - 适应现代云原生环境,例如 Kubernetes 和托管平台 ### OAuth2 和 OpenID Connect:开放标准 Ory Hydra 实现了 IETF 制定的开放标准: - [OAuth 2.0 授权框架](https://tools.ietf.org/html/rfc6749) - [OAuth 2.0 威胁模型和安全注意事项](https://tools.ietf.org/html/rfc6819) - [OAuth 2.0 Token 撤销](https://tools.ietf.org/html/rfc7009) - [OAuth 2.0 Token 自省](https://tools.ietf.org/html/rfc7662) - [适用于原生应用的 OAuth 2.0](https://tools.ietf.org/html/draft-ietf-oauth-native-apps-10) - [OAuth 2.0 动态 Client 注册协议](https://datatracker.ietf.org/doc/html/rfc7591) - [OAuth 2.0 动态 Client 注册管理协议](https://datatracker.ietf.org/doc/html/rfc7592) - [OAuth 公共 Client 的代码交换证明密钥](https://tools.ietf.org/html/rfc7636) - [用于 OAuth 2.0 Client 身份验证和授权许可的 JSON Web Token (JWT) 配置](https://tools.ietf.org/html/rfc7523) 以及 OpenID Foundation 的标准: - [OpenID Connect Core 1.0](http://openid.net/specs/openid-connect-core-1_0.html) - [OpenID Connect Discovery 1.0](https://openid.net/specs/openid-connect-discovery-1_0.html) - [OpenID Connect 动态 Client 注册 1.0](https://openid.net/specs/openid-connect-registration-1_0.html) - [OpenID Connect Front-Channel Logout 1.0](https://openid.net/specs/openid-connect-frontchannel-1_0.html) - [OpenID Connect Back-Channel Logout 1.0](https://openid.net/specs/openid-connect-backchannel-1_0.html) ### OpenID Connect 认证 Ory Hydra 是经过 OpenID Foundation [认证的 OpenID Provider (OP)](http://openid.net/certification/#OPs)。

Ory Hydra is a certified OpenID Providier

以下 OpenID profile 已通过认证: - [基础 OpenID Provider](http://openid.net/specs/openid-connect-core-1_0.html#CodeFlowAuth) (response types `code`) - [隐式 OpenID Provider](http://openid.net/specs/openid-connect-core-1_0.html#ImplicitFlowAuth) (response types `id_token`, `id_token+token`) - [混合 OpenID Provider](http://openid.net/specs/openid-connect-core-1_0.html#HybridFlowAuth) (response types `code+id_token`, `code+id_token+token`, `code+token`) - [发布配置信息的 OpenID Provider](https://openid.net/specs/openid-connect-discovery-1_0.html) - [动态 OpenID Provider](https://openid.net/specs/openid-connect-registration-1_0.html) 为了获得认证,我们部署了 [参考用户登录和授权应用](https://github.com/ory/hydra-login-consent-node) (未经修改)以及 Ory Hydra v1.0.0 版本。 ## 部署选项 你可以通过两种主要方式运行 Ory Hydra: - 作为 Ory Network 上的托管服务 - 作为由你自行控制的自托管服务,包含或不包含 Ory Enterprise License ### 在 Ory Network 上使用 Ory Hydra [Ory Network](https://www.ory.com/cloud) 是在生产环境中使用 Ory 服务的最快方式。**Ory OAuth2 & OpenID Connect** 由开源的 Ory Hydra 服务器提供支持,并且是 API 兼容的。 Ory Network 提供: - 用于单点登录、API 访问和机器间授权的 OAuth2 和 OpenID Connect - 可扩展至数十亿用户和设备的身份与凭证管理 - 适用于 passkeys、生物识别、社交登录、SSO 和多因素身份验证的注册、登录和账户管理流程 - 预构建的登录、注册和账户管理页面及组件 - 基于 Zanzibar 模型并使用 Ory Permission Language 的低延迟权限检查 - 考虑到数据本地性和合规性的对 GDPR 友好的存储 - 用于管理和运维的基于 Web 的 Ory Console 和 Ory CLI - 与开源服务器兼容的云原生 API - 公平的、基于使用量的[定价](https://www.ory.com/pricing) 注册一个 [免费的开发者账户](https://console.ory.sh/registration?utm_source=github&utm_medium=banner&utm_campaign=hydra-readme) 即可开始使用。 ### 自托管 Ory Hydra 你可以自行运行 Ory Hydra,以实现对基础设施、部署和定制的完全控制。 [安装指南](https://www.ory.com/docs/hydra/install) 介绍了如何: - 在 Linux、macOS、Windows 和 Docker 上安装 Hydra - 配置数据库,例如 PostgreSQL、MySQL 和 CockroachDB - 部署到 Kubernetes 和其他编排系统 - 从源码构建 Hydra 本指南使用开源发行版,让你在无需许可证要求的情况下即可开始使用。它非常适合想要在没有 SLA 的情况下进行实验、原型设计或运行非重要性工作负载的个人、研究人员、黑客和公司。你可以获得完整的引擎核心,并且可以自由地检查、扩展和从源码构建它。 如果你将 Hydra 作为业务关键系统的一部分运行(例如为你的所有用户提供 OAuth2 和 OpenID Connect),你应该使用商业协议以降低运营和安全风险。**Ory Enterprise License (OEL)** 构建在自托管的 Hydra 之上,并提供: - 开源版本中不可用的额外企业功能 - 定期的安全发布(包括 CVE 补丁),并附带服务级别协议 - 对高级扩展、多租户和复杂部署的支持 - 包含 SLA、直接联系工程师和入职帮助的高级支持选项 - 访问私有 Docker registry,获取经过审查且频繁更新的最新企业版构建 为了保证修复 CVE、获取当前的企业构建、获得高级功能以及生产环境中的支持,你需要有效的 [Ory Enterprise License](https://www.ory.com/ory-enterprise-license) 并获得 访问 Ory Enterprise Docker registry 的权限。要了解更多信息, 请[联系 Ory 团队](https://www.ory.com/contact/)。 ## 快速开始 安装 [Ory CLI](https://www.ory.com/docs/guides/cli/installation) 并 创建一个新项目来体验 Ory OAuth2 & OpenID Connect。 ``` # 如果你还没有安装 Ory 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 ``` 体验 OAuth 2.0 Client Credentials 流程: ``` ory create oauth2-client \ --name "Client Credentials Demo" \ --grant-type client_credentials # 从输出中记录 client ID 和 secret ory perform client-credentials \ --client-id \ --client-secret # 从输出中记录 access token ory introspect token ``` 体验 OAuth 2.0 Authorize Code + OpenID Connect 流程: ``` ory create oauth2-client \ --name "Authorize Code with OpenID Connect Demo" \ --grant-type authorization_code,refresh_token \ --response-type code \ --redirect-uri http://127.0.0.1:4446/callback ory perform authorization-code \ --client-id \ --client-secret ``` ## 谁在使用 Ory Hydra 以下列表代表了一路陪伴我们,并对我们的生态系统做出杰出贡献的公司。_如果你认为你的公司应该在这里占有一席之地,请立即联系 office@ory.com_!
Name Logo Website Case Study
OpenAI OpenAI openai.com OpenAI Case Study
Fandom Fandom fandom.com Fandom Case Study
Lumin Lumin luminpdf.com Lumin Case Study
Sencrop Sencrop sencrop.com Sencrop Case Study
OSINT Industries OSINT Industries osint.industries OSINT Industries Case Study
HGV HGV hgv.it HGV Case Study
Maxroll Maxroll maxroll.gg Maxroll Case Study
Zezam Zezam zezam.io Zezam Case Study
T.RowePrice T.RowePrice troweprice.com
Mistral Mistral mistral.ai
Axel Springer Axel Springer axelspringer.com
Hemnet Hemnet hemnet.se
Cisco Cisco cisco.com
Presidencia de la República Dominicana Presidencia de la República Dominicana presidencia.gob.do
Moonpig Moonpig moonpig.com
Booster Booster choosebooster.com
Zaptec Zaptec zaptec.com
Klarna Klarna klarna.com
Raspberry PI Foundation Raspberry PI Foundation raspberrypi.org
Tulip Tulip Retail tulip.com
Hootsuite Hootsuite hootsuite.com
Segment Segment segment.com
Arduino Arduino arduino.cc
Sainsbury's Sainsbury's sainsburys.co.uk
Contraste Contraste contraste.com
inMusic InMusic inmusicbrands.com
Buhta Buhta buhta.com
Amplitude amplitude.com amplitude.com
TIER IV Kyma Project Serlo Padis
Cloudbear Security Onion Solutions Factly All My Funds
Nortal OrderMyGear R2Devops Paralus
dyrector.io pinniped.dev pvotal.tech
## 生态系统 在架构设计方面,我们基于几项指导原则来构建 Ory: - 最小化依赖 - 无处不在的运行能力 - 毫不费力的扩展性 - 最大程度减少人为和网络错误的空间 Ory 的架构设计为在诸如 Kubernetes、CloudFoundry、OpenShift 等容器编排系统及类似项目上运行效果最佳。二进制文件非常小(5-15MB),可用于所有流行的处理器类型(ARM、AMD64、i386)和操作系统(FreeBSD、Linux、macOS、Windows),且不需要系统依赖(Java、Node、Ruby、libxml 等)。 ### Ory Kratos:身份和用户基础设施与管理 [Ory Kratos](https://github.com/ory/kratos) 是一个 API 优先的身份和用户 管理系统,它是根据 [云架构最佳实践](https://www.ory.com/docs/next/ecosystem/software-architecture-philosophy) 构建的。 它实现了几乎每个软件应用程序都需要处理的核心用例:自助登录和注册、多因素身份验证 (MFA/2FA)、账户恢复和验证、个人资料以及账户管理。 ### Ory Hydra:OAuth2 & OpenID Connect 服务器 [Ory Hydra](https://github.com/ory/hydra) 是一个经过 OpenID Certified™ 认证的 OAuth2 和 OpenID Connect Provider,通过编写一个微小的“桥接”应用程序,它可以轻松连接到任何现有的身份系统。它赋予你对用户界面和用户体验流程的绝对控制权。 ### Ory Oathkeeper:身份与访问代理 [Ory Oathkeeper](https://github.com/ory/oathkeeper) 是一个 BeyondCorp/Zero Trust 身份与访问代理 (IAP),可为你的 Web 服务提供可配置的身份验证、授权和请求变异规则:验证 JWT、Access Token、API Key、mTLS;检查包含的 subject 是否有权执行 请求;将生成的内容编码到自定义 header(`X-User-ID`)、JSON Web Token 等中! ### Ory Keto:作为服务的访问控制策略 [Ory Keto](https://github.com/ory/keto) 是一个策略决策点。它使用一组 访问控制策略(类似于 AWS IAM Policies),以便 确定某个 subject(用户、应用程序、服务、汽车等)是否被授权 对某个资源执行特定的操作。 ## 文档 完整的 Ory Hydra 文档可在 [www.ory.com/docs/hydra](https://www.ory.com/docs/hydra) 获取,包括: - [安装指南](https://www.ory.com/docs/hydra/install) - [配置参考](https://www.ory.com/docs/hydra/reference/configuration) - [HTTP API 文档](https://www.ory.com/docs/hydra/sdk/api) - [安全架构](https://www.ory.com/docs/hydra/security-architecture) - [性能基准测试](https://www.ory.com/docs/performance/hydra) 有关升级和更新日志,请查看 [发布标签页](https://github.com/ory/hydra/releases) 和 [CHANGELOG.md](./CHANGELOG.md)。 ## 开发 Ory Hydra 有关以下信息,请参阅 [DEVELOP.md](./DEVELOP.md): - 贡献指南 - 前置条件 - 从源码安装 - 运行测试 - 构建 Docker 镜像 - 预览 API 文档 ## 安全性 OAuth2 及其相关规范超过了 400 页的书面文档。 实现 OAuth2 很容易,但正确实现却很难。Ory Hydra 受到 全球公司的信任,拥有活跃的社区,并且每天在生产环境中面对数百万个 请求。阅读 [安全指南](https://www.ory.com/docs/hydra/security-architecture) 以 了解有关密码学和安全概念的更多详细信息。 ### 披露漏洞 如果你认为自己发现了安全漏洞,请避免 在论坛、聊天室或 GitHub 上公开发布。你可以在我们的 [security.txt](https://www.ory.com/.well-known/security.txt)找到所有关于 负责任的漏洞披露的信息。 ## 遥测 我们的服务会收集汇总的、匿名的数据,这些数据可以选择 关闭。点击[这里](https://www.ory.com/docs/ecosystem/sqa)了解更多信息。 ## 库和第三方项目 官方: - [用户登录与授权示例](https://github.com/ory/hydra-login-consent-node) 社区: - 访问 [此文档获取社区项目和文章的概述](https://www.ory.com/docs/ecosystem/community) 开发者博客: - 访问 [Ory 博客](https://www.ory.com/blog/) 获取有关 Ory Hydra 和 Ory 生态系统的指南、教程和文章。
标签:EVTX分析, Go语言, OAuth2.0, OpenID Connect, Syscall, Web开发, 子域名突变, 日志审计, 测试用例, 程序破解, 请求拦截, 身份与访问管理