Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Integrate Next Gen Keto with wider policy ecosystems / Open Policy Agent #318

Open
robinbraemer opened this issue Nov 16, 2020 · 9 comments
Assignees
Labels
corp/m6 Up for M6 at Ory Corp. feat New feature or request. rfc A request for comments to discuss and share ideas.

Comments

@robinbraemer
Copy link
Contributor

robinbraemer commented Nov 16, 2020

Maybe it is already obvious to some, or maybe I can present some new viewpoints, but I wanted to write it down and formalize my thought experiment to everyone.

For those who want to know more about Open Policy Agent, I recommend this video: https://youtu.be/Vdy26oA3py8

Looking ahead, as part of Next Gen Keto's efforts to empower wider ecosystems to configure policy and access control, specifically Access Control Lists and other authorization models, in a more scalable and distributed way, Next Gen Keto will not only be able to be used as a single service for access control and be the base authorization system other services depend and built on, but also should support integration with Open Policy Agent using OPA's extension functionality in that Keto's ACL system can be used to setup more various policies with OPA while leveraging Keto's powerful ACL system to fetch checks efficiently.

Keto ACL is not designed to be a complex policy engine, but allows efficient ACL checks at scale, that OPA cannot do (as built-in). ACL check requests in Next Gen Keto are still limited to it's small and simple set of parameters in which more complex policies cannot be defined like in OPA.

This makes the comparison of Next Gen Keto vs. OPA an oranges and apples comparison. Both systems are better in solving different aspects in the world of access control.

Businesses need a platform to define complex policies, extend and unit test
their policy, which OPA is perfect for!

Adding Next Gen Keto into construct it can, as well, be put as an additional tool to extend Open Policy Agent functionality for providing scalable "object,relation,subject" ACLs.

This effectively means, OPA is like the platform that Keto can integrate with too. Much like Kubernetes is the operating system for Istio, while Istio could also be setup in a non-k8s environment.

Therefore we should provide OPA rego functions that users can use in OPA to perform checks via their Keto deployment as part of their policy setup.

@robinbraemer robinbraemer added docs feat New feature or request. rfc A request for comments to discuss and share ideas. labels Nov 16, 2020
@robinbraemer robinbraemer added this to the Next Gen Keto milestone Nov 16, 2020
@aeneasr
Copy link
Member

aeneasr commented Nov 16, 2020

Yes, this makes absolute sense. We have good a relationship with the OPA maintainers and I am sure that they would appreciate and potentially even support such an effort!

@zepatrik
Copy link
Member

Nice, this actually goes hand in hand with my considerations in #319

@aeneasr
Copy link
Member

aeneasr commented Nov 16, 2020

It also makes sense because we could simply publish a tutorial for running OPA with the current Ory Keto policies, which would allow people to do a "soft" migration of current Ory Keto to another system that still works as they're used to.

@zepatrik
Copy link
Member

Yes 😍 I had headaches because of migration paths for current users already.

@robinbraemer robinbraemer changed the title Integrate Next Gen Keto with wider policy ecosystems Integrate Next Gen Keto with wider policy ecosystems / Open Policy Agent Nov 16, 2020
@zepatrik zepatrik added the corp/m6 Up for M6 at Ory Corp. label Mar 29, 2021
@github-actions github-actions bot removed the docs label Jan 6, 2022
@github-actions
Copy link

github-actions bot commented Jan 7, 2023

Hello contributors!

I am marking this issue as stale as it has not received any engagement from the community or maintainers for a year. That does not imply that the issue has no merit! If you feel strongly about this issue

  • open a PR referencing and resolving the issue;
  • leave a comment on it and discuss ideas on how you could contribute towards resolving it;
  • leave a comment and describe in detail why this issue is critical for your use case;
  • open a new issue with updated details and a plan for resolving the issue.

Throughout its lifetime, Ory has received over 10.000 issues and PRs. To sustain that growth, we need to prioritize and focus on issues that are important to the community. A good indication of importance, and thus priority, is activity on a topic.

Unfortunately, burnout has become a topic of concern amongst open-source projects.

It can lead to severe personal and health issues as well as opening catastrophic attack vectors.

The motivation for this automation is to help prioritize issues in the backlog and not ignore, reject, or belittle anyone.

If this issue was marked as stale erroneously you can exempt it by adding the backlog label, assigning someone, or setting a milestone for it.

Thank you for your understanding and to anyone who participated in the conversation! And as written above, please do participate in the conversation if this topic is important to you!

Thank you 🙏✌️

@github-actions github-actions bot added the stale Feedback from one or more authors is required to proceed. label Jan 7, 2023
@zepatrik zepatrik removed the stale Feedback from one or more authors is required to proceed. label Jan 10, 2023
@robinbraemer
Copy link
Contributor Author

robinbraemer commented Mar 22, 2023

Note-taking comment:

Topaz is basically doing what I described in this issue, provide Rego functions to call a Zanzibar system as part of the evaluation step:
https://www.topaz.sh/docs/intro#zanzibar--rebac

Authorization policies can combine ABAC-style rules with ReBAC-style graph queries via a set of Rego built-ins.


Also related to this issue: https://news.ycombinator.com/item?id=33319515

Copy link

Hello contributors!

I am marking this issue as stale as it has not received any engagement from the community or maintainers for a year. That does not imply that the issue has no merit! If you feel strongly about this issue

  • open a PR referencing and resolving the issue;
  • leave a comment on it and discuss ideas on how you could contribute towards resolving it;
  • leave a comment and describe in detail why this issue is critical for your use case;
  • open a new issue with updated details and a plan for resolving the issue.

Throughout its lifetime, Ory has received over 10.000 issues and PRs. To sustain that growth, we need to prioritize and focus on issues that are important to the community. A good indication of importance, and thus priority, is activity on a topic.

Unfortunately, burnout has become a topic of concern amongst open-source projects.

It can lead to severe personal and health issues as well as opening catastrophic attack vectors.

The motivation for this automation is to help prioritize issues in the backlog and not ignore, reject, or belittle anyone.

If this issue was marked as stale erroneously you can exempt it by adding the backlog label, assigning someone, or setting a milestone for it.

Thank you for your understanding and to anyone who participated in the conversation! And as written above, please do participate in the conversation if this topic is important to you!

Thank you 🙏✌️

@github-actions github-actions bot added the stale Feedback from one or more authors is required to proceed. label Mar 22, 2024
@zepatrik zepatrik removed the stale Feedback from one or more authors is required to proceed. label Mar 22, 2024
@jeffsec-aws
Copy link

As Keto defines itself as:

a policy decision point. It uses a set of access control policies, similar to AWS IAM Policies, in order to determine whether a subject (user, application, service, car, ...) is authorized to perform a certain action on a resource.

It would be interesting that, if the ecosystem opens to other Policy based Access Control, to consider Cedar as an extension to it as its opensource birth came for year of maintaining, operating, and evolving AWS IAM.

@mfreeman451
Copy link

Did the project ever decide on dealing with this inside Keto (OPA integration), or is this left as an excersize to the reader still? We are going to be using both in a project, just wondering if I can get them to talk to together or what.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
corp/m6 Up for M6 at Ory Corp. feat New feature or request. rfc A request for comments to discuss and share ideas.
Projects
None yet
Development

No branches or pull requests

6 participants