Skip to content

feat: pergunta ownership ao serviço da app no Unix socket - #16

Merged
DenisCDev merged 1 commit into
mainfrom
feat/authz-unix-socket
Sep 15, 2026
Merged

DenisCDev merged 1 commit into
mainfrom
feat/authz-unix-socket

Conversation

@DenisCDev

Copy link
Copy Markdown
Owner

Callback de authz opt-in por rota via Unix socket. O proxy manda principal + action + resource; o serviço da app responde allow/deny.

Sem bloco authorization a rota não fala com socket. Timeout/queda em fail_mode=closed → 403. Não promete acabar com IDOR sozinho. Sem OPA embarcado.

JWT bindings já conferem claim == path/body; o proxy não inventa se o
objeto pertence ao principal. Rotas opt-in com authorization = { socket,
action, resource, fail_mode } POSTam { principal, action, resource,
tenant? } no Unix socket (50 ms, teto 200 ms) e honram { allow: true|false }.

1. Sem o bloco a rota continua como hoje — bindings JWT se existirem, senão nada de IDOR.
2. fail_mode=closed: socket caído/timeout → 403 + evento authz_unavailable.
3. fail_mode=open: log + deixa passar, métrica sobe; recurso ou principal ausente continua 403 (não é "serviço caído").
4. URI com percent indecifrável não pula o bloco; HTTP/TCP para PDP remoto é recusado no TOML.
5. Evento sem token e sem body. Sem OPA embarcado.

Prova: cargo test --lib (381 ok); cargo test --lib authz (7 ok); cargo clippy --all-targets -- -D warnings; cargo test --test jwt (8 ok). Suite Unix em tests/authz.rs não correu neste host Windows (cfg(unix)).
@DenisCDev
DenisCDev merged commit 16c5c56 into main Sep 15, 2026
9 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant