-
Notifications
You must be signed in to change notification settings - Fork 1.8k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Implement FIDO2 login and registration #11166
Conversation
Note to reviewers: a reasonable chunk of the PR are test tables, the production code added is not that big. I've written it so it may be reviewed commit-by-commit, which should make it easier to absorb, but let me know if you'd rather have me split registration to a separate PR. I also have a test program that runs the code against real authenticators, which I didn't include here, but give me a shout if you'd like to try it out. |
754a272
to
9469f1d
Compare
PTAL? |
Friendly ping @zmb3 @rosstimothy @Tener ? |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Sorry @codingllama I was half way through looking at this earlier when GitHub started having issues
9469f1d
to
67a0ff4
Compare
Thanks for the review, @rosstimothy. PTAL? |
Thanks for the approval, folks. |
67a0ff4
to
47fc78e
Compare
Implements CLI login and registration using go-libfido2. Covers both MFA and passwordless use cases.
The FIDO2 implementation is akin to the existing U2F Login / Registration logic, including a similar "device detection" loop. A few notable differences are:
The MFA UX for end-users should remain mostly unaltered.
There are no separate methods for MFA and passwordless, as much of the logic would be the same. Instead, the methods react to the assertion/credential parameters accordingly.
At this moment this code is isolated from other callers, as well as from our build processes via the
libfido2
tag. This is to avoid impact to other developers, as go-libfido2 has a few requirements before it can be downloaded or executed.#9160