From fd9e5e86f322b5b2e1b8d9f0ff3f51a4596a672c Mon Sep 17 00:00:00 2001 From: joerger Date: Mon, 16 Sep 2024 16:20:36 -0700 Subject: [PATCH] Display sso mfa devices as 'SSO' in tsh and 'SSO Provider' in the WebUI. --- api/types/mfa.go | 4 ++-- lib/services/local/users.go | 3 ++- web/packages/teleport/src/services/mfa/makeMfaDevice.ts | 2 ++ 3 files changed, 6 insertions(+), 3 deletions(-) diff --git a/api/types/mfa.go b/api/types/mfa.go index cd4f2ce7bbfd4..bd0f42aa21729 100644 --- a/api/types/mfa.go +++ b/api/types/mfa.go @@ -148,7 +148,7 @@ func (d *MFADevice) SetExpiry(exp time.Time) { d.Metadata.SetExpiry(exp) } // MFAType returns the human-readable name of the MFA protocol of this device. func (d *MFADevice) MFAType() string { - switch d := d.Device.(type) { + switch d.Device.(type) { case *MFADevice_Totp: return "TOTP" case *MFADevice_U2F: @@ -156,7 +156,7 @@ func (d *MFADevice) MFAType() string { case *MFADevice_Webauthn: return "WebAuthn" case *MFADevice_Sso: - return d.Sso.ConnectorType + return "SSO" default: return "unknown" } diff --git a/lib/services/local/users.go b/lib/services/local/users.go index eb753adb8b7ff..3bf4110dbef7b 100644 --- a/lib/services/local/users.go +++ b/lib/services/local/users.go @@ -1420,6 +1420,7 @@ func (s *IdentityService) getSSOMFADevice(ctx context.Context, user string) (*ty var mfaConnector interface { IsMFAEnabled() bool + GetDisplay() string } switch cb.Connector.Type { @@ -1441,7 +1442,7 @@ func (s *IdentityService) getSSOMFADevice(ctx context.Context, user string) (*ty return nil, trace.NotFound("no SSO MFA device found; user's auth connector does not have MFA enabled") } - return types.NewMFADevice(cb.Connector.ID, cb.Connector.ID, cb.Time.UTC(), &types.MFADevice_Sso{ + return types.NewMFADevice(mfaConnector.GetDisplay(), cb.Connector.ID, cb.Time.UTC(), &types.MFADevice_Sso{ Sso: &types.SSOMFADevice{ ConnectorId: cb.Connector.ID, ConnectorType: cb.Connector.Type, diff --git a/web/packages/teleport/src/services/mfa/makeMfaDevice.ts b/web/packages/teleport/src/services/mfa/makeMfaDevice.ts index dec83f762e4e0..6a886d1a732c9 100644 --- a/web/packages/teleport/src/services/mfa/makeMfaDevice.ts +++ b/web/packages/teleport/src/services/mfa/makeMfaDevice.ts @@ -26,6 +26,8 @@ export default function makeMfaDevice(json): MfaDevice { description = 'Authenticator App'; } else if (json.type === 'U2F' || json.type === 'WebAuthn') { description = 'Hardware Key'; + } else if (json.type === 'SSO') { + description = 'SSO Provider'; } else { description = 'unknown device'; }