TE
TechEcho
Home24h TopNewestBestAskShowJobs
GitHubTwitter
Home

TechEcho

A tech news platform built with Next.js, providing global tech news and discussions.

GitHubTwitter

Home

HomeNewestBestAskShowJobs

Resources

HackerNews APIOriginal HackerNewsNext.js

© 2025 TechEcho. All rights reserved.

Show HN: Permify – Open-source authorization service based on Google Zanzibar

122 pointsby freddgnalmost 3 years ago

13 comments

EgeAytinalmost 3 years ago
Hey HN! Ege from Permify here. Permify is an open-source authorization service and policy engine based on Google-Zanzibar[0] with our own twist. Me and my co-founders have known each other for years since high school. And we love building things.<p>We have both worked with fortune 500 companies to small businesses [1], and every authorization system was unique. Yet we always tackle the same problems.<p>- Modeling the authorization logic was hard. As the product grows things get complicated very fast. So, it’s challenging to design a model that’s both easy to start with and future-proof. [2] - Designing the architecture was a dread. It’s not a huge problem when you have a monolith. But when it comes to micro-services it’s a nightmare since authorization data is a subset of application data. [3] - Authorization checks occur in so many places; like user interfaces, routers, API endpoints, database queries… So, choosing where to enforce authorization, and loading the authorization data is hard.<p>So, Permify syncs your authorization data as relation tuples with CDC(Change Data Capture) from Databases you want to a DB you point at.[4] And based on this data you can get boolean returns for your access control checks.<p>I know many alternatives had launched at HN over the course of time. So what’s the twist. What we concurrently encountered was orchestrating the authorization data was a nightmare.<p>What you can except from Permify in following months;<p>- Message broker to support more Databases. - Redis Cache support. - Better debugging and auditing tools such as transparency logs. - More compatibility with the Zanzibar paper.<p>[0]: <a href="https:&#x2F;&#x2F;research.google&#x2F;pubs&#x2F;pub48190&#x2F;" rel="nofollow">https:&#x2F;&#x2F;research.google&#x2F;pubs&#x2F;pub48190&#x2F;</a><p>[1]: <a href="https:&#x2F;&#x2F;www.permify.co&#x2F;post&#x2F;why-decouple-authorizations" rel="nofollow">https:&#x2F;&#x2F;www.permify.co&#x2F;post&#x2F;why-decouple-authorizations</a><p>[2]: <a href="https:&#x2F;&#x2F;medium.com&#x2F;building-carta&#x2F;authz-cartas-highly-scalable-permissions-system-782a7f2c840f" rel="nofollow">https:&#x2F;&#x2F;medium.com&#x2F;building-carta&#x2F;authz-cartas-highly-scalab...</a><p>[3]: <a href="https:&#x2F;&#x2F;medium.com&#x2F;airbnb-engineering&#x2F;himeji-a-scalable-centralized-system-for-authorization-at-airbnb-341664924574" rel="nofollow">https:&#x2F;&#x2F;medium.com&#x2F;airbnb-engineering&#x2F;himeji-a-scalable-cent...</a><p>[4]: <a href="https:&#x2F;&#x2F;dbconvert.com&#x2F;blog&#x2F;postgresql-change-data-capture-cdc&#x2F;amp&#x2F;" rel="nofollow">https:&#x2F;&#x2F;dbconvert.com&#x2F;blog&#x2F;postgresql-change-data-capture-cd...</a>
jchwalmost 3 years ago
It doesn&#x27;t seem to deal with consistency issues solved by the Zanzibar design, at least that I can see. While this is understandable since it is probably the most complicated bit of the Zanzibar paper, it is a bit disappointing that, as far as I can tell, nobody has really gotten that far.
评论 #32100278 未加载
评论 #32101309 未加载
评论 #32100821 未加载
评论 #32108339 未加载
diggsalmost 3 years ago
A use case that I wish authorization service providers would talk more about is support for &quot;list&quot; queries e.g. What resources of type foo can the user read?<p>In really simple cases you may model this as a one-shot check on a logical collection resource e.g. If I have an organization, and an organization owns many repositories, I may check for action:read on resource:&#x2F;organizations&#x2F;:id&#x2F;repositories. It&#x27;s very limiting though. What if I want to list all repositories across all organizations I have access to? What if I have multiple levels I want to cut across? Do I need to do all the sub-queries and aggregations myself? Do I need to do a one-shot check on every potential resource? What if the answer is &quot;no&quot; for every one, and I end up doing a table scan of the entire DB just to produce an empty result set? etc.
评论 #32103577 未加载
评论 #32107905 未加载
socoalmost 3 years ago
How does that look in a microservice&#x2F;distributed environment in terms of network traffic? Do you have some thoughts about it, minimizing number of queries, minimizing payload, such things?
评论 #32097878 未加载
kkajlaalmost 3 years ago
It&#x27;s interesting to see this project published shortly after our launch of Warrant Sync[0][1], an automatic data-syncing solution for Warrant&#x27;s authorization service.<p>[0]: <a href="https:&#x2F;&#x2F;blog.warrant.dev&#x2F;introducing-sync&#x2F;" rel="nofollow">https:&#x2F;&#x2F;blog.warrant.dev&#x2F;introducing-sync&#x2F;</a><p>[1]: <a href="https:&#x2F;&#x2F;docs.warrant.dev&#x2F;quickstart&#x2F;setting-up-sync" rel="nofollow">https:&#x2F;&#x2F;docs.warrant.dev&#x2F;quickstart&#x2F;setting-up-sync</a>
colinclerkalmost 3 years ago
Nice, love that you launched with React components! I need to decide to show a button before I decide to allow a button&#x27;s action :)
scorpiopiealmost 3 years ago
Interesting to see another project open sourced around Google Zanzibar. On a timeline for context:<p>- Ory came out first with Ory Keto ( <a href="https:&#x2F;&#x2F;github.com&#x2F;ory&#x2F;keto" rel="nofollow">https:&#x2F;&#x2F;github.com&#x2F;ory&#x2F;keto</a> ) which is trying to be a close adaptation of the paper. Initially, many concepts were missing but they are making a lot of progress with the DSL and it interfaces with the rest of Ory (OAuth2, User Mangement)<p>- Authzed came out as a SaaS only, open sorucing the code base later on at <a href="https:&#x2F;&#x2F;github.com&#x2F;authzed&#x2F;spicedb" rel="nofollow">https:&#x2F;&#x2F;github.com&#x2F;authzed&#x2F;spicedb</a><p>- Auth0 has been playing around with Zanzibar concepts in various forms and published a beta service at <a href="https:&#x2F;&#x2F;dashboard.fga.dev" rel="nofollow">https:&#x2F;&#x2F;dashboard.fga.dev</a> - apparently now also open source parts of it similar to what Authzed did: <a href="https:&#x2F;&#x2F;github.com&#x2F;openfga" rel="nofollow">https:&#x2F;&#x2F;github.com&#x2F;openfga</a><p>- Permify - who on a side note spammed me quite a lot with outreach because I was active in these communities - joins as well <a href="https:&#x2F;&#x2F;github.com&#x2F;Permify&#x2F;permify" rel="nofollow">https:&#x2F;&#x2F;github.com&#x2F;Permify&#x2F;permify</a><p>It&#x27;s exciting to see so much movement, yet also sad that so many companies are brewing their own beer instead of working collaborative on the more succesful projects. Feels like we&#x27;ll just end up with one or two successful projects (looking at Ory &#x2F; Auth0 here) with the rest perishing. I&#x27;m wondering if there truly is a business model for just this permission system as a saas service (looks like this is what everyone is going with). Here I&#x27;m giving Auth0 probably the biggest plus as they have an established identity service. Then again, Okta (parent of Auth0) and Auth0 themselves are not particularly known for good business practices that we usually expect from developer tooling.<p>What&#x27;s refreshing though with Permify is that they are trying a bit of a different approach to Zanzibar!
评论 #32101230 未加载
评论 #32102432 未加载
techn00almost 3 years ago
I also wrote something similar that also has a dashboard where you can see the graph between relations (code quality is really lacking though). It uses a DSL built on yaml.<p><a href="https:&#x2F;&#x2F;github.com&#x2F;DeluxeOwl&#x2F;kala-go" rel="nofollow">https:&#x2F;&#x2F;github.com&#x2F;DeluxeOwl&#x2F;kala-go</a> <a href="https:&#x2F;&#x2F;kala.andreisurugiu.com&#x2F;" rel="nofollow">https:&#x2F;&#x2F;kala.andreisurugiu.com&#x2F;</a>
gnerayalmost 3 years ago
Disclosure: I&#x27;m the founder of Oso (osohq.com).<p>It&#x27;s good to see more activity in this domain. One thing I&#x27;ve noticed over the last several years has been: beyond the fact that we haven&#x27;t had good options for authorization tools, the world doesn&#x27;t have enough mental models and good language for describing the authorization _problem_. It&#x27;s mostly RBAC and ABAC. That is...limited!<p>As more people work on this problem, I hope we&#x27;ll continue to build out the collective knowledgebase in addition to having tools that supercharge us. To get the ball rolling, we&#x27;ve written a number of articles, e.g.,<p>- What is Google Zanzibar (<a href="https:&#x2F;&#x2F;www.osohq.com&#x2F;learn&#x2F;google-zanzibar" rel="nofollow">https:&#x2F;&#x2F;www.osohq.com&#x2F;learn&#x2F;google-zanzibar</a>)<p>- Authorization Academy, a series of technical guides on building authorization into an application (<a href="https:&#x2F;&#x2F;www.osohq.com&#x2F;academy" rel="nofollow">https:&#x2F;&#x2F;www.osohq.com&#x2F;academy</a>)<p>- Why Authorization is Hard (<a href="https:&#x2F;&#x2F;www.osohq.com&#x2F;post&#x2F;why-authorization-is-hard" rel="nofollow">https:&#x2F;&#x2F;www.osohq.com&#x2F;post&#x2F;why-authorization-is-hard</a>)<p>- Best Practices for Authorization Microservices (<a href="https:&#x2F;&#x2F;www.osohq.com&#x2F;post&#x2F;microservices-authorization-patterns" rel="nofollow">https:&#x2F;&#x2F;www.osohq.com&#x2F;post&#x2F;microservices-authorization-patte...</a>)<p>- Authorization Patterns in GraphQL (<a href="https:&#x2F;&#x2F;www.osohq.com&#x2F;post&#x2F;graphql-authorization" rel="nofollow">https:&#x2F;&#x2F;www.osohq.com&#x2F;post&#x2F;graphql-authorization</a>)<p>Onward :)
jzelinskiealmost 3 years ago
Welcome! Glad to see more folks joining the open source FGA&#x2F;Zanzibar space! Making synchronization first-class is a great area to explore. It&#x27;d be nice to connect and chat about all things Zanzibar, not just data syncing!<p>The Authzed team[0] built Postgres syncing with the SpiceDB Postgres Connector[1] to explore syncing, but we never got it into a place that the community could agree upon. Users in the SpiceDB community are using technologies like CDC external to SpiceDB successfully, but there are many foot-guns to syncing because it can violate data consistency. Is there documentation on how Permify handles consistency (e.g. the Zookies&#x2F;The New Enemy Problem from the Zanzibar paper)?<p>[0]: <a href="https:&#x2F;&#x2F;github.com&#x2F;authzed&#x2F;spicedb" rel="nofollow">https:&#x2F;&#x2F;github.com&#x2F;authzed&#x2F;spicedb</a><p>[1]: <a href="https:&#x2F;&#x2F;github.com&#x2F;authzed&#x2F;connector-postgresql" rel="nofollow">https:&#x2F;&#x2F;github.com&#x2F;authzed&#x2F;connector-postgresql</a>
评论 #32097803 未加载
mlejvaalmost 3 years ago
Congratulations on the launch!<p>Do you have any repos with example implementations?
评论 #32097753 未加载
_jezell_almost 3 years ago
Very cool.
lkurtzalmost 3 years ago
See also <a href="https:&#x2F;&#x2F;openfga.dev&#x2F;" rel="nofollow">https:&#x2F;&#x2F;openfga.dev&#x2F;</a>, Auth0&#x27;s open-source ReBAC solution