Admit operator-tunneled OpenBao callback
All checks were successful
Build and Publish Container Image / build-and-push (push) Successful in 23s

Assistant: codex
Assistant-Model: gpt-5.6-sol
Assistant-Session: 01a02e3f-7301-7622-9be1-12e5f352881c
This commit is contained in:
tegwick 2026-08-23 13:16:21 +02:00
parent 34fadae1c1
commit f5cf77fa0c
3 changed files with 64 additions and 0 deletions

View file

@ -20,6 +20,17 @@ privacyidea:
adminToken: "changeme" adminToken: "changeme"
realm: "netkingdom" realm: "netkingdom"
clients: clients:
- clientId: "openbao-admin"
displayName: "Railiance OpenBao Admin"
redirectUris:
- "http://localhost:8250/oidc/callback"
- "http://127.0.0.1:8250/oidc/callback"
- "http://127.0.0.1:18200/ui/vault/auth/netkingdom/oidc/callback"
- "https://bao.coulomb.social/ui/vault/auth/netkingdom/oidc/callback"
- "https://bao.coulomb.social/ui/vault/auth/keycape/oidc/callback"
allowedScopes: ["openid", "profile", "email", "groups"]
grantTypes: ["authorization_code"]
clientType: "public"
- clientId: "demo-app" - clientId: "demo-app"
displayName: "Demo Application" displayName: "Demo Application"
redirectUris: redirectUris:

View file

@ -409,6 +409,30 @@ func TestServiceClientExampleContracts(t *testing.T) {
} }
} }
func TestDevConfigOpenBaoAdminAdmitsOperatorTunnelCallback(t *testing.T) {
cfg, err := config.Load(filepath.Join("..", "..", "..", "config", "dev-config.yaml"))
if err != nil {
t.Fatalf("load dev config: %v", err)
}
if errs := config.ValidateConfig(cfg); len(errs) != 0 {
t.Fatalf("dev config must validate: %v", errs)
}
const callback = "http://127.0.0.1:18200/ui/vault/auth/netkingdom/oidc/callback"
for _, client := range cfg.Clients {
if client.ClientID != "openbao-admin" {
continue
}
for _, redirectURI := range client.RedirectURIs {
if redirectURI == callback {
return
}
}
t.Fatalf("openbao-admin redirectUris missing exact operator tunnel callback %q", callback)
}
t.Fatal("dev config missing openbao-admin client")
}
// --------------------------------------------------------------------------- // ---------------------------------------------------------------------------
// Env var loading test // Env var loading test
// --------------------------------------------------------------------------- // ---------------------------------------------------------------------------

View file

@ -0,0 +1,29 @@
---
id: ADHOC-2026-08-23
type: workplan
title: "Ad hoc KeyCape maintenance — 2026-08-23"
domain: infotech
repo: key-cape
status: finished
owner: codex
topic_slug: netkingdom
created: "2026-08-23"
updated: "2026-08-23"
---
# Ad hoc KeyCape maintenance — 2026-08-23
## Admit the operator-tunneled OpenBao callback
```task
id: ADHOC-2026-08-23-T01
status: done
priority: high
```
Added the exact operator-only callback
`http://127.0.0.1:18200/ui/vault/auth/netkingdom/oidc/callback` to the
source-owned `openbao-admin` static client in `config/dev-config.yaml`. The
registration retains exact-match redirects and does not authorize a login,
change the OpenBao role, broaden a listener, or handle a credential. A config
test pins the exact URI and proves the complete source config validates.