Custom OIDC intermediary binding device certificates to identity provider auth flows — enforcing Zero Trust access to internal services without adding friction to the developer experience.
Aurora's Okta SSO authenticated the user — but had no mechanism to verify which device was authenticating, whether it was managed, or whether it met current health requirements. A valid credential on an unmanaged or compromised machine passed the same check as a healthy enrolled device.
Internal CLI tooling compounded the problem. Browser-based OAuth flows are clunky in a terminal context, and most alternatives traded security for convenience. Tokens delivered over the network without transport-layer binding created a portable exfiltration surface.
The goal: authenticate the user and the machine simultaneously, cryptographically, without adding friction to the developer experience.
Devices forward their certificate via a standard header. The auth proxy validates the cert and checks that the device meets MDM enrollment and baseline health requirements against a regularly updated posture table. Any failure halts the flow before the identity provider is ever reached.
Users complete a standard OIDC authorization code flow with PKCE through Okta, with WebAuthn enforced for phishing-resistant MFA. The auth proxy manages nonce, state, and PKCE data in a managed NoSQL table for the duration of the session.
After Okta auth, the code is exchanged and the identity validated. For CLI flows, tokens are additionally encrypted and delivered via mTLS — bound to the initiating device, not just bearer-presentable.
The auth proxy was designed and built over four months in early 2024, then rolled out across internal services over the following five months. Phased app onboarding let teams migrate at their own pace while the auth layer matured in production.
The auth proxy was the foundation — but the full Zero Trust picture took longer to close. A device revocation service followed later in 2024, enabling instantaneous certificate revocation. The Device Posture Engine shipped in 2025, enabling continuous compliance monitoring beyond periodic snapshots.
Observability was a first-class requirement from day one — session UUID, client IP, and trace ID threaded through Go context, enabling end-to-end correlation across the auth flow without coupling.
Several technical decisions shaped the final architecture in ways that weren't obvious from the original requirements. Each one traded short-term convenience for long-term correctness.
The most important: choosing a managed NoSQL table. The access pattern for for session state and posture lookups was designed to be fast & atomic from the start — eliminating consistency edge cases that typically surface under load or during partial failure.
A certificate-based trust model is only as strong as its revocation path. The auth proxy deliberately avoids traditional revocation infrastructure — instead, trust is revoked by updating a revocation record the proxy checks on every auth attempt. A device flagged as lost or stolen is blocked immediately without any certificate infrastructure changes.
A dedicated Go service owns this path. Security and IT can revoke any asset directly, and employees can self-report their own device via a self-service portal — no ticket required. Either path produces the same outcome: the auth proxy denies the device before the identity provider is ever reached.
The revocation service also syncs with the IT asset inventory system, so a device marked lost in the inventory is automatically reflected in the revocation store — no manual double-entry.