Authorization as a Service (feat. Jake Moshenko)

Authorization as a Service (feat. Jake Moshenko)

Jake Moshenko⁠, CEO of ⁠AuthZed⁠, discusses the importance of permissioning databases and the challenges of implementing permissions at scale. He explains how AuthZed solves this problem by providing a common API for flexible and fine-grained authorization. The target market for AuthZed includes companies of all sizes that need to add complex permission workflows to their applications. Jake demonstrates how AuthZed can be integrated with backend systems, web applications, and mobile apps. He also explains the benefits of using AuthZed, such as increased security and improved product velocity. The conversation concludes with a discussion on the AuthZed schema language and how permissions and roles are defined in the system. Jake Moshenko introduces the concept of permissions and relations in the context of access control. He explains how permissions can be granted to users for specific actions on resources, and how relationships between users and objects are defined. Jake also discusses the flexibility of defining roles and the granularity of permissions. He demonstrates how permissions can be visualized and edited in a user interface, and highlights the benefits of using a startup solution for access control. The conversation concludes with a discussion on the importance of leveraging existing tools and trusting innovative startups.

Takeaways

  • Permissions can be granted to users for specific actions on resources, such as read, write, and admin privileges.
  • Relations define the relationships between users and objects, allowing users to be readers, writers, or admins of a particular object.
  • Roles can be used to group multiple privileges or permissions together, providing a higher level of access.
  • Design time actions involve configuring the access control system, while runtime actions involve making API calls to enforce permissions.
  • When considering building or buying a solution, it is important to focus on core competencies and leverage existing tools and services.

Chapters

00:00 Introduction and Background

01:04 The Problem of Permissions at Scale

05:25 Implementing Authorization for Different Client Types

06:46 Integration with Backend and Web Applications

10:24 Implementing Permissioning for Mobile Apps

14:25 Benefits of Using AuthZed for Permissioning

22:00 Granting Access to Resources with AuthZed API

25:11 Defining Permissions and Roles in AuthZed

30:42 Introduction to Permissions and Relations

31:11 Understanding Permissions and Roles

32:20 Decoupling Relationships and Actions

33:36 Granularity of Permissions

34:14 Grouping Privileges into Roles

36:01 Design Time and Runtime Actions

36:46 Visualizing and Editing Permissions

39:33 Trusting a Startup

53:36 Building vs. Buying Solutions

58:36 The Value of Innovation and Trust

Jaksot(410)

(Feat. Special Guest!) Pros & Cons of Technology Choices (Part 1/3)

(Feat. Special Guest!) Pros & Cons of Technology Choices (Part 1/3)

(Part 1/3) When you are building a new app, you are bound to assess a variety of options available to you. Some of these choices are going to stick around with you for a while so it is imperative to make the right choices (with the information available at that point).   Manage your projects on https://snowpal.com.

25 Maalis 20219min

Upgrade Dart version to 2.12.0 to leverage null safety

Upgrade Dart version to 2.12.0 to leverage null safety

Starting dart version 2.12.0, there is support for null safety. Added to type safety, this will make flutter even more compelling. Having said that, it will take some work for an existing app to get there.   Manage your projects on https://snowpal.com.

22 Maalis 20218min

Polyglot Development is the best way to go today

Polyglot Development is the best way to go today

Polyglot Programming can be loosely defined as a programming methodology where you pick the right language, library or framework that best suits the needs of the given problem (and in particular, not let your "current" stack drive that decision).   Manage your projects on https://snowpal.com.

21 Maalis 20218min

(Part 1/N) Upgrading to Flutter 2.0.x?

(Part 1/N) Upgrading to Flutter 2.0.x?

Every time I run "flutter upgrade", I tend to have my fingers crossed. The most recent upgrade to 2.0.x was quite a challenge. I'll share my experience (both problems and solutions) in a series of podcasts.   Manage your projects on https://snowpal.com.

16 Maalis 20219min

Asynchronous Processing: Don't keep your users waiting. Accept request, process later.

Asynchronous Processing: Don't keep your users waiting. Accept request, process later.

Is there ever a good reason to do something synchronously when there is a way for you to do it asynchronously? Let's take a look at how we can implement asynchronous services using RabbitMQ.   Manage your projects on https://snowpal.com.

5 Maalis 20219min

Do you get anxious about LIVE Coding Interviews? Don't be.

Do you get anxious about LIVE Coding Interviews? Don't be.

It is quite natural to get anxious when you know people are going to be judging you. After all, isn't that one of the primary purposes of an interview? I may have a few tips to help you be at ease.   Manage your projects on https://snowpal.com.

21 Helmi 20219min

User Experience (UX) is not just the designer's responsibility

User Experience (UX) is not just the designer's responsibility

How many times have we used an app (on the web or mobile) and thought to ourselves, "Why in the world would someone have designed it this way?". That's plenty of times for me and here I talk about one of those experiences.   Manage your projects on https://snowpal.com.

19 Helmi 20219min

Performance & Scalability (2/N): Similarities & Differences

Performance & Scalability (2/N): Similarities & Differences

(Part 2) Let's talk a little bit about the similarities and differences between these 2 two terms that are sometimes (or, often?) misunderstood.

16 Helmi 202110min