diff --git a/cmd/proxy/main.go b/cmd/proxy/main.go index 9a4b472..2308eee 100644 --- a/cmd/proxy/main.go +++ b/cmd/proxy/main.go @@ -17,6 +17,7 @@ import ( func main() { demoMode := flag.Bool("demo", false, "Use Asgardeo-based provider (demo).") + asgardeoMode := flag.Bool("asgardeo", false, "Use Asgardeo-based provider (demo).") flag.Parse() // 1. Load config @@ -32,8 +33,10 @@ func main() { cfg.JWKSURL = "https://api.asgardeo.io/t/" + cfg.Demo.OrgName + "/oauth2/jwks" provider = authz.NewAsgardeoProvider(cfg) fmt.Println("Using Asgardeo provider (demo).") - } else { - log.Fatalf("Not supported yet.") + } else if *asgardeoMode { + cfg.AuthServerBaseURL = "https://api.asgardeo.io/t/" + cfg.Asgardeo.OrgName + "/oauth2" + cfg.JWKSURL = "https://api.asgardeo.io/t/" + cfg.Asgardeo.OrgName + "/oauth2/jwks" + provider = authz.NewAsgardeoProvider(cfg) } // 3. (Optional) Fetch JWKS if you want local JWT validation diff --git a/config.yaml b/config.yaml index 9725f14..9385f58 100644 --- a/config.yaml +++ b/config.yaml @@ -16,3 +16,8 @@ demo: org_name: "openmcpauthdemo" client_id: "N0U9e_NNGr9mP_0fPnPfPI0a6twa" client_secret: "qFHfiBp5gNGAO9zV4YPnDofBzzfInatfUbHyPZvM0jka" + +asgardeo: + org_name: "" + client_id: "" + client_secret: "" diff --git a/internal/config/config.go b/internal/config/config.go index 3a3b231..6cdc949 100644 --- a/internal/config/config.go +++ b/internal/config/config.go @@ -13,6 +13,12 @@ type DemoConfig struct { OrgName string `yaml:"org_name"` } +type AsgardeoConfig struct { + ClientID string `yaml:"client_id"` + ClientSecret string `yaml:"client_secret"` + OrgName string `yaml:"org_name"` +} + type Config struct { AuthServerBaseURL string `yaml:"auth_server_base_url"` MCPServerBaseURL string `yaml:"mcp_server_base_url"` @@ -23,7 +29,8 @@ type Config struct { PathMapping map[string]string `yaml:"path_mapping"` // Nested config for Asgardeo - Demo DemoConfig `yaml:"demo"` + Demo DemoConfig `yaml:"demo"` + Asgardeo AsgardeoConfig `yaml:"asgardeo"` } // LoadConfig reads a YAML config file into Config struct.