Skip to content

React SDK cannot request a security key at enrollment #183

Description

@Bccorb

Part of #155. Session 1. Split out of #156.

Problem

#156 made the API able to offer roaming authenticators, and added
?attachment=platform / ?attachment=cross-platform on
GET /webauthn/register/start. Nothing in the client can ask for it yet.

seamless-auth-react builds that query string from a PRF-shaped input
(buildRegisterStartPath in src/client/createSeamlessAuthClient.ts, which sets
only requestPrf and requirePrf), so the attachment parameter is not
reachable through the SDK. Registration also goes straight to
startRegistration({ optionsJSON }) with no branch point where a user could say
"I want to use a security key instead."

The default now offers both kinds in the browser picker, so this is not blocking
enrolment. What is missing is the deliberate path: an agency handing someone an
issued key wants that person taken straight to it, not left to find it in a
picker.

Why it matters

This is the client half of the hard cases in Appendix B of the migration
runbook: the issued key on a lanyard, and per-person roaming keys on a shared
front-desk workstation. Staff being walked through enrolment by a help desk need
an obvious path, not a browser dialog they have to interpret.

What to do

The work lands in seamless-auth-react, not in this repository.

  • Widen the registration input so a caller can request an attachment, and thread
    it into the register/start query
  • Offer a visible "use a security key instead" path in the bundled enrolment UI
  • Render the 400 the API returns for an unrecognised attachment
  • Keep the default unset so the picker still offers both kinds

Acceptance

  • A caller can drive a security-key enrolment through the SDK without hand
    building the URL
  • The default enrolment path is unchanged
  • Covered by tests in the SDK repository

Freeze status

Exception 4. Blocked on nothing: the API side shipped in #156.

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    enhancementNew feature or request

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions