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
5minutes_learning_OAuth
Search
maimu
March 25, 2023
Programming
0
310
5minutes_learning_OAuth
maimu
March 25, 2023
Tweet
Share
More Decks by maimu
See All by maimu
Rails 1.0 のコードで学ぶ find_by* と method_missing の仕組み / Learn how find_by_* and method_missing work in Rails 1.0 code
maimux2x
1
720
rails_girls_is_my_gate_to_join_the_ruby_commuinty
maimux2x
0
570
ruby-flip-flop
maimux2x
0
130
before_rails_girls_after_rails_girls
maimux2x
0
760
my_study_of_ruby_method
maimux2x
1
170
one_liner_fizzbuzz
maimux2x
0
150
about_rails_girls_document_translation
maimux2x
0
6.1k
best_for_fbc
maimux2x
0
73
homemade_service_release_front_and_back
maimux2x
0
410
Other Decks in Programming
See All in Programming
技術懸念に立ち向かい 法改正を穏便に乗り切った話
pop_cashew
0
1.1k
RubyKaigiで得られる10の価値 〜Ruby話を聞くことだけが RubyKaigiじゃない〜
tomohiko9090
0
120
UPDATEがシステムを複雑にする? イミュータブルデータモデルのすすめ
shimomura
0
410
Rails産でないDBを Railsに引っ越すHACK - Omotesando.rb #110
lnit
1
150
ワイがおすすめする新潟の食 / 20250530phpconf-niigata-eve
kasacchiful
0
290
Proxmoxをまとめて管理できるコンソール作ってみました
karugamo
1
450
Devinで実践する!AIエージェントと協働する開発組織の作り方
masahiro_nishimi
6
2.8k
プロダクト改善のために新しいことを始める -useContextからの卒業、Zustandへ-
rebase_engineering
1
110
Blueskyのプラグインを作ってみた
hakkadaikon
1
370
RubyKaigi Hack Space in Tokyo & 函館最速 "予習" 会 / RubyKaigi Hack Space in Tokyo & The Fastest Briefing of RubyKaigi 2026 in Hakodate
moznion
1
130
実はすごいスピードで進化しているCSS
hayato_yokoyama
0
100
衛星の軌道をWeb地図上に表示する
sankichi92
0
260
Featured
See All Featured
No one is an island. Learnings from fostering a developers community.
thoeni
21
3.3k
Agile that works and the tools we love
rasmusluckow
329
21k
The Power of CSS Pseudo Elements
geoffreycrofte
76
5.8k
The Success of Rails: Ensuring Growth for the Next 100 Years
eileencodes
45
7.3k
Put a Button on it: Removing Barriers to Going Fast.
kastner
60
3.9k
Docker and Python
trallard
44
3.4k
A better future with KSS
kneath
239
17k
Connecting the Dots Between Site Speed, User Experience & Your Business [WebExpo 2025]
tammyeverts
1
98
Documentation Writing (for coders)
carmenintech
71
4.8k
Practical Tips for Bootstrapping Information Extraction Pipelines
honnibal
PRO
20
1.3k
GraphQLの誤解/rethinking-graphql
sonatard
71
11k
Building Applications with DynamoDB
mza
95
6.4k
Transcript
5分で学ぶ OAuth2.0 Entaku.rb 2023-03-24 maimu
自己紹介 名前:まいむ GitHub:https://github.com/maimux2x Twitter:https://twitter.com/maimux2x 仕事でプロダクトマネジメントを担当する中で自分自身もサービス開発をしたいと思うよ うになりFjordBootCampでプログラマーを目指して学習中。 餡子もカスタードも大好きな甘党です!
LTテーマ 5分で学ぶOAuth2.0
テーマ選定理由 FjordBootCampの卒業課題でGoogleカレンダーAPIを利用したサービスを開発したい と考えていて、認可の仕組みを理解したかった
OAuth2.0とは? サードパーティアプリケーションによるHTTPサービスへの限定的な アクセスを可能にする認可フレームワーク
どゆこと?
具体例 ユーザー サードパーティアプリ (PDF編集アプリ等) HTTPサービス (Google OAuth ) HTTPサービス (Googleドライブ)
GoogleドライブからPDFのダウン ロードだけが許可される GoogleドライブにあるPDFデータ を加工して上書きしたい ユーザーの同意を得 てPDF編集アプリにド ライブ内のPDFダウ ンロードを許可
つまり OAuth2.0は「PDF編集アプリによるGoogleドライブへの限定的なアクセス」を可能にす るための仕組み
ポイント:限定的なアクセス PDF編集アプリはGoogleドライブから「PDFデータのダウンロード」 しか許可されていない 万が一悪意あるアプリだったとしてもダウンロードしかできないため 影響は最低限に抑えられる では、どうやって限定的なアクセスを実現しているのか?
OAuth2.0の仕組み リソースオーナー クライアント 認可サーバー リソースサーバー ①認可サーバーにリソースへのア クセス権を要求 ②リソースオーナーへ の意思を確認 ③アクセス権の委譲を
同意 ④クライアントに対し てアクセストークンを 発行
ポイント:アクセストークン • 誰のどのリソースにどのような操作を行うことが許可されているか ◦ 読み取り・書き込みなどの権限をスコープという仕組みで管理している • 有効期限 ◦ 期限を過ぎたアクセストークンでリクエストするとリソースサーバーは権限委譲を拒否する 認可サーバーがアクセストークンを発行し、クライアントがそのトークンを用いて操作のリ
クエストをすることで、許可された操作のみが実行可能になる。
まとめ • OAuth2.0は「サードパーティアプリによるリソースへの限定的なアクセス」を可能に するための「アクセストークン発行方法のルール」 • サードパーティアプリとリソースオーナーの間で、権限委譲の確認を行い、事前に 決められた権限のスコープに則ったアクセストークンを発行し、サードパーティアプ リに限定的な操作を許可している
参考資料 • 雰囲気でOAuth2.0を使っているエンジニアがOAuth2.0を整理して、手を動かしな がら学べる本(Auth屋 著)
ご清聴ありがとうございました