Skip to content

[Browser MFA] Add CLI tool callback handling for webauthn response#64461

Merged
danielashare merged 1 commit into
masterfrom
danielashare/browser-mfa-client-mfa-receive
Mar 27, 2026
Merged

[Browser MFA] Add CLI tool callback handling for webauthn response#64461
danielashare merged 1 commit into
masterfrom
danielashare/browser-mfa-client-mfa-receive

Conversation

@danielashare
Copy link
Copy Markdown
Contributor

@danielashare danielashare commented Mar 10, 2026

This PR adds the functionality for tsh and tctl to receive authorisation via the Browser MFA flow to login/ssh/admin action. The request portion of this feature can be found at #64301. The RFD for Browser MFA can be found here. Tracking issue here.

These changes address this part of the flow from the above RFD:

sequenceDiagram
    participant tsh
    participant browser as Browser
    participant proxy as Proxy

    browser->>tsh: Redirect to callback URL<br/>http://127.0.0.1:port/callback?response={encrypted_webauthn}
    tsh->>tsh: Decrypt response with secret_key<br/>Extract WebAuthn response
    tsh-->>browser: Display success page
    tsh->>proxy: POST /webapi/mfa/login/finish
Loading

Manual tests:

  • tsh login with Browser MFA to PoC branch
  • tsh ssh with Browser MFA to PoC branch
  • tctl edit cap with Browser MFA to PoC branch
  • tsh login with SSO
  • tsh ssh with SSO MFA
  • tctl edit cap with SSO MFA

@danielashare danielashare self-assigned this Mar 10, 2026
@danielashare danielashare added no-changelog Indicates that a PR does not require a changelog entry backport/branch/v18 labels Mar 10, 2026
@github-actions github-actions Bot requested review from Tener and tcsc March 10, 2026 07:09
Copy link
Copy Markdown

@chatgpt-codex-connector chatgpt-codex-connector Bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

💡 Codex Review

Here are some automated review suggestions for this pull request.

Reviewed commit: 8442df866f

ℹ️ About Codex in GitHub

Codex has been enabled to automatically review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review".

If Codex has suggestions, it will comment; otherwise it will react with 👍.

When you sign up for Codex through ChatGPT, Codex can also answer questions or update the PR, like "@codex address that feedback".

Comment thread lib/client/weblogin.go
@danielashare danielashare changed the title [Browser MFA] Add tsh callback handling for webauthn response [Browser MFA] Add CLI tool callback handling for webauthn response Mar 10, 2026
@danielashare danielashare force-pushed the danielashare/browser-mfa-client-mfa-begin branch from aa535dc to 9a24357 Compare March 22, 2026 08:54
@danielashare danielashare force-pushed the danielashare/browser-mfa-client-mfa-receive branch from a8d4d22 to 8d6f4eb Compare March 22, 2026 10:04
Copy link
Copy Markdown

@chatgpt-codex-connector chatgpt-codex-connector Bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

💡 Codex Review

Here are some automated review suggestions for this pull request.

Reviewed commit: 8d6f4ebe95

ℹ️ About Codex in GitHub

Codex has been enabled to automatically review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review".

If Codex has suggestions, it will comment; otherwise it will react with 👍.

When you sign up for Codex through ChatGPT, Codex can also answer questions or update the PR, like "@codex address that feedback".

Comment thread lib/client/sso/ceremony.go
@danielashare danielashare force-pushed the danielashare/browser-mfa-client-mfa-receive branch from 8d6f4eb to d8311c3 Compare March 23, 2026 15:06
Copy link
Copy Markdown

@chatgpt-codex-connector chatgpt-codex-connector Bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

💡 Codex Review

Here are some automated review suggestions for this pull request.

Reviewed commit: d8311c3079

ℹ️ About Codex in GitHub

Codex has been enabled to automatically review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review".

If Codex has suggestions, it will comment; otherwise it will react with 👍.

When you sign up for Codex through ChatGPT, Codex can also answer questions or update the PR, like "@codex address that feedback".

Comment thread lib/client/sso/ceremony.go Outdated
Comment thread lib/client/sso/ceremony.go
Comment thread lib/client/sso/ceremony.go Outdated
Comment thread lib/client/sso/ceremony.go Outdated
@danielashare danielashare force-pushed the danielashare/browser-mfa-client-mfa-receive branch from f3b8de7 to f540b6f Compare March 25, 2026 15:24
@danielashare danielashare force-pushed the danielashare/browser-mfa-client-mfa-begin branch 4 times, most recently from ebfb00a to ab64815 Compare March 26, 2026 16:00
Copy link
Copy Markdown

@chatgpt-codex-connector chatgpt-codex-connector Bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

💡 Codex Review

Here are some automated review suggestions for this pull request.

Reviewed commit: 1d5e063415

ℹ️ About Codex in GitHub

Codex has been enabled to automatically review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review".

If Codex has suggestions, it will comment; otherwise it will react with 👍.

When you sign up for Codex through ChatGPT, Codex can also answer questions or update the PR, like "@codex address that feedback".

Comment thread lib/auth/grpcserver.go
Comment thread lib/client/mfa/cli.go Outdated
@danielashare danielashare force-pushed the danielashare/browser-mfa-client-mfa-begin branch from ab64815 to 5d7ccee Compare March 26, 2026 20:08
Copy link
Copy Markdown

@chatgpt-codex-connector chatgpt-codex-connector Bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

💡 Codex Review

Here are some automated review suggestions for this pull request.

Reviewed commit: 35e4ad063c

ℹ️ About Codex in GitHub

Codex has been enabled to automatically review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review".

If Codex has suggestions, it will comment; otherwise it will react with 👍.

When you sign up for Codex through ChatGPT, Codex can also answer questions or update the PR, like "@codex address that feedback".

Comment thread lib/client/mfa/cli.go
Base automatically changed from danielashare/browser-mfa-client-mfa-begin to master March 26, 2026 20:50
@danielashare danielashare force-pushed the danielashare/browser-mfa-client-mfa-receive branch from 35e4ad0 to 8fc32c9 Compare March 26, 2026 22:01
@danielashare danielashare force-pushed the danielashare/browser-mfa-client-mfa-receive branch from 8fc32c9 to c9fe8ce Compare March 26, 2026 22:04
@danielashare danielashare added this pull request to the merge queue Mar 27, 2026
Merged via the queue into master with commit e745e0d Mar 27, 2026
42 of 43 checks passed
@danielashare danielashare deleted the danielashare/browser-mfa-client-mfa-receive branch March 27, 2026 07:59
@backport-bot-workflows
Copy link
Copy Markdown
Contributor

@danielashare See the table below for backport results.

Branch Result
branch/v18 Failed

danielashare added a commit that referenced this pull request May 6, 2026
[Browser MFA] Add protobuf and config (#63831)

[Browser MFA] Add proto for Browser MFA feature (#64048)

[Browser MFA] Add CompleteBrowserMFAChallenge gRPC (#63873)

[Browser MFA] Rename browser mfa config name (#64980)

[Browser MFA] Add BrowserMFARequestID to CreateAuthenticateChallenge (#63945)

[Browser MFA] Add Browser MFA to challenge request flow (#63936)

[Browser MFA] Add initial requests for browser MFA process to client tools (#64301)

[Browser MFA] Add tsh callback handling for webauthn response (#64461)

[Browser MFA] Add Browser MFA to presence checks (#65052)

[Browser MFA] Add browser MFA path to MFA finish flow (#64523)

[Browser MFA] Add Browser MFA to Connect (#64887)

[Browser MFA] Add Browser MFA UI (#64692)

[Browser MFA] Fix formatting in moderated sessions (#65236)

[Browser MFA] Add Browser MFA ceremony tests
ivan-bax pushed a commit to ivan-bax/teleport that referenced this pull request May 22, 2026
[Browser MFA] Add protobuf and config (gravitational#63831)

[Browser MFA] Add proto for Browser MFA feature (gravitational#64048)

[Browser MFA] Add CompleteBrowserMFAChallenge gRPC (gravitational#63873)

[Browser MFA] Rename browser mfa config name (gravitational#64980)

[Browser MFA] Add BrowserMFARequestID to CreateAuthenticateChallenge (gravitational#63945)

[Browser MFA] Add Browser MFA to challenge request flow (gravitational#63936)

[Browser MFA] Add initial requests for browser MFA process to client tools (gravitational#64301)

[Browser MFA] Add tsh callback handling for webauthn response (gravitational#64461)

[Browser MFA] Add Browser MFA to presence checks (gravitational#65052)

[Browser MFA] Add browser MFA path to MFA finish flow (gravitational#64523)

[Browser MFA] Add Browser MFA to Connect (gravitational#64887)

[Browser MFA] Add Browser MFA UI (gravitational#64692)

[Browser MFA] Fix formatting in moderated sessions (gravitational#65236)

[Browser MFA] Add Browser MFA ceremony tests
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

backport/branch/v18 no-changelog Indicates that a PR does not require a changelog entry size/sm

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants