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)

Building a Mobile App - Part II (React Native, Flutter, and some others)

Building a Mobile App - Part II (React Native, Flutter, and some others)

Even if you've decided to build a cross-platform native mobile app, there are still a few decisions to be made. In this podcast, I discuss a tiny bit about React Native and Flutter (2 very popular frameworks). #snowpal aws.snowpal.com learn.snowpal.com

24 Marras 202311min

Aggregations in Mongo - Much faster and the best (and maybe only?) alternative in many cases

Aggregations in Mongo - Much faster and the best (and maybe only?) alternative in many cases

If you are using MongoDB and an Object Data Modeling library like Mongoose, or Mongoid, you may find yourselves in situations where your queries are taking a little too long. Come Aggregations to your rescue! #snowpal aws.snowpal.com learn.snowpal.com

24 Marras 202310min

Make your Git commits frequent so you run into fewer merge conflicts

Make your Git commits frequent so you run into fewer merge conflicts

Say, your team is working on a number of features, and there is a steady stream of Pull Requests at any given time. The likelihood and complexity of merge conflicts depends both on the size of your team, and the scope of your features. In this podcast, I discuss a few options to mitigate merge conflicts. #snowpal aws.snowpal.com learn.snowpal.com

24 Marras 20238min

Heroku Cloud Application Platform - why it will help your TTM (Time to Market)

Heroku Cloud Application Platform - why it will help your TTM (Time to Market)

If you want complete control over your servers, you would choose (something like) Amazon EC2 and start with creating a new Machine Image. But, what if your interest primarily lied in building your app, and solving your user's problems ASAP, and you didn't want to spend much, if any, time on setting up and configuring servers? #snowpal aws.snowpal.com learn.snowpal.com

24 Marras 20238min

Building a Brand New Application? Looking for a way to reduce your ramp up time?

Building a Brand New Application? Looking for a way to reduce your ramp up time?

When you get started on a new project, it is natural to feel a tad overwhelmed. After all, it may be a new team, new technology stack, new processes, and new business problems - so it is alright to feel a little restless. But there is a way to feel at home by the end of Day 1.   #snowpal aws.snowpal.com learn.snowpal.com

24 Marras 202312min

Development Efficiency - Are you bouncing your servers too often?

Development Efficiency - Are you bouncing your servers too often?

If it takes you 5 minutes to test 10 lines of code, there is a problem. If it takes you 3 minutes to bounce your (local) server, and that's the only way for you to test your code, there is another problem.  #snowpal aws.snowpal.com learn.snowpal.com

24 Marras 202312min

Code Quality - How can you assess the quality of a codebase before reviewing a single line of code?

Code Quality - How can you assess the quality of a codebase before reviewing a single line of code?

Whether you are joining a new team, or a new developer is joining your team, the expectation is quite the same - "a good quality codebase that will help us understand the product without having to bug the rest of the team". How can we work towards building such a codebase? #snowpal aws.snowpal.com learn.snowpal.com

24 Marras 20239min

Backwards Compatibility Issues - a few ways to ensure that you do not run into them

Backwards Compatibility Issues - a few ways to ensure that you do not run into them

You cannot afford to make Backwards Compatibility an after thought. As your system grows, and your user base grows, you are going to continually add new features and services, and some of them will require fundamental changes to your semantics and data structure. Given that, backwards compatibility can get rather challenging but there are steps you can take to mitigate potential issues. #snowpal aws.snowpal.com learn.snowpal.com

24 Marras 20239min