diff --git a/api/types/oidc.go b/api/types/oidc.go index fae32b4e371f6..4b347cc7d19db 100644 --- a/api/types/oidc.go +++ b/api/types/oidc.go @@ -19,7 +19,9 @@ package types import ( "net/netip" "net/url" + "os" "slices" + "strconv" "strings" "time" @@ -575,8 +577,15 @@ func (o *OIDCConnectorV3) WithMFASettings() error { o.Spec.ClientSecret = o.Spec.MFASettings.ClientSecret o.Spec.ACR = o.Spec.MFASettings.AcrValues o.Spec.Prompt = o.Spec.MFASettings.Prompt - o.Spec.MaxAge = &MaxAge{ - Value: o.Spec.MFASettings.MaxAge, + // In rare cases, some providers will complain about the presence of the 'max_age' + // parameter in auth requests. Provide users with a workaround to omit it. + omitMaxAge, _ := strconv.ParseBool(os.Getenv("TELEPORT_OIDC_OMIT_MFA_MAX_AGE")) + if omitMaxAge { + o.Spec.MaxAge = nil + } else { + o.Spec.MaxAge = &MaxAge{ + Value: o.Spec.MFASettings.MaxAge, + } } return nil }