Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
18 commits
Select commit Hold shift + click to select a range
456d9bc
feat: deployed Keycloak and configure agentcube
mahil-2040 May 28, 2026
a2329d2
feat: hardened Keycloak deployment for production readiness
mahil-2040 May 28, 2026
aefbd7b
feat: hardened and validated Keycloak Helm deployment
mahil-2040 Jun 2, 2026
89be686
fix: Improved Keycloak Helm validation
mahil-2040 Jun 2, 2026
8bb80f2
docs(design): added end-to-end Keycloak auth proposal
mahil-2040 Jun 3, 2026
b502853
fix: secureed client secrets and fixed port templating
mahil-2040 Jun 4, 2026
6f72e9e
refactor(helm): extracted Keycloak to addon chart and updated OIDC de…
mahil-2040 Jun 4, 2026
b44b41b
fix(helm): improved keycloak addon safety and conventions
mahil-2040 Jun 4, 2026
532bc4f
feat(helm): added required role configuration for OIDC in router and …
mahil-2040 Jun 5, 2026
e49e608
feat: integrated external OIDC authentication and RBAC
mahil-2040 Jun 5, 2026
e7d3da9
feat: enhanced OIDC validation and JWT handling and added tests for i…
mahil-2040 Jun 5, 2026
8a7d0f0
feat(auth): implemented OIDC integration, Python SDK auth, and RLAC e…
mahil-2040 Jun 5, 2026
00e50cd
docs: added tutorial for securing external access with Keycloak (OIDC)
mahil-2040 Jun 5, 2026
3b2260d
feat: enforced JWT expiration requirement in identity verification an…
mahil-2040 Jun 5, 2026
452c386
fix: refactored OIDC to JWT configuration for external authentication…
mahil-2040 Jun 9, 2026
99465bc
fix(auth): renamed OAuth2 clients, fixed ownerID assignment, and impr…
mahil-2040 Jun 18, 2026
ba75014
fix: renamed client IDs, fail-closed on creation errors, and aligned …
mahil-2040 Jun 18, 2026
572a143
fix: fixed linting error
mahil-2040 Jun 18, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
11 changes: 11 additions & 0 deletions cmd/router/main.go
Original file line number Diff line number Diff line change
Expand Up @@ -44,6 +44,13 @@ func main() {
mtlsCert = flag.String("mtls-cert", "", "Path to mTLS client certificate for upstream WorkloadManager connections")
mtlsKey = flag.String("mtls-key", "", "Path to mTLS client key for upstream WorkloadManager connections")
mtlsCA = flag.String("mtls-ca", "", "Path to mTLS CA bundle for verifying upstream WorkloadManager identity")

// JWT configuration for external user authentication.
// External auth is automatically enabled when --jwt-issuer-url is provided.
jwtIssuerURL = flag.String("jwt-issuer-url", "", "JWT issuer URL, enables external auth when set")
jwtAudience = flag.String("jwt-audience", "agentcube-api", "Expected audience (aud) claim in the JWT")
jwtRoleClaim = flag.String("jwt-role-claim", "", "JSON path to roles array in the JWT (e.g., realm_access.roles)")
jwtRequiredRole = flag.String("jwt-required-role", "", "Role required to access the API (e.g., sandbox:invoke)")
)

// Initialize klog flags
Expand Down Expand Up @@ -76,6 +83,10 @@ func main() {
TLSKey: *tlsKey,
MaxConcurrentRequests: *maxConcurrentRequests,
MTLSConfig: tlsConfig,
JWTIssuerURL: *jwtIssuerURL,
JWTAudience: *jwtAudience,
JWTRoleClaim: *jwtRoleClaim,
JWTRequiredRole: *jwtRequiredRole,
}

// Create Router API server
Expand Down
Loading
Loading