History of SSO
Single sign-onSigning in once and then using several applications without entering credentials again, usually because they all rely on the same identity provider. grew out of changing needs: sharing a computer, using network services, managing organizational accounts and connecting websites. Following those problems explains why several generations of identity technology still work together.
The 1980s: taking a sign-in across a network
Then the work spread across a network. A person needed several services, and sending a reusable password to each one created more places where it could be exposed.
Kerberos, developed through MIT's Project Athena, introduced a trusted authentication service and tickets for accessing network services. A user could authenticate and obtain a ticket for a particular service, which could check that ticket under the protocolAn agreed set of rules for the messages two systems exchange and what each message means. HTTP, OAuth 2.0, OpenID Connect and SAML are all protocols.'s rules.
The useful change was where trust lived. Each service could rely on the authentication infrastructure instead of collecting the user's password for every interaction.
The 1990s and early 2000s: signing in to an organization
Organizations also needed a shared place to manage employees and their access. A directory could hold accounts and group membership, while authentication mechanisms let computers and services use that organizational identity.
Windows domain environments brought these pieces into everyday workplace sign-in. A Windows domain is a group of computers and accounts managed together, a different meaning of domain from a DNSThe Domain Name System, the internet's lookup service that turns a domain such as photos.example into the address of the computer serving it. Whoever controls a name's DNS records controls where that name points. name. Kerberos became the default domain authentication protocol with Windows 2000, alongside the continuing presence of older mechanisms such as NTLM, an earlier Windows protocol in which a computer proved it knew a password by answering a challenge.
The convenience depended on administration as well as cryptography. Someone still had to create accounts, assign suitable access, and remove it when employees left.
A group of computers and accounts managed together
- Directory
- Accounts and group membership
- Authentication
- Kerberos, the default with Windows 2000
- Older mechanisms
- Such as NTLM
Computers and services use that organizational identity.
Someone still had to
- Join: create accounts
- Change jobs: assign suitable access
- Leave: remove it when employees left
The convenience depended on administration as well as cryptography.
The early 2000s: bringing SSO to websites
Web applications introduced another boundary. Each application had its own HTTPThe Hypertext Transfer Protocol, the rules browsers, apps, and servers use to send requests and responses on the web. requests, cookies, and sessions. Signing in to one site did not automatically sign a browser in to another.
Systems such as Yale's Central Authentication Service, or CAS, used browser redirects to a central sign-in service. An application received a ticket, validated it with that service, and established its own sessionThe ongoing connection between later requests and an earlier sign-in, so you are not asked for your password on every click. It is often tracked with a cookie holding an unpredictable session identifier..
The central session could spare a person another password prompt. The application session still belonged to the application. That distinction explains why single sign-on and signing out everywhere have always been different problems.
The 2000s: federation across organizational boundaries
Next, an application needed to trust accounts managed by another organization. The participants needed an agreed format for the sign-in result and rules for exchanging and validating it.
SAML standardized assertions and the exchanges around them, with SAML 2.0 arriving in 2005. Shibboleth, software that universities built to share sign-in with each other, and the work of the Liberty Alliance, an industry group, helped shape federated access across organizational boundaries. WS-Federation, a federation standard led by Microsoft and IBM, developed in the related web-services ecosystem.
Before two organizations could federate, they had to exchange metadata: documents in which each side published its identifier, the addresses that receive its messages, and the certificateA signed statement that a public key belongs to a name, such as a website's hostname, for stated purposes and a limited period. A certificate authority signs it, so software that trusts the authority can connect the key to the name. for checking its signatures. Each side configured its trust from the other's metadata.
Early OpenID pursued another approach to using an identity across websites. It is part of this history, but OpenID 2.0 and OpenID ConnectAn identity layer on top of OAuth 2.0 that lets an application sign people in with an account at another service. It adds the ID token, standard claims, and discovery to the OAuth exchange. are different protocols. A similar name does not make their messages interchangeable.
The late 2000s and 2010s: identity and access on the wider web
Applications also began asking to act on a person's behalf. A photo printer needed photos; a calendar tool needed events. Sharing the user's password gave those applications too much access and made it hard to withdraw one connection.
OAuthA framework that lets a person give an application limited access to their resources at another service, using tokens instead of sharing their password. OAuth is about access; OpenID Connect adds sign-in. addressed delegated accessLetting an application do a limited task with someone else's authority, such as a printing service reading your photos, without giving it your password. OAuth 2.0 is the usual framework for arranging it.. OAuth 2.0 was published in 2012, and OpenID Connect followed in 2014 with a standardized authentication layer on top. Applications could request access tokens for APIs and, when using OpenID Connect, receive an ID tokenIn OpenID Connect, a signed JWT from the provider, addressed to one client, saying which account authenticated, when, and in answer to which request. It reports a sign-in and is not used to call APIs. for the sign-in result.
This is why a modern sign-in can contain both kinds of tokenA piece of data issued by a trusted service that a client presents as a credential, for example to call an API or to report a sign-in. Some tokens carry readable claims; others are random strings that only the issuer can interpret. without giving them the same purpose. One supports an APIAn application programming interface: a defined way for software to interact with a service. A web API offers endpoints where other programs send HTTP requests. request; the other reports authentication to the client.
Sharing the user's password gave those applications too much access and made it hard to withdraw one connection.
OAuth 2.0
- Published
- 2012
- Addressed
- Delegated access
- Token
- Access token
- Purpose
- Supports an API request
OpenID Connect
- Published
- 2014
- Addressed
- A standardized authentication layer on top
- Token
- ID token
- Purpose
- Reports authentication to the client
The 2010s and 2020s: strengthening the sign-in itself
Centralizing sign-in makes authentication especially consequential. A stolen password at a central provider can affect several connected applications, so services added stronger methods and additional factors.
WebAuthn brought public-key authentication into the web platform. Passkeys made this approach more familiar to users: an authenticator proves possession of a private key, and the credential is bound to the relying party rather than typed into any page that asks for it. Here the relying party is the website the passkey was created for, which is why a look-alike site can't use it.
A stronger authentication method changes the evidence used at sign-in. It does not remove the need to validate federation messages, enforce permissions, manage sessions, or provide careful account recovery.
Password at the identity provider
- Evidence at sign-in
- A password typed into a page
- Look-alike site
- Receives what is typed into it
- Results to apps
- SAML or OpenID Connect results
Passkey at the identity provider
- Evidence at sign-in
- An authenticator proves possession of a private key
- Look-alike site
- Can't use it: bound to the relying party
- Results to apps
- SAML or OpenID Connect results
A stronger method does not remove the need to validate federation messages, enforce permissions, manage sessions, or provide careful account recovery.
Today: several generations working together
These approaches coexist. An organization may use Kerberos for parts of its internal network, SAML for one application, OpenID Connect for another, and passkeys at its identity provider. Choosing one does not erase every other system it needs to work with.
Read a sign-in by following its boundaries: where did the person authenticate, what evidence reached the application, what did the recipient check, and which session or permission now lets the next request succeed?
Those questions let you read an unfamiliar system without starting from its product name. First find the account and the evidence, then follow how the next participant decides to trust them.
Check your understanding
Try these questions before moving on. If an answer isn't right, use the feedback and try again.
Try it in the Lab
- Find the older ideas inside a modern sign-inFollow a password sign-in into a code exchange, then find SAML and passkeys beside it and see why the shared provider matters.