类似 “Zanzibar:Google 一致的全球授权系统”的开源 (Go) 实现。
源代码
http://www.gitpp.com/goudan/keto
大型企业内部几十套,甚至数百套系统,都需要这样的系统!
Ory Keto 是“Zanzibar:Google 一致的全球授权系统”的第一个也是最受欢迎的开源实现!
Zanzibar是谷歌于2016年起上线的一致性全球授权系统。这个系统的主要功能是储存来自各个服务的访问控制列表(Access Control Lists,ACLs),即权限(Permission),并根据这些储存的ACL进行权限校验。Zanzibar已经对接了谷歌的许多重要服务,包括Calendar、Cloud、Drive、Maps、Photos和YouTube等。
Zanzibar的设计和实现具有一些显著的特点:
一致性:Zanzibar保证用户操作ACL的因果顺序,提供外部一致性。这意味着在面对并发度高的业务场景时,系统能确保按照各个ACL的添加顺序进行判断,从而避免诸如权限泄露等问题。
灵活性:Zanzibar支持丰富的访问控制策略,可以灵活地满足不同的权限需求。
可扩展性:系统可以扩展到数万亿个访问控制列表和数百万个授权请求,以支持数十亿人使用的服务。
高性能:在性能方面,Zanzibar表现出色,95%的请求可以在10毫秒内完成,99.9%的请求在100毫秒内完成。
高可用性:上线三年间,Zanzibar保证了99.999%的可用时间,显示出极高的稳定性和可靠性。
然而,谷歌并没有对Zanzibar进行开源,只公开了相关的论文。尽管如此,基于这些论文,已经有一些优秀的开源实现被开发出来,例如Ory/Keto和Auth0/OpenFGA。
总的来说,Zanzibar是谷歌为了解决其大量应用程序和服务之间的权限管理问题而开发的一致性全球授权系统。它具有一致性、灵活性、可扩展性、高性能和高可用性等显著特点,为谷歌的众多服务提供了强大而可靠的权限支持。

Ory Keto 是一个开源项目,它提供了一种实现类似于 Google's Zanzibar 的访问控制和授权系统的解决方案。Ory Keto 旨在帮助开发者构建安全、可扩展且易于管理的授权系统,以支持各种应用程序和服务。
与 Zanzibar 类似,Ory Keto 强调一致性、灵活性和可扩展性。它支持基于角色的访问控制(RBAC)、属性基础的访问控制(ABAC)以及其他自定义的访问控制策略。此外,Ory Keto 还提供了 RESTful API 和 GraphQL 接口,使得开发者能够轻松地与授权系统集成。
Ory Keto 的设计原则包括:
一致性:确保授权决策的一致性,避免出现权限泄露或不一致的访问控制结果。
灵活性:支持多种访问控制策略和模型,以满足不同应用程序和服务的需求。
可扩展性:能够处理大量用户和权限数据,支持水平扩展以应对不断增长的授权请求。
安全性:采用最佳实践来保护授权数据和通信过程的安全性。
虽然 Ory Keto 是受到 Zanzibar 启发的开源项目之一,但它们在具体实现和功能上可能有所不同。开发者在选择授权系统时应该根据自己的需求和项目特点进行评估和比较。
需要注意的是,开源项目的发展是动态的,随着时间的推移,Ory Keto 可能会继续发展和改进,以更好地满足社区的需求。因此,建议开发者关注 Ory Keto 的最新动态和版本更新。
类似 “Zanzibar:Google 一致的全球授权系统”的开源 (Go) 实现。
源代码
http://www.gitpp.com/goudan/keto
我们收集了 10000+ 开源项目 点击 阅读原文

