Oso's Blog

Articles about authorization, and other news from Oso's engineering team

Polar - A Configuration Language for Authorization

Learn about what a declarative language is, and why using a declarative language is better for authorization.

May 14, 2021 — Anne Ogborn
Internals

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

Developer Den with Calvin French-Owen

Developer Den is a series of interviews with notable developers in our community to learn more about their journey into engineering. We sat down with Calvin French-Owen, co-founder of Segment, a market-leading customer data platform.

May 11, 2021 —
Customers & Ecosystem

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

Podcast: Oso cofounder/CTO on Junior to Senior with David Guttman

Oso cofounder/CTO Sam Scott was a guest on the Junior to Senior Podcast, hosted by David Guttman (organizer of js.la).

April 15, 2021 —
Customers & Ecosystem

Tea with Sam: How We Build Roles Building Blocks

We're continuing our "Tea with Sam" series with Oso cofounder/CTO, Sam Scott, live on Twitch. Next up we'll be taking another behind-the-scenes look into Oso development with a sneak preview of some new roles building blocks we're adding to the SQLAlchemy integration.

April 1, 2021 —
Internals

Announcing Our Series A led by Sequoia and Authorization Academy

We're announcing our Series A to help deliver the first batteries-included library for building authorization in your application. With this round of funding we're doubling down on putting security in the hands of developers, expanding our team, and celebrating the release of Authorization Academy, a free course to educate developers on building application authorization.

March 17, 2021 — Graham Neray
Customers & Ecosystem

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

Tea with Sam: Data Filtering in Oso using Partial Evaluation

Tea with Sam: Data Filtering in Oso using Partial Evaluation

February 18, 2021 —
Internals

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

Tea with Sam: Building the Oso Go integration

We are kicking off the first "Tea with Sam," a Twitch session with oso cofounder/CTO Sam Scott. We'll be sharing a behind the scenes look into oso development and some of the latest features that the engineering team is working on. Our first session will dig into the Go Library, which is under active development.

January 18, 2021 —
Internals

Advent of Code in Polar

We explore the capabilities of oso's authorization policy language Polar using numerous challenges from this years of advent of code.

January 15, 2021 — Steve Olsen
Internals

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

Building a runtime reflection system for Rust 🦀️ (Part 3)

The third and final installment of our series on building a runtime reflection system in Rust looks at how we can dynamically call Rust methods at runtime.

December 29, 2020 — Sam Scott
Internals

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

Polar, a Configuration Policy Language

oso engineer, Alex Plotnick, led a talk on Polar, oso's declarative policy language

November 13, 2020 —
Internals

Building a runtime reflection system for Rust 🦀️ (Part 2)

The second installment of our series on building a runtime reflection system in Rust looks at how we can dynamically access attributes on Rust structs at runtime.

October 20, 2020 — Sam Scott
Internals

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

Rust Reflection: Building a Runtime Reflection System (Part 1)

When building support for Rust applications, we needed a system that could give us dynamic access to types, attributes and methods at runtime. Since Rust doesn't have native support for such things, we had to build our own version of a runtime reflection system.

September 24, 2020 — Sam Scott
Internals

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.