security - ORY Kratos:API 集成?
问题描述
我已经阅读了 ORY Kratos 的文档,它确实符合我们对用户的要求,但是我们有第三方应用程序也使用我们的 API。
我应该为该部分使用哪种 ORY 解决方案,我将如何将它与 Kratos 一起使用?
解决方案
请让我详细说明马特麦克的回答:
根据此处的官方文档:
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
您可以将两者作为起点,以您选择的任何其他语言实现集成:)
您还可以在这里找到其他有用的社区实现:
推荐阅读
- c# - How to print elements from a data structure
- html - 相对于图像垂直居中文本
- java - 即使参数已经满足,Notify() 也不起作用
- flutter - addAll 或 setState 时为 Map 分配新值
- jenkins - 詹金斯没有阅读我的 sonar-project.properties 文件
- angular - 服务应将数据作为对象发送
- c# - 为什么在 sbyte 中转换大双精度值在 C# 中返回 0?
- reactjs - react-redux-firebase 查询返回交错数据
- sql - SQL 查询 - 仅计算满足特定条件的月份
- php - 上传使用PHP里面的文件和html文档