Hacktoberfest 2026: le issue che i maintainer hanno segnato per ottobre, aperte e adatte ai principianti. Sfoglia le issue Hacktoberfest

Support SigV4 presigned URL verification

Aperta
#39 0 commenti 0 reazioni 0 assegnatari Vedi su GitHub

I maintainer di solito rispondono entro 1 giorno

@alukach ci sta già lavorando.

Dal 22/7/2026.

  • #125 di @alukach — aperta

Valutazione

Difficoltà
4/5
Tempo stimato
3-5 giorni
Idoneità per principianti
58/100
Tipo di issue
Funzionalità
Chiarezza
Specificata chiaramente
Stato di attività
Tranquilla
Stack tecnologico
aws, rust

Direzione di ricerca

Leggi prima resolve_identity() in auth/identity.rs e parse_sigv4_auth() in auth/sigv4.rs. Traccia quindi la risoluzione esistente di CredentialRegistry e TokenKey, poi confronta la gestione della richiesta canonica basata sugli header con i requisiti dell’issue. Il lavoro è completato quando parametri di query SigV4 validi eseguono l’autenticazione, X-Amz-Signature è escluso dalla canonicalizzazione, viene usato UNSIGNED-PAYLOAD e X-Amz-Expires viene fatto rispettare.

Scritto dal modello di indicizzazione a partire dal testo della issue.

Descrizione

Problem

The auth module only supports header-based SigV4 authentication (the Authorization header). When no Authorization header is present, the request is treated as anonymous.

AWS S3 presigned URLs encode the signature in query parameters instead:

  • X-Amz-Algorithm
  • X-Amz-Credential
  • X-Amz-Date
  • X-Amz-Expires
  • X-Amz-SignedHeaders
  • X-Amz-Signature
  • X-Amz-Security-Token (for temporary credentials)

Currently these are ignored, so presigned URLs generated with STS credentials are treated as anonymous requests.

Why it matters

Presigned URLs are commonly used for:

  • Direct <img>/<a> tags in browsers (can't set Authorization header)
  • Sharing time-limited download links for restricted data
  • Any context where the HTTP client can't set custom headers

Without this, the STS credential flow only works for SDK-based requests that set the Authorization header.

What needs to change

  1. resolve_identity() in auth/identity.rs — when the Authorization header is absent, check query parameters for X-Amz-Algorithm=AWS4-HMAC-SHA256 before falling back to anonymous.

  2. parse_sigv4_auth() in auth/sigv4.rs — add a parallel code path (or new function) to extract credential, signed headers, and signature from query parameters instead of the header.

  3. Signature verification — presigned URL canonical requests differ from header-based ones:

    • The X-Amz-Signature parameter is excluded from the canonical query string
    • The payload hash is always UNSIGNED-PAYLOAD
    • Expiration (X-Amz-Expires) must be validated
  4. Credential resolution — the existing CredentialRegistry + TokenKey resolver should work as-is once the access key is extracted from the query string.

References

Lingua principale
Rust
Stelle
20
Fork
1
Merge medio
1g 8h
PR unite (30g)
10

Preparare l'ambiente

Come iniziare

  1. Leggi tutta la issue e poi la guida ai contributi del progetto.
  2. Commenta sulla issue per dire che te ne occupi tu — evita che due persone facciano lo stesso lavoro.
  3. Fai un fork del repository e lavora su un branch.
  4. Apri una pull request che faccia riferimento al numero della issue.

Altre issue di developmentseed/multistore

Tutte le issue di developmentseed/multistore

Issue simili

Altre issue su Rust

Ricevi le nuove issue nella tua casella

Un breve riepilogo di issue GitHub adatte ai principianti.