Stéphane Tailland 0847e11713 Gate the n8n trigger endpoints on Keycloak
Every webhook on this instance was answering unauthenticated requests, the
stock watchlist included — it returned references and stock levels and let
anyone clear entries. The A2A facade in front of these workflows enforces a
bearer, but the workflows stayed reachable directly, facade bypassed.

Keycloak's userinfo is the authenticator: 200 for a valid bearer in the realm,
401 otherwise, which is the auth-request contract exactly.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2026-08-31 07:56:13 +02:00
S
Description
No description provided
266 KiB
Languages
Python 91.4%
Dockerfile 8.6%