Add Okta IdP (#859)

This commit is contained in:
Bethuel
2023-05-29 15:52:04 +03:00
committed by GitHub
parent 49c71b9b9d
commit 2eb9a97fee
6 changed files with 513 additions and 1 deletions

View File

@@ -41,6 +41,7 @@ type Config struct {
KeycloakClientCredentials KeycloakClientConfig
ZitadelClientCredentials ZitadelClientConfig
AuthentikClientCredentials AuthentikClientConfig
OktaClientCredentials OktaClientConfig
}
// ManagerCredentials interface that authenticates using the credential of each type of idp
@@ -141,7 +142,6 @@ func NewManager(config Config, appMetrics telemetry.AppMetrics) (Manager, error)
}
return NewZitadelManager(zitadelClientConfig, appMetrics)
case "authentik":
authentikConfig := config.AuthentikClientCredentials
if config.ClientConfig != nil {
@@ -156,6 +156,19 @@ func NewManager(config Config, appMetrics telemetry.AppMetrics) (Manager, error)
}
return NewAuthentikManager(authentikConfig, appMetrics)
case "okta":
oktaClientConfig := config.OktaClientCredentials
if config.ClientConfig != nil {
oktaClientConfig = OktaClientConfig{
Issuer: config.ClientConfig.Issuer,
TokenEndpoint: config.ClientConfig.TokenEndpoint,
GrantType: config.ClientConfig.GrantType,
APIToken: config.ExtraConfig["APIToken"],
}
}
return NewOktaManager(oktaClientConfig, appMetrics)
default:
return nil, fmt.Errorf("invalid manager type: %s", config.ManagerType)
}