OIDC: Must Know
- Mark Kendall
- Jan 15
- 2 min read
Let’s cut through the fog. OIDC (OpenID Connect) is real, useful, and long overdue in modern cloud platforms. But it’s also being oversold — sometimes dangerously — as a magic wand that “eliminates secrets.” That’s not just wrong; it’s how teams end up rebuilding yesterday’s security problems with today’s buzzwords. Developers and architects deserve the real deal, not another puff of smoke.
What OIDC
Is
OIDC is an identity mechanism for workloads. Full stop.
It answers one question, very well:
“Who is this workload, and can I trust it?”
When implemented correctly with platforms like Amazon Web Services and CI/CD systems such as GitLab, OIDC allows:
Pipelines and pods to authenticate without long-lived AWS access keys
Short-lived, auto-rotated credentials via IAM roles
Fine-grained trust (repo, branch, environment, service account)
This is a huge security win. No more leaked keys in pipelines. No more credential rotation scripts taped together at 2 a.m.
What OIDC
Is Not
OIDC is not a secret store.
OIDC does not eliminate application secrets.
OIDC cannot replace:
Database usernames/passwords
Kafka SASL credentials
OAuth client secrets
Third-party API keys (Salesforce, ServiceNow, Stripe, etc.)
Encryption keys and certificates
OIDC provides identity, not sensitive data. Confusing the two is a category error.
The Correct Mental Model (Tattoo This Somewhere)
OIDC gives you identity.
A secret manager gives you secrets.
You need both.
There is no cloud-native reference architecture — not from AWS, Azure, or Google — where OIDC replaces a secrets manager entirely. None. If someone claims otherwise, ask a simple question:
“Okay — where does the Salesforce client secret live?”
Silence usually follows.
How This Actually Helps at the Application Level
OIDC helps applications indirectly but critically.
Here’s the clean, modern flow:
App (or pipeline) authenticates via OIDC
IAM role is assumed (short-lived credentials)
Role permissions allow read-only access to secrets
App retrieves runtime secrets from a central store
No secrets in:
Git
Helm charts
Docker images
CI/CD variables
Only references and paths live in code.
Where Environments and Secrets Really Belong
Let’s be adults about ownership.
Shared Services should own:
OIDC providers and trust policies
IAM roles and permissions
Secret stores (encryption, rotation, audit)
App teams should own:
Secret names and paths
Application logic to retrieve secrets
Environment-specific configuration (non-secret)
CI/CD should:
Deploy
Assume roles
Never hold production secrets
If this isn’t clear, governance collapses fast.
Why the “OIDC Eliminates Secrets” Narrative Is Dangerous
Because teams hear:
“We don’t need Secrets Manager”
“Just put it in config for now”
“We’ll clean it up later”
That’s how secrets creep back into repos, pipelines, and Kubernetes manifests — with no audit trail, no rotation, and no blast-radius control.
We’ve all seen this movie. It doesn’t end well.
Bottom Line (No Hype, No Drama)
OIDC is excellent.
It’s also not magic.
It removes static infrastructure credentials.
It does not remove the need for application-level secret management.
If we want secure, scalable, auditable systems in 2026, the pattern is clear:
Identity via OIDC
Secrets via a centralized secret store
Clear ownership and change control
That’s not anti-innovation.
That’s grown-up architecture.
Let’s build the real thing — not another smoke machine.
Comments