ELSEIF
Your brief EB
1,996 stories from 225 feeds 1253 clusters Refreshed 3 minutes ago next pull 00:11

INFRA Signal 98

Kubernetes on-prem clusters adopt public OIDC clients with PKCE for identity provider access control

Self-hosted Kubernetes clusters can now use identity providers via public OIDC clients with PKCE, replacing static certificates and long-lived tokens with group-based access control.

WHY IT MATTERS

On-prem Kubernetes clusters often rely on static credentials that are rarely revoked, creating security risks. This change shifts access control to identity providers, aligning on-prem clusters with managed cloud Kubernetes practices. It eliminates manual credential distribution and simplifies revocation.

Written by elseif from the cluster below · every claim links back to a source

The three things worth knowing

01

Public OIDC clients with PKCE replace confidential clients and shared secrets, reducing credential distribution risks.

02

Identity provider integration enables group-based access control, eliminating manual certificate or token management per user.

03

kube-apiserver validates tokens directly against the identity provider, requiring no persistent network access beyond initial key fetching.

THE READ

What the cluster adds up to.

ORIGINAL ANALYSIS

Self-hosted Kubernetes clusters have historically lagged behind managed cloud services in access control. Managed Kubernetes typically ships with IAM or SSO integration, while on-prem clusters default to static client certificates or long-lived tokens. These credentials persist indefinitely, even after role changes or departures, because revocation requires manual cleanup of every distributed copy. This gap creates operational overhead and security vulnerabilities, particularly as teams grow and access requirements diversify.

The shift to identity providers via public OIDC clients addresses these issues by tying access to user accounts and group membership. Instead of distributing certificate files, administrators manage access through identity operations, adding or removing users from groups. This approach eliminates the need for per-user credential distribution and simplifies revocation. The integration relies on three components: kubectl with the kubelogin plugin, an identity provider like Keycloak, and kube-apiserver configured with OIDC flags. kubectl authenticates against the identity provider, then presents the resulting token to kube-apiserver, which validates it and defers to RBAC for access decisions.

The critical configuration choice is using a public OIDC client with PKCE, not a confidential client. Confidential clients require a shared secret, which must be distributed to every machine needing access, undermining its purpose. PKCE mitigates this by ensuring that intercepted authorization codes cannot be redeemed without the original proof key. The client configuration in Keycloak reflects this: client authentication is disabled, PKCE is enforced, and redirect URIs are restricted to loopback addresses. This setup ensures that credentials are ephemeral and tied to individual sessions, not static files.

Deployment involves configuring the identity provider to include group membership in ID tokens and pointing kube-apiserver to the issuer. Kubernetes RBAC binds to usernames and groups asserted by the token, so the identity provider must map group membership to a claim. If the identity provider uses a self-signed certificate, kube-apiserver must be configured to trust it. The result is a system where access control is dynamic, auditable, and aligned with identity management practices, rather than a static credential distribution problem.

Written by elseif from the cluster below · checked for specifics the sources never contained

THE CLUSTER

Same story, 1 feed.

ORDERED BY FIRST SEEN
CNCF Kubernetes access via an identity provider: Public client, not confidential Open ↗