From a6d6681bc90a4d6f8030bab48bf04081592eb350 Mon Sep 17 00:00:00 2001 From: unkin-agent Date: Mon, 7 Sep 2026 13:59:45 +1000 Subject: [PATCH 1/2] Onboard the artifactapi web UI to Authentik OIDC Add the OAuth2/OIDC provider + application and the akP-artifactapi-admin permission group gating it, nested under akR-global-admin. --- config/permissions/akP-artifactapi-admin.yaml | 3 +++ config/providers_oauth2/artifactapi.yaml | 23 +++++++++++++++++++ config/roles/akR-global-admin.yaml | 1 + 3 files changed, 27 insertions(+) create mode 100644 config/permissions/akP-artifactapi-admin.yaml create mode 100644 config/providers_oauth2/artifactapi.yaml diff --git a/config/permissions/akP-artifactapi-admin.yaml b/config/permissions/akP-artifactapi-admin.yaml new file mode 100644 index 0000000..e9cf59f --- /dev/null +++ b/config/permissions/akP-artifactapi-admin.yaml @@ -0,0 +1,3 @@ +# Permission group akP-artifactapi-admin (name = filename). Grants admin +# access to artifactapi: bound to the artifactapi application, gating the web UI. +application: artifactapi diff --git a/config/providers_oauth2/artifactapi.yaml b/config/providers_oauth2/artifactapi.yaml new file mode 100644 index 0000000..47e6414 --- /dev/null +++ b/config/providers_oauth2/artifactapi.yaml @@ -0,0 +1,23 @@ +# OAuth2/OIDC provider + application for the artifactapi web UI +# (https://artifactapi.k8s.syd1.au.unkin.net/ui in the artifactapi namespace). +# An oauth2-proxy fronts ONLY /ui and /oauth2; access is gated on the user's +# hierarchical ak_groups claim (akP-artifactapi-admin). The package-manager +# surfaces (/api/v1, /api/v2, /v2, /terraform, /.well-known) are NOT behind this +# provider -- yum, containerd, docker, terraform and CI cannot do a browser flow. +# client_secret is read from Vault (seeded out of band), never committed. +name: artifactapi +authorization_flow: default-provider-authorization-implicit-consent +invalidation_flow: default-provider-invalidation-flow +client_type: confidential +client_id: artifactapi +launch_url: https://artifactapi.k8s.syd1.au.unkin.net/ui/ +client_secret_vault: + mount: kv + path: kubernetes/namespace/artifactapi/default/oauth-credentials +scope_mappings: + - goauthentik.io/providers/oauth2/scope-openid + - goauthentik.io/providers/oauth2/scope-email + - goauthentik.io/providers/oauth2/scope-profile +redirect_uris: + - matching_mode: strict + url: https://artifactapi.k8s.syd1.au.unkin.net/oauth2/callback diff --git a/config/roles/akR-global-admin.yaml b/config/roles/akR-global-admin.yaml index 8e0d2b6..9b63191 100644 --- a/config/roles/akR-global-admin.yaml +++ b/config/roles/akR-global-admin.yaml @@ -10,6 +10,7 @@ permissions: - akP-watchstate-admin - akP-repospawner-admin - akP-vault-admin + - akP-artifactapi-admin # arrstack has no admin tier (it is a proxy front door); grant global admins # the front door plus every per-app entitlement so they reach all media apps. - akP-arrstack-user -- 2.47.3 From 0d17dc2cf1eccdeb724465afb53d83a4b3b694fc Mon Sep 17 00:00:00 2001 From: unkin-agent Date: Mon, 7 Sep 2026 17:44:02 +1000 Subject: [PATCH 2/2] Retrigger plan after credential seed -- 2.47.3