diff --git a/apis/management.cattle.io/v3/authn_types.go b/apis/management.cattle.io/v3/authn_types.go index ea95300c..117c1f34 100644 --- a/apis/management.cattle.io/v3/authn_types.go +++ b/apis/management.cattle.io/v3/authn_types.go @@ -311,3 +311,7 @@ type ADFSConfig struct { type KeyCloakConfig struct { SamlConfig `json:",inline" mapstructure:",squash"` } + +type OKTAConfig struct { + SamlConfig `json:",inline" mapstructure:",squash"` +} diff --git a/apis/management.cattle.io/v3/schema/schema.go b/apis/management.cattle.io/v3/schema/schema.go index 9b306622..f9daeab0 100644 --- a/apis/management.cattle.io/v3/schema/schema.go +++ b/apis/management.cattle.io/v3/schema/schema.go @@ -455,6 +455,7 @@ func authnTypes(schemas *types.Schemas) *types.Schemas { MustImportAndCustomize(&Version, v3.PingConfig{}, configSchema). MustImportAndCustomize(&Version, v3.ADFSConfig{}, configSchema). MustImportAndCustomize(&Version, v3.KeyCloakConfig{}, configSchema). + MustImportAndCustomize(&Version, v3.OKTAConfig{}, configSchema). MustImport(&Version, v3.SamlConfigTestInput{}). MustImport(&Version, v3.SamlConfigTestOutput{}) } diff --git a/apis/management.cattle.io/v3public/authn_types.go b/apis/management.cattle.io/v3public/authn_types.go index 9ab78e1d..d2b59529 100644 --- a/apis/management.cattle.io/v3public/authn_types.go +++ b/apis/management.cattle.io/v3public/authn_types.go @@ -95,6 +95,10 @@ type KeyCloakProvider struct { SamlProvider `json:",inline"` } +type OKTAProvider struct { + SamlProvider `json:",inline"` +} + type SamlLoginInput struct { FinalRedirectURL string `json:"finalRedirectUrl"` } diff --git a/apis/management.cattle.io/v3public/schema/public_schema.go b/apis/management.cattle.io/v3public/schema/public_schema.go index 1026a2fe..01e73e4c 100644 --- a/apis/management.cattle.io/v3public/schema/public_schema.go +++ b/apis/management.cattle.io/v3public/schema/public_schema.go @@ -115,6 +115,17 @@ func authProvidersTypes(schemas *types.Schemas) *types.Schemas { schema.CollectionMethods = []string{} schema.ResourceMethods = []string{http.MethodGet} }). + MustImportAndCustomize(&PublicVersion, v3public.OKTAProvider{}, func(schema *types.Schema) { + schema.BaseType = "authProvider" + schema.ResourceActions = map[string]types.Action{ + "login": { + Input: "samlLoginInput", + Output: "samlLoginOutput", + }, + } + schema.CollectionMethods = []string{} + schema.ResourceMethods = []string{http.MethodGet} + }). MustImport(&PublicVersion, v3public.SamlLoginInput{}). MustImport(&PublicVersion, v3public.SamlLoginOutput{}). // OpenLdap provider