Read config from generic configs (#909)

This commit is contained in:
Bethuel 2023-05-29 17:01:04 +03:00 committed by GitHub
parent ba7a39a4fc
commit 79736197cd
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23

View File

@ -33,15 +33,13 @@ type ExtraConfig map[string]string
// Config an idp configuration struct to be loaded from management server's config file // Config an idp configuration struct to be loaded from management server's config file
type Config struct { type Config struct {
ManagerType string ManagerType string
ClientConfig *ClientConfig ClientConfig *ClientConfig
ExtraConfig ExtraConfig ExtraConfig ExtraConfig
Auth0ClientCredentials Auth0ClientConfig Auth0ClientCredentials Auth0ClientConfig
AzureClientCredentials AzureClientConfig AzureClientCredentials AzureClientConfig
KeycloakClientCredentials KeycloakClientConfig KeycloakClientCredentials KeycloakClientConfig
ZitadelClientCredentials ZitadelClientConfig ZitadelClientCredentials ZitadelClientConfig
AuthentikClientCredentials AuthentikClientConfig
OktaClientCredentials OktaClientConfig
} }
// ManagerCredentials interface that authenticates using the credential of each type of idp // ManagerCredentials interface that authenticates using the credential of each type of idp
@ -143,30 +141,22 @@ func NewManager(config Config, appMetrics telemetry.AppMetrics) (Manager, error)
return NewZitadelManager(zitadelClientConfig, appMetrics) return NewZitadelManager(zitadelClientConfig, appMetrics)
case "authentik": case "authentik":
authentikConfig := config.AuthentikClientCredentials authentikConfig := AuthentikClientConfig{
if config.ClientConfig != nil { Issuer: config.ClientConfig.Issuer,
authentikConfig = AuthentikClientConfig{ ClientID: config.ClientConfig.ClientID,
Issuer: config.ClientConfig.Issuer, TokenEndpoint: config.ClientConfig.TokenEndpoint,
ClientID: config.ClientConfig.ClientID, GrantType: config.ClientConfig.GrantType,
TokenEndpoint: config.ClientConfig.TokenEndpoint, Username: config.ExtraConfig["Username"],
GrantType: config.ClientConfig.GrantType, Password: config.ExtraConfig["Password"],
Username: config.ExtraConfig["Username"],
Password: config.ExtraConfig["Password"],
}
} }
return NewAuthentikManager(authentikConfig, appMetrics) return NewAuthentikManager(authentikConfig, appMetrics)
case "okta": case "okta":
oktaClientConfig := config.OktaClientCredentials oktaClientConfig := OktaClientConfig{
if config.ClientConfig != nil { Issuer: config.ClientConfig.Issuer,
oktaClientConfig = OktaClientConfig{ TokenEndpoint: config.ClientConfig.TokenEndpoint,
Issuer: config.ClientConfig.Issuer, GrantType: config.ClientConfig.GrantType,
TokenEndpoint: config.ClientConfig.TokenEndpoint, APIToken: config.ExtraConfig["APIToken"],
GrantType: config.ClientConfig.GrantType,
APIToken: config.ExtraConfig["APIToken"],
}
} }
return NewOktaManager(oktaClientConfig, appMetrics) return NewOktaManager(oktaClientConfig, appMetrics)
default: default: