Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
Introduction to OAuth
Search
Sponsored
·
Your Podcast. Everywhere. Effortlessly.
Share. Educate. Inspire. Entertain. You do you. We'll handle the rest.
→
Alex Bilbie
May 30, 2012
Technology
2.2k
6
Share
Introduction to OAuth
Delivered at the Eduserv Federated Access Management conference 2011 on 9th November 2011
Alex Bilbie
May 30, 2012
More Decks by Alex Bilbie
See All by Alex Bilbie
12 Factor Laravel Apps
alexbilbie
1
620
The Joy of Open Data
alexbilbie
0
200
API Driven Development
alexbilbie
8
5k
Linkey Project
alexbilbie
0
1.6k
Linking You
alexbilbie
2
800
Introduction to HTML5 and CSS3
alexbilbie
3
1.6k
The @lncd toolchain
alexbilbie
2
1.5k
Introduction to MongoDB
alexbilbie
2
370
Other Decks in Technology
See All in Technology
[みん強]AIの価値を最大化するデータ基盤戦略:Self-Service型Data Meshへの転換とAgentic AI Meshに向けた取り組み with Snowflake他
y_matsubara
1
160
はじめてのAI-DLC
yoshidashingo
1
300
Pythonでベイズモデリング
soogie
0
170
Slack MCPでインシデント対応とFAQ生成を加速する:社内ワークショップの実践
lycorptech_jp
PRO
0
110
Fラン学生が考える、AI時代のデザインに執着した突破口
husengs7
1
230
AI全盛の今だからこそ、あえてもう一度振り返るAPIの基礎
smt7174
3
150
AI Agent に“攻略本”を渡したら、150フォームの移行が回り始めた話/登壇資料(高橋 悟生)
hacobu
PRO
1
270
GitHub Copilot CLI の Rubber Duck 機能を使ってコーディングの品質をあげよう #techbaton_findy
stefafafan
0
120
AIコーディングエージェントの活用で、コードは静かに肥大化した
yosukeshinoda
1
140
How to learn AWS Well-Architected with AWS BuilderCards: Security Edition
coosuke
PRO
0
200
障害対応のRunbookは作った、でも本当に動くの? AWS FIS で EKS の AZ 障害を再現してみた
tk3fftk
0
120
Terragrunt x Snowflake + dbt で作るマルチテナントなデータ基盤構築プラットフォーム
gak_t12
0
520
Featured
See All Featured
Introduction to Domain-Driven Design and Collaborative software design
baasie
1
790
The Director’s Chair: Orchestrating AI for Truly Effective Learning
tmiket
1
170
技術選定の審美眼(2025年版) / Understanding the Spiral of Technologies 2025 edition
twada
PRO
118
110k
For a Future-Friendly Web
brad_frost
183
10k
Neural Spatial Audio Processing for Sound Field Analysis and Control
skoyamalab
0
300
Lessons Learnt from Crawling 1000+ Websites
charlesmeaden
PRO
1
1.2k
Darren the Foodie - Storyboard
khoart
PRO
3
3.3k
Measuring & Analyzing Core Web Vitals
bluesmoon
9
830
[SF Ruby Conf 2025] Rails X
palkan
2
1k
What’s in a name? Adding method to the madness
productmarketing
PRO
24
4k
Designing Powerful Visuals for Engaging Learning
tmiket
1
370
Bootstrapping a Software Product
garrettdimon
PRO
307
120k
Transcript
Wednesday, 30 May 12
Alex Bilbie University of Lincoln @alexbilbie Wednesday, 30 May 12
Story time! Wednesday, 30 May 12
I’m a user of a web service Wednesday, 30 May
12
I own resources on the web service Wednesday, 30 May
12
For example, personal details Wednesday, 30 May 12
Wednesday, 30 May 12
These resources1 are stored on a resource server 2 1.
personal details 2. facebook.com Wednesday, 30 May 12
The resource server exposes user resources over an API Wednesday,
30 May 12
I visit a 3rd party web application Wednesday, 30 May
12
The 3rd party web app is called a client Wednesday,
30 May 12
The client1 wants to use my resources2 1. 3rd party
web app 2. personal details Wednesday, 30 May 12
But the resource server’s API requires user authorisation Wednesday, 30
May 12
How? Wednesday, 30 May 12
Give the client my password Wednesday, 30 May 12
Give the client my password Wednesday, 30 May 12
So what then? Wednesday, 30 May 12
OAuth Wednesday, 30 May 12
“An open protocol to allow secure API authorisation in a
simple and standard method from desktop and web applications.” oauth.net Wednesday, 30 May 12
—˛ Wednesday, 30 May 12
User Client Resources Owns Accesses OWNS OWNS S Authorises Wednesday,
30 May 12
The flow Wednesday, 30 May 12
User clicks “sign in” in the client application Wednesday, 30
May 12
Wednesday, 30 May 12
The user is redirected to the resource server and asked
to sign in Wednesday, 30 May 12
Wednesday, 30 May 12
GET /authorise? response_type=code&client_id=12345&redirect_uri= http://client.tld/ redirect&scope=name,email,birthday HTTP/1.1 Host: resource-server.tld Wednesday, 30
May 12
The resource server clearly tells the user the specific data
the client wants to access Wednesday, 30 May 12
Wednesday, 30 May 12
User authorises the application and is redirected back to client
with a authorisation code in the query string Wednesday, 30 May 12
HTTP/1.1 302 Found Location: http://client.tld/redirect?code=78dsf9sudfo9s Wednesday, 30 May 12
Client exchanges the authorisation code for an access token Wednesday,
30 May 12
POST /token HTTP/1.1 Host: resource-server.tld Content-type: application/x-www-form-urlencoded code=78dsf9sudfo9s&client_id=12345&client_secret =12345&redirect_uri=http://client.tld/redirect Wednesday,
30 May 12
HTTP/1.1 200 OK Content-type: application/json { access_token: “aLKJHskjhda8s13jsi9sis”, valid_until: 1320759526
} Wednesday, 30 May 12
The access token can then be used as authorisation by
the client to access the specified resources for a specific length of time Wednesday, 30 May 12
Advantages Wednesday, 30 May 12
No password sharing <- Happy security conscious user Wednesday, 30
May 12
Developers just need to implement a redirect and a POST
request <- Happy developers Wednesday, 30 May 12
Users can revoke access tokens for specific clients Wednesday, 30
May 12
Wednesday, 30 May 12
Nefarious clients can have their credentials revoked and all associated
access tokens destroyed immediately Wednesday, 30 May 12
Wednesday, 30 May 12
Wednesday, 30 May 12
Currently version 1.0a lncn.eu/giy Wednesday, 30 May 12
Version 2.0 is almost finished lncn.eu/bkw Wednesday, 30 May 12
OAuth 2.0 •Simpler •Requires all communication over SSL •New flows
•Better UX Wednesday, 30 May 12
Who’s using OAuth? Wednesday, 30 May 12
Wednesday, 30 May 12
v1.0a and v2.0 v1.0a v1.0a v2.0 (prev v1.0a) v2.0 v2.0
(prev v1.0a) v2.0 (prev v1.0a) v2.0 Wednesday, 30 May 12
And in HE? Wednesday, 30 May 12
Wednesday, 30 May 12
Wednesday, 30 May 12
Wednesday, 30 May 12
data.lincoln.ac.uk people energy location printing events calendars bibliographic documents Wednesday,
30 May 12
Internal and external authorisation Wednesday, 30 May 12
Single Sign-On Wednesday, 30 May 12
Blackboard (SAML) Zendesk (SAML) Get Satisfaction (OAuth) WordPress (OAuth) Exchange
(ADFS) Sharepoint (ADFS) Gmail (SAML) + OAuth clients (internal + external) Wednesday, 30 May 12
Open source 2.0 server lncn.eu/ar6 Wednesday, 30 May 12
Any questions? Wednesday, 30 May 12
Thank you @alexbilbie Wednesday, 30 May 12