Protocol practice · Federation & Identity Standards

OpenID Connect: sign-in, and the ID token that proves it

Objective: Lumen Notes adds “Sign in with Harbor”. Get an ID token for Rui, check every part of it before you believe it, and find out who they really are.

About 10 minutes · simulated, no real servers
  1. 1Ask for sign-in
  2. 2Read the response
  3. 3Check token A
  4. 4Accept token B
  5. 5Keys
Where OpenID Connect fits
Sign-inWho is this?
AccessWhat may this app do?
AccountsDoes the account exist?
Not sure? Which protocol?

OpenID Connect at work, every day

Each of these signs someone in with an account they already have.

  • “Sign in with your work account”A web app trusts the company’s provider instead of keeping passwords.
  • A mobile app’s sign-inThrough the phone’s browser, so the app never handles the password.
  • One sign-in across internal toolsEach tool checks the same provider’s ID tokens.

Step 1 of 5

Ask for sign-in, not just access

OpenID Connect is OAuth with one addition: an ID token that says who signed in. Your app sends the browser to Harbor’s OpenID provider, and three values decide what comes back.

GET https://id.harbor.example/authorize
?response_type=______
&client_id=lumen-notes
&redirect_uri=https://notes.example/callback
&scope=______
&state=af0ifjsldkj
&nonce=______
&code_challenge=E9Melhoa2OwvFrEMTJguCHaoeK1t8URWbuGJSstw-cM&code_challenge_method=S256

Fill in the three blanks, then send the user.

scope: what makes this sign-in
response_type
nonce: what ties the ID token to this sign-in
Pick an answer for each blank to continue.