首页 > 解决方案 > ORY Kratos:API 集成?

问题描述

我已经阅读了 ORY Kratos 的文档,它确实符合我们对用户的要求,但是我们有第三方应用程序也使用我们的 API。

我应该为该部分使用哪种 ORY 解决方案,我将如何将它与 Kratos 一起使用?

标签: securityauthenticationoauth-2.0

解决方案


请让我详细说明马特麦克的回答:

根据此处的官方文档:

https://www.ory.sh/hydra/docs/

Hydra 实施 OAuth 和 OpenID Connect 标准,而不强制您使用“Hydra 用户管理”(登录、注销、配置文件管理、注册)、特定模板引擎或预定义的前端。这允许您使用您的用例所需的身份验证机制(基于令牌的 2FA、SMS 2FA 等)在您的技术堆栈中实施用户管理和登录。

这意味着我们可以使用任何用户管理系统,而 Kratos 就是其中的一种选择。

Hydra 负责发布访问令牌、刷新令牌等。第三方应用程序可以向 Hydra 注册自己,他们将获得一个客户端 ID 和客户端密码。

Hydra 为此提供了一个 API,但是,您必须自己设计 UI。

有关用于创建客户端的 API 的更多详细信息,请参见此处:

https://www.ory.sh/hydra/docs/reference/api/#operation/createOAuth2Client

熟悉 Hydra 的最快方法是他们的 5 分钟教程:

https://www.ory.sh/hydra/docs/5min-tutorial

Kratos 负责实际存储用户凭据并在用户登录时检查用户凭据。

我在 Go 中创建了一个参考实现,它集成了 Kratos (v0.8.0-alpha.3) 和 Hydra (v1.10.6)。

https://github.com/atreya2011/go-kratos-test/tree/hydra

这里还有一个使用旧版本 Kratos/Hydra 的官方 Node.js 参考实现。

https://github.com/ory/kratos-selfservice-ui-node/tree/hydra-integration-2021

您可以将两者作为起点,以您选择的任何其他语言实现集成:)

您还可以在这里找到其他有用的社区实现:

https://www.ory.sh/docs/ecosystem/community/


推荐阅读