Building permissions in a Django app in 30 minutes

Nearly every application needs to enable its users to see only their data. Many other applications go further and add more controls, like sharing, or making some content private and public. In this post, use Django and django-oso to build a simple social app that allows users to share posts, like Twitter. Our app will use oso to implement access control for posts.

January 18, 2022 — David Hatch
Best Practices

Comparison: Oso vs. Open Policy Agent (OPA)

Oso is an authorization library that includes a declarative policy language. OPA is an authorization product that includes a declarative policy language. Despite that, there are many significant differences between the two! Here's a comparison.

October 27, 2021 — Graham Neray
Best Practices

Guide to Role-Based Access Control (RBAC) in Ruby

A configuration-based approach to adding role-based access control to your Ruby application.

August 23, 2021 — Graham Kaemmer
Best Practices

Tea with Sam: Build Google Zanzibar in <60 minutes

Our next "Tea with Sam" will cover a hot topic: Zanzibar, Google's consistent, global authorization system. Watch Oso Cofounder/CTO, Sam Scott, implement Zanzibar in <60 minutes live on Twitch.

May 13, 2021 —
Best Practices

The basics of role-based access control in SQLAlchemy

We’ll demonstrate a few ways of modeling role-based access control in Python and SQLAlchemy. The first few examples will be in plain SQLAlchemy, with no other libraries. For more complex examples we’ll show off using Oso for managing role authorization schemes

April 30, 2021 — Lito Nicolai
Best Practices

Demo: A Principled Approach to Authorization Using Python & SQLAlchemy

Demo: A Principled Approach to Authorization using Python & SQLAlchemy

March 1, 2021 —
Best Practices

Demo: Authorization Patterns for GraphQL using Oso + Python Graphene Library

Oso cofounder/CTO Sam Scott led a talk at the recent Austin Python meetup on authorization patterns for GraphQL using Oso and the Python Graphene library.

February 24, 2021 —
Best Practices

Demo: Implementing Permissions in Node Applications

Oso cofounder/CTO Sam Scott led a talk at on authorization patterns in Node.js applications, and fast and secure ways to implement them in a sample B2B SaaS application.

February 3, 2021 —
Best Practices

Role-based access control (RBAC) & Attribute-based access control (ABAC) Defined

RBAC and ABAC are terms that security teams commonly throw around when discussing authorization and permissions systems. When building access control in an app, the common misunderstanding is that it's an "either/or" — that it's a decision between RBAC or ABAC — when in fact most applications want for both access control models. In this post, learn about RBAC and ABAC and how combine both models in practice.

January 12, 2021 — Graham Neray
Best Practices

Introducing Built-in Roles with Oso

Learn how to add Role-Based Access Control (RBAC) with SQLAlchemy, using a GitHub clone example app.

December 24, 2020 — Leina McDermott
Best Practices

GraphQL Authorization with Graphene, SQLAlchemy and Oso

Use oso's policy engine to build an authorization solution that integrates directly with GraphQL, using Graphene, SQLAlchemy, & Flask.

December 10, 2020 — David Hatch
Best Practices

Python Universe: Access Control Patterns in Python (video)

Our Cofounder/CTO Sam Scott led a talk on common access control patterns in Python/Django and how to implement them into a sample B2B SaaS application.

December 2, 2020 —
Best Practices

Generate Django QuerySet filters using Oso's authorization policies

At Oso, our goal is to enable users to cleanly separate authorization logic from the rest of their application code. This separation is particularly challenging to achieve for list endpoints that return multiple records. When we started thinking about list views, we realized a single yes or no authorization result was not sufficient because it only enables filtering a collection of records that are already in the application. In this post, we will discuss a solution that allows authorization rules to output filters that can be evaluated more efficiently at the data retrieval layer.

October 14, 2020 — David Hatch
Best Practices

Polar Adventure: A text-based adventure game written in Polar

Recently during a company hackathon we decided to try out using oso's Polar language for a different kind of use case – making a game!

October 13, 2020 — Steve Olsen
Best Practices

Adding auth to a Flask App with Azure Active Directory and Oso

Using Azure Active Directory's B2C identity platform and oso's open-source authorization library for Flask, we'll show how to add user authentication and access control to a simple Flask app.

September 25, 2020 — Leina McDermott
Best Practices

Building the GitHub Authorization Model Using Oso

In this post, we'll show how to incrementally build complex authorization policies with oso, using GitHub's authorization model as an example.

August 26, 2020 — Leina McDermott
Best Practices

Get updates on Oso.

We won't spam you. Ever.