Five Years to Launch: The Sign-in Service Story

How we built VA.gov's OAuth 2.0 authentication service, progressively improved it over four years, and finally reached 100% rollout to serve all Veterans nationwide.

Read time is about 26 minutes

Alexander Garcia is an effective JavaScript Engineer who crafts stunning web experiences.

Alexander Garcia is a meticulous Web Architect who creates scalable, maintainable web solutions.

Alexander Garcia is a passionate Software Consultant who develops extendable, fault-tolerant code.

Alexander Garcia is a detail-oriented Web Developer who builds user-friendly websites.

Alexander Garcia is a passionate Lead Software Engineer who builds user-friendly experiences.

Alexander Garcia is a trailblazing UI Engineer who develops pixel-perfect code and design.

Today, December 15th, 2025, we reached 100% rollout of Sign-in Service (SiS). After four years of progressive development, security hardening, stakeholder alignment, and incremental rollouts, VA.gov now has a modern OAuth 2.0 authentication service serving all Veterans and their families. This is the story of how we got here.

What is Sign-in Service?

Sign-in Service is VA.gov's OAuth 2.0 authentication broker that sits between client applications and credential providers (ID.me and Login.gov). Instead of every VA application implementing their own authentication flows, they integrate with SiS once and get access to all credential providers through a standardized OAuth 2.0 interface.

Think of it as the authentication backbone for the entire VA digital ecosystem.

The Problem We Solved

When I joined the OCTO Identity team in August 2020, VA.gov's authentication landscape was fragmented:

  • Legacy SAML infrastructure: All authentication used SAML, a complex and aging protocol with fragmented Single Sign-On (SSO) capabilities
  • Application complexity: Each shared application had to implement their own SSO flows
  • Limited flexibility: Creating new features or troubleshooting existing ones could take weeks or months
  • Poor developer experience: SAML is complex, error-prone, and difficult to debug
  • Mobile challenges: The VA Health and Benefits mobile app needed seamless WebView SSO, which SAML made incredibly difficult

We needed a modern authentication service that could:

  • Support OAuth 2.0 with PKCE for mobile and web applications
  • Provide a unified interface to all credential providers
  • Meet NIST 800-63B compliance requirements (AAL1, AAL2)
  • Scale to 200+ million annual authentications

2021: Building Out of Necessity

Sign-in Service wasn't born from a grand architectural plan. It was born from necessity.

The Login.gov Crisis

In 2021, we were asked to launch Login.gov as a new credential provider on VA.gov. Login.gov is a government-wide authentication service with strong security credentials and better user experience than legacy options.

We approached the Authenticate Broker team about integrating Login.gov. Their response? "It'll take at least a month."

A month. For one credential provider integration.

This highlighted a fundamental problem: we couldn't move fast because we were dependent on a legacy system and a separate team's bandwidth.

Evaluating Alternatives

We explored commercial identity integrations:

  • Okta: Full-featured, FedRAMP approved, but cost-prohibitive for government scale
  • Auth0: Not FedRAMP approved yet, recently purchased by Okta - same cost-prohibitive features
  • AWS Cognito: Good AWS integration, not yet FedRAMP approved and vendor lock-in concerns

The math was simple: at 200+ million annual authentications, commercial platforms would cost the VA astronomical amounts each year.

Building Our Own

We made a decision: Use the experts on our team to build our own OAuth 2.0 authentication broker.

This gave us:

  • Speed: We could integrate new credentials within days, not months
  • Control: No dependency on external teams or vendors
  • Cost: Infrastructure costs only, no per-authentication pricing
  • Flexibility: We could add features and bring systems closer to VA

Core OAuth 2.0 Implementation

We built Sign-in Service to support the full OAuth 2.0 Authorization Code flow with PKCE:

  • /authorize endpoint for initiating authentication
  • /token endpoint for exchanging authorization codes for access tokens
  • /refresh endpoint for refreshing expired tokens
  • /introspect endpoint for validating tokens
  • /revoke endpoint for explicit session termination

Hand-Writing the Client SDK

Most existing OAuth libraries were not flexible enough to handle multiple authentication brokering systems at the same time. Also the fact that we were locked to Node v14.16.3 also ensure that writing an OAuth 2.0 client-side SDK from scratch was the only approach. We had to ensure all of the following features were created to meet RFC guidelines including:

  • Cryptographic utilities
  • Custom session management (CSRF attack-proof, automatic token refresh, short-lived access tokens)
  • Security hardening (Strict redirect URI validation, HttpOnly & anti-CSRF cookies)

Success: Login.gov Launches

We built Sign-in Service and launched Login.gov in 2021. The integration took days, not months. More importantly, we now had a modern authentication platform we controlled and we could create additional logging to find performance gaps.

2022-2023: Scaling and Migration

With Sign-in Service proven out with Login.gov, we focused on scaling it across the VA ecosystem.

Unified Sign-in Page

We built a unified sign-in page that serves as an intermediary for other VA applications:

  • VA.gov
  • My HealtheVet
  • eBenefits
  • VA Health and Benefits mobile app
  • Dozens of internal tools and systems

The sign-in page presents configuration-based credential providers and handles the authentication flow based on the application. Client applications never have to implement authentication logic themselves they just redirect to our sign-in page and authenticate.

This was transformative. Instead of 20 different sign-in experiences, Veterans now see a consistent, polished authentication flow regardless of which VA service they're using.

Mobile App Migration: SAML to OAuth

The VA Health and Benefits mobile app was one of our most challenging and rewarding integrations.

The SAML Problem: Mobile apps and SAML are a terrible combination. SAML relies on browser redirects and cookies, which work poorly in native mobile apps. The mobile team had built workarounds, but they were fragile, complicated and didn't always work as intended leaving many Veterans frustrated.

The OAuth Solution: OAuth 2.0 with PKCE was designed for mobile apps. Create a new configuration and point the VA Health and Benefits app to our Unified Sign-in page that supports:

  1. Native OAuth flow: The mobile team integrated into OAuth in one week. From implementation, to QA, to production!
  2. Auto SSO for WebViews: Users authenticated in the native app are automatically signed in when opening WebViews to VA.gov content
  3. Token sharing between native and web: We built a secure bridge to share access tokens between the native app and WebView

The migration took exactly one week of coordination, but the results were worth it:

  • Faster authentication flows
  • Fewer error states
  • Seamless transition between native and web experiences
  • Better security posture

Veterans could now sign in once and have that session work across both the native mobile app and embedded web content. This is the kind of seamless experience users expect, but it's incredibly hard to achieve especially in government systems.

Security Audits & Hardening

Our Lead Engineer was a Cyber security Expert so we went not only conducted multiple security audits, but also used secure coding best practices by default:

  • OAuth flow analysis
  • NIST 800-63B compliance verification
  • Session management reviews
  • CSRF and XSS vulnerability assessments

Every audit resulted in improvements:

  • Strengthened PKCE validation by having anti-CSRF cookies, state validation, and disallowing implicit flows
  • Added rate limiting to prevent token endpoint abuse
  • Created short-lived access tokens to mitigate token theft
  • Implemented strict CORS policies
  • Enhanced logging for security monitoring via Datadog

2024: Enterprise Features and Approval

By 2024, Sign-in Service was handling millions of authentications. We focused on enterprise features and getting official approval.

Onboarding More Clients

We systematically onboarded more VA applications to the Unified Sign-in Page. Each integration followed the same pattern:

  1. Application team registers their OAuth client with Sign-in Service
  2. They receive a client_id and our team configured their redirect URIs
  3. They integrate our their application to point to our Unified Sign-in Page
  4. Veterans using that application now get the unified sign-in experience

Secure Token Service (STS)

Not all VA systems have user interfaces. We have backend services, APIs, batch jobs, and automated systems that need to authenticate with each other.

We built Secure Token Service (STS) for machine-to-machine authentication using Sign-in Service:

  • OAuth 2.0 Client Credentials flow
  • Private Key JWT for authentication
  • Short-lived access tokens for service-to-service calls
  • Token introspection for validation

This allowed systems without UIs to securely authenticate and access protected resources. Previously, these systems used shared secrets or API keys that were difficult to rotate and manage. Now they use standard OAuth flows with automatic token rotation and secure public/private key certificates. Zero-trust baked right in.

The ADR Process

Government systems require Architecture Decision Records (ADRs) for major technical changes. Our ADR needed to document:

The ADR went through multiple review cycles with:

  • Security teams
  • Architecture review boards
  • Product leadership
  • Engineering leadership
  • Compliance officers

Each review brought new questions, requests for clarification, and sometimes pushback. Government moves slowly by design there's a lot of risk when you're serving Veterans.

The Breakthrough

The breakthrough came when we reframed the conversation. Instead of "replacing SAML with OAuth," we emphasized:

Veteran benefits:

  • Faster sign-in experience (VA Mobile app had been using Sign-in Service for years)
  • More reliable authentication
  • Veterans encounter fewer errors

Risk mitigation:

  • We've been running both systems in parallel for years
  • Millions of successful authentications already
  • Comprehensive monitoring and synthentic tests detects issues immediately
  • Rollback plan takes seconds to execute via feature toggles

Future capabilities:

  • Better support for emerging standards (WebAuthn, passkeys)
  • Platform for identity verification improvements

The ADR was approved in mid-2025.

This was a massive milestone. We now had official executive buy-in to make Sign-in Service the primary authentication brokering platform for VA.gov.

2025: The Launch Year

With ADR approval in hand, 2025 became the year we fully transitioned to Sign-in Service.

March 2025: My HealtheVet Credential Removal

My HealtheVet (MHV) was one of the legacy credentials on VA.gov. It was username/password based and modern security features like multi-factor authentication (MFA) were tied to other IdPs

In March 2025, we removed the My HealtheVet credential. Veterans who previously used MHV credentials were migrated to Login.gov or ID.me, both of which offer stronger security.

This was the first major legacy credential removal a signal that we were serious about modernizing VA authentication.

July 2025: The Oracle Health Challenge

On July 23rd, 2025, we hit an unexpected roadblock: Oracle Health (formerly Cerner).

The Problem: Oracle Health's integration with VA systems only worked through the SAML-based authentication broker. The Oracle Health team made every effort to migrate from SAML to OAuth but time was ticking to migrate to the modern authentication brokering system.

The Dilemma: We wanted to roll out Sign-in Service to everyone, but Oracle Health users wouldn't be able to access health services. We couldn't strand a subset of Veterans who relied on the VA.

The Solution: The creation of an authentication broker cookie selector system.

Together with my team, I created a cookie-based authentication broker selector that intelligently routes users to the correct authentication broker based on the reading of a cookie. It works by the user authenticating via SAML the first time and we create a long-lived cookie based on if they are an Oracle Health user or not.

This selector allowed us to:

  • Route Oracle Health users to SAML (their only option)
  • Route everyone else to OAuth 2.0 (the modern path)
  • Maintain backward compatibility with existing sessions
  • Provide a graceful migration path

It's not the most elegant solution architecturally, but it was the right pragmatic choice. We could move forward with Sign-in Service rollout without leaving a subset of Veterans stranded.

December 2025: DS Logon Removal

On December 1st, 2025, we removed the DS Logon credential another legacy username/password credential which was owned and operated by the Department of Defense.

Veterans who used DS Logon were migrated to Login.gov or ID.me. This was another step toward a fully modernized authentication landscape.

Now, VA.gov supports only two modern credential providers:

  • Login.gov: Government-wide authentication service
  • ID.me: Commercial identity-verification service with strong fraud detection

Both support modern security features: multi-factor authentication, phishing-resistant authenticators, and compliance with NIST 800-63B AAL2.

December 15, 2025: 100% Rollout

Today we reached 100% rollout of Sign-in Service.

We didn't flip a switch and go from 0 to 100%. We progressively rolled this feature out to Veterans:

  • 20%: Monitor metrics, watch for errors, validate performance
  • 50%: Confidence building, more data, ensure scaling works appropriately
  • 75%: Almost there, fine-tune monitoring, prepare for full rollout
  • 100%: Official launch all Veterans now authenticate through Sign-in Service

This progressive rollout strategy is critical in government systems. You can't afford to break authentication for millions of users. Each percentage increase gave us data, confidence, and the ability to catch issues before they became catastrophic.

By the Numbers

  • 200+ million authentications processed through code I wrote
  • Dozens integrated with Sign-in Service
  • 2 credential providers currently supported (ID.me, Login.gov)
  • 6.9+ million users authenticated through our systems
  • 4+ years from initial development to 100% rollout
  • 2 legacy credentials removed (My HealtheVet and DS Logon)

Lessons Learned

Building a government-scale authentication system taught me lessons you can't learn anywhere else:

  1. Build out of necessity, not perfection

    Sometimes the best architecture emerges from solving real problems, not upfront designs

  2. Progressive rollouts are useful tools

    In high-visibility systems, slow and steady wins the race

  3. Choose pragmatic solutions over perfect ones

    Perfect architecture is the enemy of shipping. Choose the pragmatic solution that moves you forward.

  4. Security MUST be baked in, not bolted on

    Security isn't a check list. It's a mindset that should inform every architectural decision.

  5. Make advancements through stakeholder alignment and incremental wins

    Use government consensus-building to compound targeted progress over time

What's Next?

Never think of a launch as the time to wrap a bow on it. Although Sign-in Service is 100% rolled out to Veterans, it is by no means the end. Instead look at it as a new chapter to create robust, scalable, and useful features for Veterans. Although I'm no longer on the OCTO Identity team I foresee near-term improvements and future capabilities to push the needle forward:

  • Use Sign-in Service across all Veteran-facing tools and services (eg SAML deprecation)
  • Enhanced monitoring for better visibility
  • Self-service client onboarding
  • WebAuthn, passkey, and passwordless integrations
  • Adaptive risk-based authorizations

Reflections

Looking back on five years on the OCTO Identity team at VA.gov, Sign-in Service represents some of my proudest work. Not because it was technically complex (though it was), but because it made a lasting impact to Veterans like myself.

All of these things were enabled by what the OCTO Identity team and myself created. Authentication that "just works"

  • 200+ million authentications.
  • Veterans accessing healthcare, benefits, education resources.
  • Mobile users with seamless experiences.
  • Developers shipping features faster

That's what makes government tech rewarding: the impact at scale.

The Team

This work wasn't done alone. The OCTO Identity team includes brilliant engineers, product managers, designers, and security experts who all contributed to Sign-in Service's success. We stood on each other's shoulders. Not to mention a special thanks to our VA stakeholders who championed this work through years of bureaucracy.

And thanks to the Veterans who trust us with their authentication every single day.

About Sign-in Service

Architecture: OAuth 2.0 with PKCE
Credential Providers: ID.me, Login.gov
Client Applications: VA.gov, VA Health & Mobile app, other internal tools
Compliance: NIST 800-63B (AAL1, AAL2)
Scale: 200M+ authentications, 6.9M+ users
Status: 100% rollout as of December 15, 2025

About the Author

Alexander Garcia served as Lead Frontend Engineer on the OCTO Identity team at VA.gov from August 2020 to October 2025, where he architected Sign-in Service and built authentication infrastructure serving 200M+ authentications for Veterans and their families. He hand-wrote OAuth 2.0 implementations, created custom cryptographic libraries, and helped launch modern credential providers across the VA digital ecosystem.

Connect: GitHub | LinkedIn

Hopefully some of you found that useful. Cheers! 🎉