Ship RBAC fast
We've done the hard thinking for you. Oso is a framework with best practices built-in via authorization primitives and APIs. You embed Oso in your app and use your existing data, so there's no data migration required. We've even anticipated features you'll need, like filtering data from your database.Learn about the framework
Your forever framework
Start with RBAC, then build any permissions model or feature – like relationships, hierarchies, or groups – using a built-in primitive or a policy you write yourself with our declarative policy language, Polar. By separating your authorization from your business logic, Oso is easier to build on and easier to debug than custom authorization code.See how to build permissions models
Oso lets you devote your engineering calories to something else. With all your authorization logic in one place, you can test your policies and ensure correctness. The framework bakes in best practices from work with hundreds of development teams. Plus, you get well-maintained documentation, example code, as well as access to the core engineering team and hundreds of other developers using Oso via Slack.Explore the documentation
Set up common permissions patterns like RBAC and relationships using Oso's built-in primitives. Extend them however you need with Oso's declarative policy language, Polar.
Go beyond yes/no authorization questions. Implement authorization over collections too – e.g., "Show me only the records that Juno can see."
Write unit tests over your authorization logic now that you have a single interface for it. Use the debugger or tracing to track down unexpected behavior.
Learn authorization best practices
Read a series of technical guides that explains how to build authorization into an app, including architecture, modeling patterns, enforcement, and more — whether you use Oso or not.
Browse the Guides