我有一个项目需要实现 Oauth2(用户需要能够使用 Google 或 iCloud 登录),我决定使用 ORY Hydra,这样我就不必编写自己的 Oauth2 实现。
我尝试自己解决 ORY Hydra,但失败了。我知道 Oauth2 在抽象方面是如何工作的,但我不知道如何在实践中用它来实现 Oauth2。SDK 没有文档,无论它们适用于哪种语言。我知道 Hydra 有一个 HTTP API,所以语言 SDK 并不重要,但我希望在他们的文档中找到一些指导;正如我所写,他们没有。而主文档的“5分钟教程”只是提供了一些docker容器,背后没有任何代码或逻辑,只是一些docker-compose命令。
有什么好的教育资源可以展示如何使用 ORY Hydra 实施 Oauth2?此时,我已准备好使用任何语言,或者直接深入了解 Oauth2 标准。
我试图通过 Ory Keto 实现以下几点:
UserA拥有ProductA-> 所有权赋予一项 CRUD 权利。UserB具有角色Admin->Admin赋予一个对所有事物的 CRUD 权限。UserA具有角色KYCVerified或属于名为KYCVerified-> 的组的一部分,这为用户提供了额外的权限。第 1 点描述了所有权的概念,根据 Ory Keto 的当前状态,将其描述为 RBAC 的缺点之一(来源):
不存在所有权概念:Dan 是文章“Hello World”的作者,因此可以更新它。
第 2 点描述了一个基本上通过了所有权检查的角色,因为这个角色可以做所有事情。这在当前状态下应该是可能的,但不能与第 1 点结合使用。
第 3 点描述的内容与第 2 点基本相同,但这更针对我的用例。
我在Ory网站上读过这篇文章和这篇文章。然而,我仍然无法理解这个概念。我举了以下例子来说明我如何看待 Ory Keto 的所有权概念:
# Tenant TenantA needs to be a owner of product ProductA in order to view it
products:ProductA#view@(tenants:TenantA#owner)
# Tenant A is a owner of ProductA …Run Code Online (Sandbox Code Playgroud)