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(412)

Native Mobile App - Design Patterns & Separation of concerns (Part 1)

Native Mobile App - Design Patterns & Separation of concerns (Part 1)

(Part 1) Separation of concerns is important to keep your native mobile app modular and becomes especially important when your app integrates with 100s of APIs. You want to ensure that your app is resilient to changes to the API Spec.  #snowpal aws.snowpal.com learn.snowpal.com

24 Marras 20239min

Native Mobile App - Design Patterns & Separation of concerns (Part 2)

Native Mobile App - Design Patterns & Separation of concerns (Part 2)

(Part 2) Separation of concerns is important to keep your native mobile app modular and becomes especially important when your app integrates with 100s of APIs. You want to ensure that your app is resilient to changes to the API Spec.  #snowpal aws.snowpal.com learn.snowpal.com

24 Marras 20239min

Databases & Denormalization - Faster queries for faster retrieval

Databases & Denormalization - Faster queries for faster retrieval

Whether you are designing a NoSQL Database or a traditional RDBMS Database, one way to optimize to ensure faster retrieval is to denormalize but that's not the best (or even the first) solution. You want to try out a few other things before resorting to denormalization. #snowpal aws.snowpal.com learn.snowpal.com

24 Marras 20239min

Reusable UI components (React and beyond) - both presentational & functional

Reusable UI components (React and beyond) - both presentational & functional

When building UI screens (on mobile apps) or pages (on web apps), you want to focus your energies on your specific business problems. What you don't want to do is spend time reinventing the wheel. #snowpal aws.snowpal.com learn.snowpal.com

24 Marras 20239min

Caching - What to Cache, and When to Cache (Part 3)

Caching - What to Cache, and When to Cache (Part 3)

Caching is a broad topic (what isn't?). In this podcast, I've only tried to scratch the surface. How do you determine what to cache? And once you do, how do you go about it? #snowpal aws.snowpal.com learn.snowpal.com

24 Marras 20239min

Caching - Are you optimizing before identifying the problem? (Part 2)

Caching - Are you optimizing before identifying the problem? (Part 2)

If your pages take too long to render, caching may be a solution but before you go all out and start implementing or improving it, ask yourself if there are other fundamental problems that need addressing first (which led to the issues in the first place).   #snowpal aws.snowpal.com learn.snowpal.com

24 Marras 20238min

When looking to make performance improvements, it is natural to look for that ”single” big problem. But, that’s hardly ever the case.

When looking to make performance improvements, it is natural to look for that ”single” big problem. But, that’s hardly ever the case.

I've worked on making performance improvements across all tiers, and in a variety of ways within any given tier, during the course of my career and one thing I can say with a good degree of certainty is that it gets more challenging as you get closer to your goal. Reducing a page rendering time from 3 seconds to 1 second is a whole lot easier than reducing it to 900ms, then to 800ms, and then to 50ms!   #snowpal aws.snowpal.com

24 Marras 20238min

Keep your code DRY. As in, super DRY! Code duplication is a maintenance nightmare.

Keep your code DRY. As in, super DRY! Code duplication is a maintenance nightmare.

You have to make a conscious effort to keep your code base DRY. Every time you make a change, add a feature, or fix a bug, make an effort to find duplication and to determine design patterns. This will play a huge role in keeping your code DRY, and maintainable in the long run. #snowpal aws.snowpal.com learn.snowpal.com

24 Marras 202315min