Přeskočit na obsah

Tato stránka byla automaticky přeložena z angličtiny, jediného jazyka, ve kterém se tento web píše. Číst originál.

I1203 — Jeden tok obsluhuje každého providera a odmítá vše, co nezahájil

Implementovat tok s autorizačním kódem a PKCE jednou, nad typovaným modelem provideru: startovací trasa, která vydá state a nonce a přesměruje na autorizační endpoint provideru, a callback trasa, která odmítne state, který nevydala nebo jehož platnost vypršela, vymění kód, ověří vydavatele, publikum, expiraci a nonce vráceného identity tokenu a stabilní subjekt určí z tvrzení, které objekt pojmenovává.

BLOKOVÁNO vlna 2 · p0 · profil implementation · běží samostatně

Součást web-sign-in — Nasazené povrchy vědí, kdo se ptá, a poskytovatelé identit jsou data.

Blokováno. Tento úkol nemůže začít, dokud není hotovo I1202. Stav je z toho odvozen, ne deklarován.

Cíl

Implementovat tok s autorizačním kódem a PKCE jednou, nad typovaným modelem provideru: startovací trasa, která vydá state a nonce a přesměruje na autorizační endpoint provideru, a callback trasa, která odmítne state, který nevydala nebo jehož platnost vypršela, vymění kód, ověří vydavatele, publikum, expiraci a nonce vráceného identity tokenu a stabilní subjekt určí z tvrzení, které objekt pojmenovává.

Proč

Dva toky specifické pro poskytovatele jsou dvě místa, kde lze zapomenout na validaci. Rozdíly mezi poskytovateli, s nimiž tento milník začíná, jsou zápisy endpointů, které objekty už nesou.

Aktuální stav

I1202 udává poskytovatele; neexistuje tok, trasa ani ověření.

Cílový stav

Přihlášení kterýmkoli deklarovaným poskytovatelem funguje od začátku do konce proti skutečnému poskytovateli a každá cesta odmítnutí — neznámý stav, přehraný stav, expirovaný stav, nesouhlasící nonce, špatný vydavatel, chybějící přihlašovací údaje — je pokryta testem.

Rozsah

  • apps/majordomus-cli/src/identity
  • apps/majordomus-cli/src/http
  • apps/majordomus-cli/tests
  • test/cases

Mimo rozsah

  • Ukládání čehokoli o čtenáři nad rámec relace z I1204
  • Větev specifická pro providera kdekoli v toku

Závislosti

Co na tom čeká

Kritéria přijetí

  • State a nonce jsou jednorázové, vyprší a jsou vázány na poskytovatele, pro kterého byly vydány
  • Identitní token se ověří na vydavatele, publikum, expiraci a nonce dřív, než existuje jakákoli relace
  • Callback, jehož state tento server nevydal, se odmítne bez relace a bez přesměrování, které by prozradilo parametry
  • Cíl přesměrování po přihlášení se ověřuje proti vlastnímu originu povrchu místo převzetí z požadavku
  • Každá cesta odmítnutí má test a testy běží bez kontaktování kteréhokoli providera

Validace

  • cargo test --workspace --all-features
  • bash test/run.sh

Požadované důkazy

  • flow_single_implementation
  • refusals_tested
  • token_verified

Důkazy

Nic nezaznamenáno. Za každým tokenem výše musí stát příkaz nebo artefakt, než lze tento úkol dokončit; vyprávění se odmítá.

Riziko

Open redirect a nevalidovaný state jsou dva klasické defekty tohoto toku. Oba se testují jako odmítnutí, ne předpokládají.

Časová osa

zahájeno
—
ověřeno
—
dokončeno
—

Tato tři pole, důkazy výše a stav závislostí jsou vše, z čeho se stav skládá. Neexistuje žádné pole stavu, které by s nimi mohlo být v rozporu.

Kanonický záznam: .ai/repo/project/issues/I1203.yaml. Načtěte jej zpět pomocí majordomus plan show I1203.

Prohledává názvy a popisy všech stránek, které tento web publikuje.