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
360
0
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
5minutes_learning_OAuth
maimu
March 25, 2023
More Decks by maimu
See All by maimu
Gentoo 1年生 ビルドは終わらない
maimux2x
0
100
Rails 1.0 のコードで学ぶ find_by* と method_missing の仕組み / Learn how find_by_* and method_missing work in Rails 1.0 code
maimux2x
1
1.5k
rails_girls_is_my_gate_to_join_the_ruby_commuinty
maimux2x
0
710
ruby-flip-flop
maimux2x
0
160
before_rails_girls_after_rails_girls
maimux2x
0
870
my_study_of_ruby_method
maimux2x
1
210
one_liner_fizzbuzz
maimux2x
0
180
about_rails_girls_document_translation
maimux2x
0
6.4k
best_for_fbc
maimux2x
0
85
Other Decks in Programming
See All in Programming
使いながら育てる Claude Code — 開発フローの1コマンド化 × 繰り返し指摘の自動仕組み化
shiki_kakaku
0
1.8k
<title><a id="</title>君はこのHTMLをパースできるか"></a></title> #雑LT_study
pizzacat83
0
140
FDEが実現するAI駆動経営の現在地
gonta
2
280
型も通る、synthも通る、それでも危ない 〜AIのCDKの権限とコストを機械で検証する〜 / It Passes Type Checks, It Passes Synth Checks, but It’s Still Risky — Automatically Verifying Permissions and Costs in AI’s CDK —
seike460
PRO
1
550
Go言語とトイモデルで学ぶTransformerの気持ち / fukuokago23-transformer
monochromegane
0
170
今さら聞けない .NET CLI
htkym
0
190
実装をデザインガイドラインに追従させるための取り組み / 260731-dip-mosh-design-system
dachi023
0
450
わからない話を追いかけたら、プログラミング言語を作る側にいた
ydah
3
510
AI Readyの正体はデータマネジメントだ メダリオン2.0の最前線
freee
PRO
0
240
AI時代に設計が 最大の生産性レバーになる 意図駆動開発とデータを消さない設計|Don't Delete Your Data or Your Intent — Design as the Deepest Lever in the AI Era
tomohisa
1
880
「人を評価する AI」の設計と実装
ryoyanara
0
200
琵琶湖の水は止められてもNet--HTTPのリトライは止められない / You might be able to stop the water flow of Lake Biwa but you can't stop Net::HTTP retries
luccafort
PRO
0
730
Featured
See All Featured
個人開発の失敗を避けるイケてる考え方 / tips for indie hackers
panda_program
123
22k
Raft: Consensus for Rubyists
vanstee
141
7.6k
Embracing the Ebb and Flow
colly
88
5.1k
AI Search: Implications for SEO and How to Move Forward - #ShenzhenSEOConference
aleyda
1
1.3k
Leadership Guide Workshop - DevTernity 2021
reverentgeek
1
340
Become a Pro
speakerdeck
PRO
31
6.2k
How to audit for AI Accessibility on your Front & Back End
davetheseo
0
490
svc-hook: hooking system calls on ARM64 by binary rewriting
retrage
2
480
Product Roadmaps are Hard
iamctodd
55
12k
Future Trends and Review - Lecture 12 - Web Technologies (1019888BNR)
signer
PRO
0
3.7k
Amusing Abliteration
ianozsvald
1
250
Building Flexible Design Systems
yeseniaperezcruz
330
40k
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屋 著)
ご清聴ありがとうございました