Some servers hand sign-in to an external identity provider. From the core's side
this is a third acquisition route with its own shape: the core is told to send a
person somewhere, and the answer comes back afterwards.
The core does not embed a browser and does not draw anything, so the part where a
person interacts with the provider belongs to the client. What the core owns is
knowing that this is the route, producing what the client needs to start it, and
turning the result back into an ordinary session.
What this produces
Detecting that a server delegates, so a client can offer the right thing rather
than a password box that will never work.
Producing what the client needs to hand to the platform's own browser, and
consuming what comes back.
The security properties stated and tested: the value that ties a started attempt
to its answer is generated by the core, is unpredictable, and an answer that does
not match a started attempt is refused rather than accepted.
A refusal from the provider surfaced as a distinct named error, since it means
something different from a rejected password.
Done when
The three properties above have a test each against the fake server, including
one that feeds back a mismatched answer and proves it is refused. The route ends
in the same session type as the other two. Blocked on #5, #4, #21.
Some servers hand sign-in to an external identity provider. From the core's side
this is a third acquisition route with its own shape: the core is told to send a
person somewhere, and the answer comes back afterwards.
The core does not embed a browser and does not draw anything, so the part where a
person interacts with the provider belongs to the client. What the core owns is
knowing that this is the route, producing what the client needs to start it, and
turning the result back into an ordinary session.
What this produces
Detecting that a server delegates, so a client can offer the right thing rather
than a password box that will never work.
Producing what the client needs to hand to the platform's own browser, and
consuming what comes back.
The security properties stated and tested: the value that ties a started attempt
to its answer is generated by the core, is unpredictable, and an answer that does
not match a started attempt is refused rather than accepted.
A refusal from the provider surfaced as a distinct named error, since it means
something different from a rejected password.
Done when
The three properties above have a test each against the fake server, including
one that feeds back a mismatched answer and proves it is refused. The route ends
in the same session type as the other two. Blocked on #5, #4, #21.