OpenID 2.0 explained: the original decentralised login
OpenID 1.x and 2.0 let you log in to websites with a URL you controlled. How discovery, delegation and providers worked, and why OpenID Connect replaced them.
StandardsPublished
OpenID 2.0 was an open standard that let you use one web address as your identity on many websites. Instead of creating a username and password for each site, you typed a URL you controlled, such as alice.example.org, and the site asked the service behind that URL to confirm that you really were its owner. It was finalised in December 2007 and has since been replaced by OpenID Connect.
What was OpenID?
OpenID started in 2005 as a way to prove ownership of a blog address, created by a developer working on the LiveJournal blogging service. The idea was simple and radical: identity should not belong to one company. Anyone could run a provider, anyone could accept logins, and users could choose their provider freely, or even run their own.
This is the sense in which OpenID was decentralised: there was no central registry and no prior agreement between a website and a provider. The specification text is archived on the OpenID Foundation site.
How did OpenID 2.0 work?
Three roles were involved: the user, the OpenID Provider (OP) that authenticates the user, and the Relying Party (RP), the website that wants a login. Our page on the relying party follows the term from here to the present day.
- Enter the identifier. The user types an OpenID, a URL or an XRI, on the website’s login form.
- Discovery. The relying party fetches that URL and finds out which provider is responsible. OpenID 2.0 used the Yadis protocol and XRDS documents, with a fallback to
<link>tags in the page’s HTML. The result is the provider’s endpoint address. - Association (optional). The relying party and provider can agree on a shared secret using Diffie-Hellman key exchange. Without it, the relying party later asks the provider to verify the response (‘stateless’ or ‘dumb’ mode).
- Redirect. The browser is sent to the provider with an authentication request carrying
openid.*parameters. - Authentication. The provider logs the user in, with a password or other means, and asks for permission to share the identity with that site.
- Response. The provider redirects back with a signed assertion, again as URL parameters.
- Verification. The relying party checks the signature, the nonce and that the provider was authoritative for the identifier.
Delegation
Delegation let you keep a personal URL while using a third-party provider. On your own page you placed two HTML links, in OpenID 1.x openid.server and openid.delegate, and in 2.0 openid2.provider and openid2.local_id. Relying parties followed them to your provider. If you later changed provider, your OpenID stayed the same.
Identifier Select
OpenID 2.0 also introduced identifier select: the user types only the provider’s address, for example a large web company, and the provider fills in the user’s actual identifier. This made login friendlier, but changed the identity model: the user no longer controlled the URL.
Extensions
Core OpenID only said that you control an identifier. Extensions such as Simple Registration and Attribute Exchange transported profile data like name and email. Their use varied between providers, which later hurt interoperability.
Why was it replaced?
- Usability. Typing a URL as a username confused ordinary users. Buttons for major providers were easier, but that undermined the open idea.
- Phishing. A malicious relying party could redirect users to a fake provider page that looked real.
- Complexity. Discovery, association, extensions and the XRDS format were heavy for developers.
- No mobile and API story. OpenID gave websites a login but no standard way to access user data through APIs. OAuth filled this gap, and developers began to combine them.
- Competition. Proprietary social logins offered simpler flows and reached huge user bases.
OpenID Connect, finalised in February 2014, kept the goal and dropped the design. It builds on OAuth 2.0, uses JSON and signed tokens, and gives relying parties standard claims. The history pages Why OpenID faded, From OpenID to OpenID Connect and the OpenID timeline tell the story in detail.
Shutdowns and what remains
Google announced on 21 April 2015 that support for OpenID 2.0, along with several other older authentication methods, had ended and told developers to migrate to OpenID Connect or OAuth 2.0. Stack Exchange removed OpenID login on 25 July 2018, citing very low use. Some services still accept OpenID 2.0 today, with Steam as the most visible example in the gaming world.
Treat any remaining OpenID 2.0 endpoint with caution: libraries are often unmaintained, and the protocol lacks modern protections.
Examples
- Personal URL login. A blogger used their own site as an OpenID and delegated to a provider, so comments on other blogs showed their site.
- Provider login. A user clicked a button for a large provider, and the relying party used identifier select to receive a per-site identifier.
- Steam web login. Third-party sites let you sign in with a Steam account through OpenID 2.0 and receive a Steam ID in return.
Security notes for anyone who still meets it
- Verify the
openid.return_to, nonce and signed fields; replay and tampering attacks were common implementation bugs. - Do not trust unsigned attributes.
- Prefer HTTPS everywhere; early deployments used plain HTTP.
- Plan a migration to OpenID Connect, or to passkeys for user-facing logins.
How does it fit into today’s landscape?
Today’s alternatives are described on the EUDI Wallet overview. The core idea of OpenID, that people should choose who vouches for them and carry that choice between services, has returned in a different form in the wallet model, where you hold the credentials yourself.
Status in October 2026
OpenID 2.0 is a legacy standard that is not maintained for new use. The OpenID Foundation focuses on OpenID Connect and newer work such as OpenID for Verifiable Credentials. We are an independent guide and are not affiliated with the OpenID Foundation.
Frequently asked questions
Is OpenID 2.0 still used?
Rarely. Large providers such as Google and Stack Exchange have switched it off, and the specifications are considered legacy. A few services, notably Steam's web login, still use OpenID 2.0, which is why libraries for it still exist.
Is OpenID the same as OpenID Connect?
No. They share a name and a goal, but OpenID Connect is a different protocol built on OAuth 2.0 with JSON tokens. OpenID 2.0 used URL identifiers and its own message format and is not compatible with OpenID Connect.
Why did OpenID 2.0 fail to become mainstream?
Typing a URL as a login was confusing for ordinary users, providers and websites rarely agreed on attributes, phishing risks were real, and developers found the protocol complex. Social logins from large platforms were simpler, and OAuth took over for API access.
Can I use an OpenID 2.0 identifier to log in somewhere today?
Only on the few sites that still support it, and you need an identity provider that is still online. For everyday logins, use passkeys, a password manager, or the login methods each service offers.
More in Standards
Decentralized identifiers (DIDs): what they are and do
A DID is a W3C identifier you control without a central registry. How DID documents work, how they relate to credentials, and their role in the EUDI Wallet.
FIDO2 and WebAuthn explained: the standards behind passkeys
FIDO2 combines WebAuthn and CTAP to replace passwords with phishing-resistant key pairs. How login works, what WebAuthn Level 3 adds and its EU wallet link.
Identity federation explained: one login, many services
Identity federation lets one trusted provider vouch for you across many services. How it works, the standards it uses, and how the EUDI Wallet changes it.
mdoc and ISO 18013-5: how mobile IDs work
mdoc is the ISO format behind mobile driving licences and one of two EUDI Wallet formats. How ISO 18013-5 and 18013-7 work, and what stays private.
OpenID4VCI explained: how credentials get into a wallet
OpenID for Verifiable Credential Issuance (OpenID4VCI) 1.0 brings credentials from issuers into a wallet. Roles, flow, security and its place in the EU wallet.
OpenID4VP explained: how a wallet presents credentials
OpenID for Verifiable Presentations (OpenID4VP) 1.0 is the protocol a wallet uses to show credentials to a service. Flow, roles, security and EU wallet role.