DEV Community

Auth By Example profile picture

Auth By Example

Practical lessons on auth, authorization, and access control.

Joined Joined on  Personal website https://www.permit.io
A new group with an old group's name can inherit everything the old one could access

A new group with an old group's name can inherit everything the old one could access

Comments 1
1 min read

Want to connect with Auth By Example?

Create an account to connect with Auth By Example. You can also sign in below to proceed if you already have an account.

Already have an account? Sign in
What to log when an AI agent acts on someone's behalf

What to log when an AI agent acts on someone's behalf

Comments 2
2 min read
A profile update endpoint can let users change fields they were never allowed to edit

A profile update endpoint can let users change fields they were never allowed to edit

Comments
2 min read
An approve button needs to check that the approver didn't file the request

An approve button needs to check that the approver didn't file the request

Comments
1 min read
When an invoice approval check outgrows if user.role == "admin"

When an invoice approval check outgrows if user.role == "admin"

Comments
2 min read
A CSV import that matches on ID can overwrite records the importer can't edit

A CSV import that matches on ID can overwrite records the importer can't edit

Comments
2 min read
Before an agent's tool call runs, the check needs to know who delegated it

Before an agent's tool call runs, the check needs to know who delegated it

1
Comments 3
2 min read
Sorting by a hidden column can leak the values you hid

Sorting by a hidden column can leak the values you hid

Comments
1 min read
Renaming a shared tag can edit records the user can't open

Renaming a shared tag can edit records the user can't open

Comments
1 min read
Reply-by-email can post comments after the sender loses access

Reply-by-email can post comments after the sender loses access

Comments
1 min read
An open editor tab can keep autosaving after you remove edit access

An open editor tab can keep autosaving after you remove edit access

Comments 1
1 min read
Search autocomplete can name records the list page already hid

Search autocomplete can name records the list page already hid

Comments
1 min read
Your related items panel can name records the viewer can't open

Your related items panel can name records the viewer can't open

Comments
1 min read
Your command palette can list records the search page would hide

Your command palette can list records the search page would hide

Comments
1 min read
Print preview can still show records the user lost access to

Print preview can still show records the user lost access to

Comments
1 min read
Your CSV export can include rows the list already hid

Your CSV export can include rows the list already hid

Comments
1 min read
Your daily email digest can name records the user can't open

Your daily email digest can name records the user can't open

Comments
1 min read
Your notification bell can show titles the user can't open

Your notification bell can show titles the user can't open

Comments 1
1 min read
Full-text search can return hits your list page would hide

Full-text search can return hits your list page would hide

Comments
1 min read
ISO 42001 certification is an audit of your AI management system, not a badge from ISO

ISO 42001 certification is an audit of your AI management system, not a badge from ISO

Comments
1 min read
A batch get-by-id endpoint can leak records your list filter would hide

A batch get-by-id endpoint can leak records your list filter would hide

Comments
1 min read
A report that joins tables can leak rows your list pages would hide

A report that joins tables can leak rows your list pages would hide

Comments
1 min read
What EU AI Act Article 12 and ISO 42001 mean for AI agent logs

What EU AI Act Article 12 and ISO 42001 mean for AI agent logs

Comments
2 min read
GraphQL resolvers often check the top-level object and skip the nested ones

GraphQL resolvers often check the top-level object and skip the nested ones

Comments 2
1 min read
The user picker in your share dialog can leak your whole user table

The user picker in your share dialog can leak your whole user table

Comments
1 min read
An admin shouldn't be able to grant a role bigger than their own

An admin shouldn't be able to grant a role bigger than their own

Comments
1 min read
Archiving a workspace should make the API read-only too

Archiving a workspace should make the API read-only too

Comments
1 min read
Four questions to ask about one real authorization flow

Four questions to ask about one real authorization flow

Comments
1 min read
Duplicating a record should check access to everything it copies

Duplicating a record should check access to everything it copies

Comments
1 min read
Attachment downloads should check the record they belong to

Attachment downloads should check the record they belong to

Comments
1 min read
Counts and totals need the same authorization filter as the list

Counts and totals need the same authorization filter as the list

Comments 3
1 min read
A valid token is not an AI agent audit trail

A valid token is not an AI agent audit trail

Comments
1 min read
An email domain is not tenant membership

An email domain is not tenant membership

Comments
2 min read
A presigned URL is not ongoing authorization

A presigned URL is not ongoing authorization

Comments
2 min read
An MFA challenge pass is not object authorization

An MFA challenge pass is not object authorization

Comments
1 min read
A CORS allowlist is not authorization

A CORS allowlist is not authorization

Comments
1 min read
A signed cookie is not object authorization

A signed cookie is not object authorization

Comments
1 min read
A reverse-proxy auth plugin is not application authorization

A reverse-proxy auth plugin is not application authorization

Comments
1 min read
A shared service account is not per-tenant authorization

A shared service account is not per-tenant authorization

Comments
1 min read
A system cron job still needs per-tenant authorization

A system cron job still needs per-tenant authorization

1
Comments 7
1 min read
Stop picking an authorization religion

Stop picking an authorization religion

Comments
1 min read
Tool traces are not an AI agent audit trail

Tool traces are not an AI agent audit trail

Comments
1 min read
A bulk export still needs per-row authorization

A bulk export still needs per-row authorization

Comments
1 min read
An alternate-key lookup still needs object authorization

An alternate-key lookup still needs object authorization

Comments
1 min read
IdP login logs cannot answer "why was this allowed?"

IdP login logs cannot answer "why was this allowed?"

Comments
1 min read
A client-supplied tenant id is not authorization

A client-supplied tenant id is not authorization

Comments 2
1 min read
SOC 2 CC6 and ISO 27001 still assume humans — agents break the evidence model

SOC 2 CC6 and ISO 27001 still assume humans — agents break the evidence model

Comments
1 min read
A nested resource path still needs two authorization checks

A nested resource path still needs two authorization checks

Comments
1 min read
A long-lived stream is not a standing permission grant

A long-lived stream is not a standing permission grant

Comments 1
1 min read
IdP login logs are not enough for SOC 2-style access reviews

IdP login logs are not enough for SOC 2-style access reviews

Comments
1 min read
An async job is not a free pass on authorization

An async job is not a free pass on authorization

Comments
1 min read
Login events are not authorization evidence

Login events are not authorization evidence

Comments
1 min read
A batch API is not a free pass on every item

A batch API is not a free pass on every item

Comments
1 min read
A WebSocket reconnect is not a free pass

A WebSocket reconnect is not a free pass

2
Comments 3
1 min read
What least-privilege evidence your authz model can actually produce

What least-privilege evidence your authz model can actually produce

1
Comments 3
1 min read
A valid webhook signature is not authorization

A valid webhook signature is not authorization

2
Comments 2
1 min read
Feature Flags Are Not Authorization

Feature Flags Are Not Authorization

Comments
2 min read
When every exception becomes a new role, you need attributes

When every exception becomes a new role, you need attributes

Comments
1 min read
AI agents that inherit your OAuth token break least privilege

AI agents that inherit your OAuth token break least privilege

Comments 1
1 min read
A share link is a scoped grant, not permanent access

A share link is a scoped grant, not permanent access

Comments
1 min read
loading...