Skip to content
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

Add WebAuthn support to GUI (fixes #8409) #8417

Closed
wants to merge 34 commits into from
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
34 commits
Select commit Hold shift + click to select a range
0ce39a7
Extract function createSession
emlun Jun 23, 2022
3995406
Move HTTPS enablement check inside redirectToHTTPSMiddleware
emlun Jul 1, 2022
dfe0592
Redirect to HTTPS earlier in middleware chain
emlun Jul 1, 2022
a9c1304
Add WebAuthn support
emlun Jul 1, 2022
9785197
Extract struct splitMux
emlun Jun 30, 2022
9dea90a
Add ExcludeCredentials
emlun Jun 30, 2022
f3e6231
Undo translations
emlun Jul 5, 2022
9d6f49f
Rewrite GUIConfiguration changes in protobuf
emlun Jul 14, 2022
c33d9aa
Don't use backwards-incompatible template string syntax
emlun Jul 14, 2022
83e79d5
Set excludeCredentials in frontend instead of backend for consistency…
emlun Jul 14, 2022
31ab9c7
Move method configMuxBuilder.finish to config.Wrapper.Finish
emlun Jul 14, 2022
a2699a2
Validate WebAuthn signature counter
emlun Jul 14, 2022
bd23bb2
Use logger instead of fmt.Println to print errors
emlun Jul 14, 2022
646b893
Add comment about missing transports field
emlun Jul 14, 2022
95497b1
Revert "Extract struct splitMux"
emlun Jul 15, 2022
ee9bfa6
Move static assets under /static/ HTTP path
emlun Jul 15, 2022
a80dc40
Replace basic auth prompt with dedicated login endpoint
emlun Jul 15, 2022
bd8bada
Don't enable password auth if password is not set
emlun Jul 15, 2022
0114db5
Unset password when set to empty
emlun Jul 15, 2022
9bc23f5
Add more warnings about WebAuth host config
emlun Jul 16, 2022
a40c2ce
Simplify webauthMux to webauthnService
emlun Jul 16, 2022
a4d5124
Show warnings on login page when WebAuthn is not available
emlun Jul 16, 2022
ff66255
Show more WebAuthn error feedback
emlun Jul 16, 2022
5ef2a58
Don't drown console with errors on login page
emlun Jul 16, 2022
caf5b49
Reload login page on auth error
emlun Jul 16, 2022
b5a1603
Add advanced setting sendBasicAuthPrompt to continue sending 401 resp…
emlun Jul 16, 2022
0ddf472
Fix HTML tag mismatch
emlun Jul 17, 2022
b0b1420
Merge pull request #1 from emlun/webauthn-keep-basic-auth
emlun Jul 17, 2022
2efcfee
Merge remote-tracking branch 'upstream/main' into webauthn
emlun Jan 7, 2023
f147065
Revert mux changes and moving static assets under /static/
emlun Jan 7, 2023
7db89e9
Move /authn/ API paths under /rest/noauth/
emlun Jan 7, 2023
b8c5c74
Show error message if WebAuthn authentication is attempted without an…
emlun Jan 7, 2023
919bf3e
Address review comments
emlun Jan 7, 2023
456e968
Clean up new console.log statements
emlun Jan 7, 2023
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
65 changes: 64 additions & 1 deletion go.mod
Original file line number Diff line number Diff line change
Expand Up @@ -59,25 +59,88 @@ require (
)

require (
github.com/calmh/incontainer v0.0.0-20221224152218-b3e71b103d7a
github.com/duo-labs/webauthn v0.0.0-20221205164246-ebaf9b74c6ec
Copy link
Member

Choose a reason for hiding this comment

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

This is an archived repo, with it's readme point out this as it's successor: https://github.com/go-webauthn/webauthn

Copy link
Member Author

Choose a reason for hiding this comment

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

Yeah, I noticed but haven't gotten around to migrating it yet. I'll put it on the todo list.

github.com/google/go-cmp v0.5.9
)

require (
cloud.google.com/go v0.81.0 // indirect
github.com/Azure/go-ntlmssp v0.0.0-20221128193559-754e69321358 // indirect
github.com/beorn7/perks v1.0.1 // indirect
github.com/calmh/incontainer v0.0.0-20221224152218-b3e71b103d7a // indirect
github.com/bgentry/speakeasy v0.1.0 // indirect
github.com/census-instrumentation/opencensus-proto v0.3.0 // indirect
github.com/cloudflare/cfssl v1.6.1 // indirect
github.com/cncf/udpa/go v0.0.0-20210322005330-6414d713912e // indirect
github.com/coreos/go-semver v0.3.0 // indirect
github.com/coreos/go-systemd/v22 v22.3.2 // indirect
github.com/dustin/go-humanize v1.0.0 // indirect
github.com/envoyproxy/go-control-plane v0.9.9-0.20210217033140-668b12f5399d // indirect
github.com/envoyproxy/protoc-gen-validate v0.6.1 // indirect
github.com/form3tech-oss/jwt-go v3.2.3+incompatible // indirect
github.com/fullstorydev/grpcurl v1.8.1 // indirect
github.com/fxamacker/cbor/v2 v2.4.0 // indirect
github.com/go-ole/go-ole v1.2.6 // indirect
github.com/go-task/slim-sprig v0.0.0-20210107165309-348f09dbbbc0 // indirect
github.com/golang-jwt/jwt/v4 v4.1.0 // indirect
github.com/golang/mock v1.6.0 // indirect
github.com/golang/protobuf v1.5.2 // indirect
github.com/google/btree v1.0.1 // indirect
github.com/google/certificate-transparency-go v1.1.2-0.20210511102531-373a877eec92 // indirect
github.com/google/pprof v0.0.0-20221203041831-ce31453925ec // indirect
github.com/google/uuid v1.3.0 // indirect
github.com/gorilla/websocket v1.4.2 // indirect
github.com/grpc-ecosystem/go-grpc-middleware v1.3.0 // indirect
github.com/grpc-ecosystem/go-grpc-prometheus v1.2.0 // indirect
github.com/grpc-ecosystem/grpc-gateway v1.16.0 // indirect
github.com/inconshreveable/mousetrap v1.0.0 // indirect
github.com/jhump/protoreflect v1.8.2 // indirect
github.com/jonboulle/clockwork v0.2.2 // indirect
github.com/json-iterator/go v1.1.12 // indirect
github.com/marten-seemann/qtls-go1-18 v0.1.3 // indirect
github.com/marten-seemann/qtls-go1-19 v0.1.1 // indirect
github.com/mattn/go-runewidth v0.0.12 // indirect
github.com/matttproud/golang_protobuf_extensions v1.0.4 // indirect
github.com/mitchellh/mapstructure v1.1.2 // indirect
github.com/modern-go/concurrent v0.0.0-20180306012644-bacd9c7ef1dd // indirect
github.com/modern-go/reflect2 v1.0.2 // indirect
github.com/olekukonko/tablewriter v0.0.5 // indirect
github.com/onsi/ginkgo/v2 v2.6.0 // indirect
github.com/oschwald/maxminddb-golang v1.10.0 // indirect
github.com/petermattis/goid v0.0.0-20221202122410-a449aaf35945 // indirect
github.com/power-devops/perfstat v0.0.0-20220216144756-c35f1ee13d7c // indirect
github.com/prometheus/client_model v0.3.0 // indirect
github.com/rivo/uniseg v0.2.0 // indirect
github.com/russross/blackfriday/v2 v2.1.0 // indirect
github.com/sirupsen/logrus v1.8.1 // indirect
github.com/soheilhy/cmux v0.1.5 // indirect
github.com/spf13/cobra v1.1.3 // indirect
github.com/spf13/pflag v1.0.5 // indirect
github.com/tmc/grpc-websocket-proxy v0.0.0-20201229170055-e5319fda7802 // indirect
github.com/x448/float16 v0.8.4 // indirect
github.com/xiang90/probing v0.0.0-20190116061207-43a291ad63a2 // indirect
github.com/yusufpapurcu/wmi v1.2.2 // indirect
go.etcd.io/bbolt v1.3.5 // indirect
go.etcd.io/etcd/api/v3 v3.5.0-alpha.0 // indirect
go.etcd.io/etcd/client/v2 v2.305.0-alpha.0 // indirect
go.etcd.io/etcd/client/v3 v3.5.0-alpha.0 // indirect
go.etcd.io/etcd/etcdctl/v3 v3.5.0-alpha.0 // indirect
go.etcd.io/etcd/pkg/v3 v3.5.0-alpha.0 // indirect
go.etcd.io/etcd/raft/v3 v3.5.0-alpha.0 // indirect
go.etcd.io/etcd/server/v3 v3.5.0-alpha.0 // indirect
go.etcd.io/etcd/tests/v3 v3.5.0-alpha.0 // indirect
go.etcd.io/etcd/v3 v3.5.0-alpha.0 // indirect
go.uber.org/atomic v1.7.0 // indirect
go.uber.org/multierr v1.7.0 // indirect
go.uber.org/zap v1.16.0 // indirect
golang.org/x/exp v0.0.0-20221211140036-ad323defaf05 // indirect
golang.org/x/oauth2 v0.0.0-20220722155238-128564f6959c // indirect
google.golang.org/appengine v1.6.7 // indirect
google.golang.org/genproto v0.0.0-20210510173355-fb37daa5cd7a // indirect
google.golang.org/grpc v1.37.0 // indirect
gopkg.in/cheggaaa/pb.v1 v1.0.28 // indirect
gopkg.in/yaml.v2 v2.4.0 // indirect
sigs.k8s.io/yaml v1.2.0 // indirect
)

// https://github.com/gobwas/glob/pull/55
Expand Down
Loading