
经 OpenID 认证的 OAuth 2.0 和 OpenID Connect 提供方,通过无头 API 为云原生应用提供令牌颁发、客户端管理、JWKS 及登录/同意流程编排。
Ory Hydra 是一个经过加固、通过 OpenID 认证的 OAuth 2.0 服务器和 OpenID Connect 提供程序,针对低延迟、高吞吐量和低资源 消耗进行了优化。它通过登录和 同意应用连接到您现有的身份提供商,让您对用户界面和体验拥有绝对控制权。
Ory Hydra 是 OAuth 2.0 授权框架 和 OpenID Connect Core 1.0 的服务器实现。它遵循 云架构最佳实践 并专注于:
我们建议从 Ory Hydra 介绍文档 开始,以了解更多 关于其架构、功能集以及它与其他系统的比较。
Ory Hydra 旨在:
Ory Hydra 实现了由 IETF 制定的开放标准:
以及 OpenID Foundation:
Ory Hydra 是 OpenID Foundation 的 认证 OpenID 提供程序 (OP)。
以下 OpenID 配置文件已通过认证:
code)id_token、id_token+token)code+id_token、code+id_token+token、code+token)为了获得认证,我们部署了 参考用户登录和同意应用 (未修改)以及 Ory Hydra v1.0.0。
您可以通过两种主要方式运行 Ory Hydra:
Ory Network 是在生产环境中使用 Ory 服务的最快方式。Ory OAuth2 & OpenID Connect 由开源 Ory Hydra 服务器提供支持,并且 API 兼容。
Ory Network 提供:
注册 免费开发者账户 即可开始。
您可以自行运行 Ory Hydra,以完全控制基础设施、部署 和自定义。
安装指南 说明了如何:
本指南使用开源发行版,让您无需满足许可证要求即可开始。 它非常适合希望在没有 SLA 的情况下进行实验、原型设计或运行非关键工作负载的个人、研究人员、黑客和公司。 您将获得完整的核心引擎,并且可以自由地检查、扩展和从源码构建。
如果您将 Hydra 作为业务关键型系统的一部分运行,例如为所有用户提供 OAuth2 和 OpenID Connect,则应使用商业协议来降低运营和安全风险。Ory Enterprise License (OEL) 构建在自托管 Hydra 之上,并提供:
为了获得有保障的 CVE 修复、最新的企业构建、高级功能以及 生产环境支持,您需要有效的 Ory Enterprise License 以及访问 Ory Enterprise Docker 注册表的权限。要了解更多, 联系 Ory 团队。
安装 Ory CLI 并 创建一个新项目来试用 Ory OAuth2 & OpenID Connect。```bash
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 客户端凭据流程:```bash
ory create oauth2-client \
--name "Client Credentials Demo" \
--grant-type client_credentials
# Note the client ID and secret from output
ory perform client-credentials \
--client-id <your-client-id> \
--client-secret <your-client-secret>
# Note the access token from output
ory introspect token <your-access-token>
试试 OAuth 2.0 授权码 + OpenID Connect 流程:```bash
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
<!--BEGIN ADOPTERS-->
Ory 社区的发展离不开个人、公司和维护者的支持。
Ory 团队感谢所有参与者——从提交错误报告和功能请求,
到贡献补丁和文档。Ory 社区拥有超过 50.000 名成员,
并且还在不断壮大。Ory 技术栈每天为数千家公司保护着
7.000.000.000+ 次 API 请求。
没有你们每一个人,这一切都不可能实现!
以下列表代表了一路陪伴我们、
并为我们的生态系统做出杰出贡献的公司。_如果您认为
您的公司应该在此占有一席之地,请立即联系
<a href="mailto:[email protected]">[email protected]</a>_!<table>
<thead>
<tr>
<th>名称</th>
<th>Logo</th>
<th>网站</th>
<th>案例研究</th>
</tr>
</thead>
<tbody>
<tr>
<td>OpenAI</td>
<td align="center">
<picture>
<source media="(prefers-color-scheme: dark)" srcset="https://raw.githubusercontent.com/ory/meta/master/static/adopters/light/openai.svg" />
<img height="32px" src="https://raw.githubusercontent.com/ory/meta/master/static/adopters/dark/openai.svg" alt="OpenAI">
</picture>
</td>
<td><a href="https://openai.com/">openai.com</a></td>
<td><a href="https://www.ory.com/case-studies/openai">OpenAI 案例研究</a></td>
</tr>
<tr>
<td>Fandom</td>
<td align="center">
<picture>
<source media="(prefers-color-scheme: dark)" srcset="https://raw.githubusercontent.com/ory/meta/master/static/adopters/light/fandom.svg" />
<img height="32px" src="https://raw.githubusercontent.com/ory/meta/master/static/adopters/dark/fandom.svg" alt="Fandom">
</picture>
</td>
<td><a href="https://www.fandom.com/">fandom.com</a></td>
<td><a href="https://www.ory.com/case-studies/fandom">Fandom 案例研究</a></td>
</tr>
<tr>
<td>Lumin</td>
<td align="center">
<picture>
<source media="(prefers-color-scheme: dark)" srcset="https://raw.githubusercontent.com/ory/meta/master/static/adopters/light/lumin.svg" />
<img height="32px" src="https://raw.githubusercontent.com/ory/meta/master/static/adopters/dark/lumin.svg" alt="Lumin">
</picture>
</td>
<td><a href="https://www.luminpdf.com/">luminpdf.com</a></td>
<td><a href="https://www.ory.com/case-studies/lumin">Lumin 案例研究</a></td>
</tr>
<tr>
<td>Sencrop</td>
<td align="center">
<picture>
<source media="(prefers-color-scheme: dark)" srcset="https://raw.githubusercontent.com/ory/meta/master/static/adopters/light/sencrop.svg" />
<img height="32px" src="https://raw.githubusercontent.com/ory/meta/master/static/adopters/dark/sencrop.svg" alt="Sencrop">
</picture>
</td>
<td><a href="https://sencrop.com/">sencrop.com</a></td>
<td><a href="https://www.ory.com/case-studies/sencrop">Sencrop 案例研究</a></td>
</tr>
<tr>
<td>OSINT Industries</td>
<td align="center">
<picture>
<source media="(prefers-color-scheme: dark)" srcset="https://raw.githubusercontent.com/ory/meta/master/static/adopters/light/osint.svg" />
<img height="32px" src="https://raw.githubusercontent.com/ory/meta/master/static/adopters/dark/osint.svg" alt="OSINT Industries">
</picture>
</td>
<td><a href="https://www.osint.industries/">osint.industries</a></td>
<td><a href="https://www.ory.com/case-studies/osint">OSINT Industries 案例研究</a></td>
</tr>
<tr>
<td>HGV</td>
<td align="center">
<picture>
<source media="(prefers-color-scheme: dark)" srcset="https://raw.githubusercontent.com/ory/meta/master/static/adopters/light/hgv.svg" />
<img height="32px" src="https://raw.githubusercontent.com/ory/meta/master/static/adopters/dark/hgv.svg" alt="HGV">
</picture>
</td>
<td><a href="https://www.hgv.it/">hgv.it</a></td>
<td><a href="https://www.ory.com/case-studies/hgv">HGV 案例研究</a></td>
</tr>
<tr>
<td>Maxroll</td>
<td align="center">
<picture>
<source media="(prefers-color-scheme: dark)" srcset="https://raw.githubusercontent.com/ory/meta/master/static/adopters/light/maxroll.svg" />
<img height="32px" src="https://raw.githubusercontent.com/ory/meta/master/static/adopters/dark/maxroll.svg" alt="Maxroll">
</picture>
</td>
<td><a href="https://maxroll.gg/">maxroll.gg</a></td>
<td><a href="https://www.ory.com/case-studies/maxroll">Maxroll 案例研究</a></td>
</tr>
<tr>
<td>Zezam</td>
<td align="center">
<picture>
<source media="(prefers-color-scheme: dark)" srcset="https://raw.githubusercontent.com/ory/meta/master/static/adopters/light/zezam.svg" />
<img height="32px" src="https://raw.githubusercontent.com/ory/meta/master/static/adopters/dark/zezam.svg" alt="Zezam">
</picture>
</td>
<td><a href="https://www.zezam.io/">zezam.io</a></td>
<td><a href="https://www.ory.com/case-studies/zezam">Zezam 案例研究</a></td>
</tr>
<tr>
<td>T.RowePrice</td>
<td align="center">
<picture>
<source media="(prefers-color-scheme: dark)" srcset="https://raw.githubusercontent.com/ory/meta/master/static/adopters/light/troweprice.svg" />
<img height="32px" src="https://raw.githubusercontent.com/ory/meta/master/static/adopters/dark/troweprice.svg" alt="T.RowePrice">
</picture>
</td>
<td><a href="https://www.troweprice.com/">troweprice.com</a></td>
</tr>
<tr>
<td>Mistral</td>
<td align="center">
<picture>
<source media="(prefers-color-scheme: dark)" srcset="https://raw.githubusercontent.com/ory/meta/master/static/adopters/light/mistral.svg" />
<img height="32px" src="https://raw.githubusercontent.com/ory/meta/master/static/adopters/dark/mistral.svg" alt="Mistral">
</picture>
</td>
<td><a href="https://www.mistral.ai/">mistral.ai</a></td>
</tr>
<tr>
<td>Axel Springer</td>
<td align="center">
<picture>
<source media="(prefers-color-scheme: dark)" srcset="https://raw.githubusercontent.com/ory/meta/master/static/adopters/light/axelspringer.svg" />
<img height="22px" src="https://raw.githubusercontent.com/ory/meta/master/static/adopters/dark/axelspringer.svg" alt="Axel Springer">
</picture>
</td>
<td><a href="https://www.axelspringer.com/">axelspringer.com</a></td>
</tr>
<tr>
<td>Hemnet</td>
<td align="center">
<picture>
<source media="(prefers-color-scheme: dark)" srcset="https://raw.githubusercontent.com/ory/meta/master/static/adopters/light/hemnet.svg" />
<img height="32px" src="https://raw.githubusercontent.com/ory/meta/master/static/adopters/dark/hemnet.svg" alt="Hemnet">
</picture>
</td>
<td><a href="https://www.hemnet.se/">hemnet.se</a></td>
</tr>
<tr>
<td>Cisco</td>
<td align="center">
<picture>
<source media="(prefers-color-scheme: dark)" srcset="https://raw.githubusercontent.com/ory/meta/master/static/adopters/light/cisco.svg" />
<img height="32px" src="https://raw.githubusercontent.com/ory/meta/master/static/adopters/dark/cisco.svg" alt="Cisco">
</picture>
</td>
<td><a href="https://www.cisco.com/">cisco.com</a></td>
</tr>
<tr>
<td>Presidencia de la República Dominicana</td>
<td align="center">
<picture>
<source media="(prefers-color-scheme: dark)" srcset="https://raw.githubusercontent.com/ory/meta/master/static/adopters/light/republica-dominicana.svg" />
<img height="42px" src="https://raw.githubusercontent.com/ory/meta/master/static/adopters/dark/republica-dominicana.svg" alt="Presidencia de la República Dominicana">
</picture>
</td>
<td><a href="https://www.presidencia.gob.do/">presidencia.gob.do</a></td>
</tr>
<tr>
<td>Moonpig</td>
<td align="center">
<picture>
<source media="(prefers-color-scheme: dark)" srcset="https://raw.githubusercontent.com/ory/meta/master/static/adopters/light/moonpig.svg" />
<img height="32px" src="https://raw.githubusercontent.com/ory/meta/master/static/adopters/dark/moonpig.svg" alt="Moonpig">
</picture>
</td>
<td><a href="https://www.moonpig.com/">moonpig.com</a></td>
</tr>
<tr>
<td>Booster</td>
<td align="center">
<picture>
<source media="(prefers-color-scheme: dark)" srcset="https://raw.githubusercontent.com/ory/meta/master/static/adopters/light/booster.svg" />
<img height="18px" src="https://raw.githubusercontent.com/ory/meta/master/static/adopters/dark/booster.svg" alt="Booster">
</picture>
</td>
<td><a href="https://www.choosebooster.com/">choosebooster.com</a></td>
</tr>
<tr>
<td>Zaptec</td>
<td align="center">
<picture>
<source media="(prefers-color-scheme: dark)" srcset="https://raw.githubusercontent.com/ory/meta/master/static/adopters/light/zaptec.svg" />
<img height="24px" src="https://raw.githubusercontent.com/ory/meta/master/static/adopters/dark/zaptec.svg" alt="Zaptec">
</picture>
</td>
<td><a href="https://www.zaptec.com/">zaptec.com</a></td>
</tr>
<tr>
<td>Klarna</td>
<td align="center">
<picture>
<source media="(prefers-color-scheme: dark)" srcset="https://raw.githubusercontent.com/ory/meta/master/static/adopters/light/klarna.svg" />
<img height="24px" src="https://raw.githubusercontent.com/ory/meta/master/static/adopters/dark/klarna.svg" alt="Klarna">
</picture>
</td>
<td><a href="https://www.klarna.com/">klarna.com</a></td>
</tr>
<tr>
<td>Raspberry PI Foundation</td>
<td align="center">
<picture>
<source media="(prefers-color-scheme: dark)" srcset="https://raw.githubusercontent.com/ory/meta/master/static/adopters/light/raspi.svg" />
<img height="32px" src="https://raw.githubusercontent.com/ory/meta/master/static/adopters/dark/raspi.svg" alt="Raspberry PI Foundation">
</picture>
</td>
<td><a href="https://www.raspberrypi.org/">raspberrypi.org</a></td>
</tr>
<tr>
<td>Tulip</td>
<td align="center">
<picture>
<source media="(prefers-color-scheme: dark)" srcset="https://raw.githubusercontent.com/ory/meta/master/static/adopters/light/tulip.svg" />
<img height="32px" src="https://raw.githubusercontent.com/ory/meta/master/static/adopters/dark/tulip.svg" alt="Tulip Retail">
</picture>
</td>
<td><a href="https://tulip.com/">tulip.com</a></td>
</tr>
<tr>
<td>Hootsuite</td>
<td align="center">
<picture>
<source media="(prefers-color-scheme: dark)" srcset="https://raw.githubusercontent.com/ory/meta/master/static/adopters/light/hootsuite.svg" />
<img height="32px" src="https://raw.githubusercontent.com/ory/meta/master/static/adopters/dark/hootsuite.svg" alt="Hootsuite">
</picture>
</td>
<td><a href="https://hootsuite.com/">hootsuite.com</a></td>
</tr>
<tr>
<td>Segment</td>
<td align="center">
<picture>
<source media="(prefers-color-scheme: dark)" srcset="https://raw.githubusercontent.com/ory/meta/master/static/adopters/light/segment.svg" />
<img height="32px" src="https://raw.githubusercontent.com/ory/meta/master/static/adopters/dark/segment.svg" alt="Segment">
</picture>
</td>
<td><a href="https://segment.com/">segment.com</a></td>
</tr>
<tr>
<td>Arduino</td>
<td align="center">
<picture>
<source media="(prefers-color-scheme: dark)" srcset="https://raw.githubusercontent.com/ory/meta/master/static/adopters/light/arduino.svg" />
<img height="32px" src="https://raw.githubusercontent.com/ory/meta/master/static/adopters/dark/arduino.svg" alt="Arduino">
</picture>
</td>
<td><a href="https://www.arduino.cc/">arduino.cc</a></td>
</tr>
<tr>
<td>Sainsbury's</td>
<td align="center">
<picture>
<source media="(prefers-color-scheme: dark)" srcset="https://raw.githubusercontent.com/ory/meta/master/static/adopters/light/sainsburys.svg" />
<img height="24px" src="https://raw.githubusercontent.com/ory/meta/master/static/adopters/dark/sainsburys.svg" alt="Sainsbury's">
</picture>
</td>
<td><a href="https://www.sainsburys.co.uk/">sainsburys.co.uk</a></td>
</tr>
<tr>
<td>Contraste</td>
<td align="center">
<picture>
<source media="(prefers-color-scheme: dark)" srcset="https://raw.githubusercontent.com/ory/meta/master/static/adopters/light/contraste.svg" />
<img height="32px" src="https://raw.githubusercontent.com/ory/meta/master/static/adopters/dark/contraste.svg" alt="Contraste">
</picture>
</td>
<td><a href="https://www.contraste.com/en">contraste.com</a></td>
</tr>
<tr>
<td>inMusic</td>
<td align="center">
<picture>
<source media="(prefers-color-scheme: dark)" srcset="https://raw.githubusercontent.com/ory/meta/master/static/adopters/light/inmusic.svg" />
<img height="24px" src="https://raw.githubusercontent.com/ory/meta/master/static/adopters/dark/inmusic.svg" alt="InMusic">
</picture>
</td>
<td><a href="https://inmusicbrands.com/">inmusicbrands.com</a></td>
</tr>
<tr>
<td>Buhta</td>
<td align="center">
<picture>
<source media="(prefers-color-scheme: dark)" srcset="https://raw.githubusercontent.com/ory/meta/master/static/adopters/light/buhta.svg" />
<img height="32px" src="https://raw.githubusercontent.com/ory/meta/master/static/adopters/dark/buhta.svg" alt="Buhta">
</picture>
</td>
<td><a href="https://buhta.com/">buhta.com</a></td>
</tr>
</tr>
<tr>
<td>Amplitude</td>
<td align="center">
<picture>
<source media="(prefers-color-scheme: dark)" srcset="https://raw.githubusercontent.com/ory/meta/master/static/adopters/light/amplitude.svg" />
<img height="32px" src="https://raw.githubusercontent.com/ory/meta/master/static/adopters/dark/amplitude.svg" alt="amplitude.com">
</picture>
</td>
<td><a href="https://amplitude.com/">amplitude.com</a></td>
</tr>
<tr>
<td align="center"><a href="https://tier4.jp/en/"><picture><source media="(prefers-color-scheme: dark)" srcset="https://raw.githubusercontent.com/ory/meta/master/static/adopters/light/tieriv.svg" /><img height="32px" src="https://raw.githubusercontent.com/ory/meta/master/static/adopters/dark/tieriv.svg" alt="TIER IV"></picture></a></td>
<td align="center"><a href="https://kyma-project.io"><picture><source media="(prefers-color-scheme: dark)" srcset="https://raw.githubusercontent.com/ory/meta/master/static/adopters/light/kyma.svg" /><img height="32px" src="https://raw.githubusercontent.com/ory/meta/master/static/adopters/dark/kyma.svg" alt="Kyma Project"></picture></a></td>
<td align="center"><a href="https://serlo.org/"><picture><source media="(prefers-color-scheme: dark)" srcset="https://raw.githubusercontent.com/ory/meta/master/static/adopters/light/serlo.svg" /><img height="32px" src="https://raw.githubusercontent.com/ory/meta/master/static/adopters/dark/serlo.svg" alt="Serlo"></picture></a></td>
<td align="center"><a href="https://padis.io/"><picture><source media="(prefers-color-scheme: dark)" srcset="https://raw.githubusercontent.com/ory/meta/master/static/adopters/light/padis.svg" /><img height="32px" src="https://raw.githubusercontent.com/ory/meta/master/static/adopters/dark/padis.svg" alt="Padis"></picture></a></td>
</tr>
<tr>
<td align="center"><a href="https://cloudbear.eu/"><picture><source media="(prefers-color-scheme: dark)" srcset="https://raw.githubusercontent.com/ory/meta/master/static/adopters/light/cloudbear.svg" /><img height="32px" src="https://raw.githubusercontent.com/ory/meta/master/static/adopters/dark/cloudbear.svg" alt="Cloudbear"></picture></a></td>
<td align="center"><a href="https://securityonionsolutions.com/"><picture><source media="(prefers-color-scheme: dark)" srcset="https://raw.githubusercontent.com/ory/meta/master/static/adopters/light/securityonion.svg" /><img height="32px" src="https://raw.githubusercontent.com/ory/meta/master/static/adopters/dark/securityonion.svg" alt="Security Onion Solutions"></picture></a></td>
<td align="center"><a href="https://factlylabs.com/"><picture><source media="(prefers-color-scheme: dark)" srcset="https://raw.githubusercontent.com/ory/meta/master/static/adopters/light/factly.svg" /><img height="24px" src="https://raw.githubusercontent.com/ory/meta/master/static/adopters/dark/factly.svg" alt="Factly"></picture></a></td>
<td align="center"><a href="https://cashdeck.com.au/"><picture><source media="(prefers-color-scheme: dark)" srcset="https://raw.githubusercontent.com/ory/meta/master/static/adopters/light/allmyfunds.svg" /><img height="32px" src="https://raw.githubusercontent.com/ory/meta/master/static/adopters/dark/allmyfunds.svg" alt="All My Funds"></picture></a></td>
</tr>
<tr>
<td align="center"><a href="https://nortal.com/"><picture><source media="(prefers-color-scheme: dark)" srcset="https://raw.githubusercontent.com/ory/meta/master/static/adopters/light/nortal.svg" /><img height="32px" src="https://raw.githubusercontent.com/ory/meta/master/static/adopters/dark/nortal.svg" alt="Nortal"></picture></a></td>
<td align="center"><a href="https://www.ordermygear.com/"><picture><source media="(prefers-color-scheme: dark)" srcset="https://raw.githubusercontent.com/ory/meta/master/static/adopters/light/ordermygear.svg" /><img height="32px" src="https://raw.githubusercontent.com/ory/meta/master/static/adopters/dark/ordermygear.svg" alt="OrderMyGear"></picture></a></td>
<td align="center"><a href="https://r2devops.io/"><picture><source media="(prefers-color-scheme: dark)" srcset="https://raw.githubusercontent.com/ory/meta/master/static/adopters/light/r2devops.svg" /><img height="32px" src="https://raw.githubusercontent.com/ory/meta/master/static/adopters/dark/r2devops.svg" alt="R2Devops"></picture></a></td>
<td align="center"><a href="https://www.paralus.io/"><picture><source media="(prefers-color-scheme: dark)" srcset="https://raw.githubusercontent.com/ory/meta/master/static/adopters/light/paralus.svg" /><img height="32px" src="https://raw.githubusercontent.com/ory/meta/master/static/adopters/dark/paralus.svg" alt="Paralus"></picture></a></td>
</tr>
<tr>
<td align="center"><a href="https://dyrector.io/"><picture><source media="(prefers-color-scheme: dark)" srcset="https://raw.githubusercontent.com/ory/meta/master/static/adopters/light/dyrector_io.svg" /><img height="32px" src="https://raw.githubusercontent.com/ory/meta/master/static/adopters/dark/dyrector_io.svg" alt="dyrector.io"></picture></a></td>
<td align="center"><a href="https://pinniped.dev/"><picture><source media="(prefers-color-scheme: dark)" srcset="https://raw.githubusercontent.com/ory/meta/master/static/adopters/light/pinniped.svg" /><img height="32px" src="https://raw.githubusercontent.com/ory/meta/master/static/adopters/dark/pinniped.svg" alt="pinniped.dev"></picture></a></td>
<td align="center"><a href="https://pvotal.tech/"><picture><source media="(prefers-color-scheme: dark)" srcset="https://raw.githubusercontent.com/ory/meta/master/static/adopters/light/pvotal.svg" /><img height="32px" src="https://raw.githubusercontent.com/ory/meta/master/static/adopters/dark/pvotal.svg" alt="pvotal.tech"></picture></a></td>
<td></td>
</tr>
</tbody>
</table>Many thanks to all individual contributors
<a href="https://opencollective.com/ory" target="_blank"><img src="https://opencollective.com/ory/contributors.svg?width=890&limit=714&button=false" /></a>
<!--END ADOPTERS-->
## 生态系统
<!--BEGIN ECOSYSTEM-->
我们在架构设计中构建 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 提供程序,只需编写一个微小的“桥接”应用程序即可轻松连接到任何现有身份系统。它让您对用户界面和用户体验流程拥有绝对控制。
### Ory Oathkeeper:身份与访问代理
[Ory Oathkeeper](https://github.com/ory/oathkeeper) 是一个 BeyondCorp/零信任身份与访问代理(IAP),为你的 Web 服务提供可配置的认证、授权和请求变更规则:对 JWT、访问令牌、API 密钥、mTLS 进行认证;检查所含主体是否被允许执行该请求;将结果内容编码为自定义请求头(`X-User-ID`)、JSON Web 令牌等!
### Ory Keto:将访问控制策略作为服务器
[Ory Keto](https://github.com/ory/keto) 是一个策略决策点。它使用一组访问控制策略(类似于 AWS IAM 策略)来确定主体(用户、应用程序、服务、汽车等)是否被授权对资源执行特定操作。
<!--END ECOSYSTEM-->
## 文档
完整的 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](https://github.com/ory/hydra/blob/master/CHANGELOG.md)。
## 开发 Ory Hydra
参见 [DEVELOP.md](https://github.com/ory/hydra/blob/master/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 生态系统的指南、教程和文章。