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
type Config struct {
ManagerType string
ClientConfig *ClientConfig
ExtraConfig ExtraConfig
Auth0ClientCredentials Auth0ClientConfig
AzureClientCredentials AzureClientConfig
KeycloakClientCredentials KeycloakClientConfig
ZitadelClientCredentials ZitadelClientConfig
AuthentikClientCredentials AuthentikClientConfig
OktaClientCredentials OktaClientConfig
ManagerType string
ClientConfig *ClientConfig
ExtraConfig ExtraConfig
Auth0ClientCredentials Auth0ClientConfig
AzureClientCredentials AzureClientConfig
KeycloakClientCredentials KeycloakClientConfig
ZitadelClientCredentials ZitadelClientConfig
}
// 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)
case "authentik":
authentikConfig := config.AuthentikClientCredentials
if config.ClientConfig != nil {
authentikConfig = AuthentikClientConfig{
Issuer: config.ClientConfig.Issuer,
ClientID: config.ClientConfig.ClientID,
TokenEndpoint: config.ClientConfig.TokenEndpoint,
GrantType: config.ClientConfig.GrantType,
Username: config.ExtraConfig["Username"],
Password: config.ExtraConfig["Password"],
}
authentikConfig := AuthentikClientConfig{
Issuer: config.ClientConfig.Issuer,
ClientID: config.ClientConfig.ClientID,
TokenEndpoint: config.ClientConfig.TokenEndpoint,
GrantType: config.ClientConfig.GrantType,
Username: config.ExtraConfig["Username"],
Password: config.ExtraConfig["Password"],
}
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"],
}
oktaClientConfig := OktaClientConfig{
Issuer: config.ClientConfig.Issuer,
TokenEndpoint: config.ClientConfig.TokenEndpoint,
GrantType: config.ClientConfig.GrantType,
APIToken: config.ExtraConfig["APIToken"],
}
return NewOktaManager(oktaClientConfig, appMetrics)
default: