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
250
5minutes_learning_OAuth
maimu
March 25, 2023
Tweet
Share
More Decks by maimu
See All by maimu
before_rails_girls_after_rails_girls
maimux2x
0
370
my_study_of_ruby_method
maimux2x
1
87
one_liner_fizzbuzz
maimux2x
0
73
about_rails_girls_document_translation
maimux2x
0
5.7k
best_for_fbc
maimux2x
0
39
homemade_service_release_front_and_back
maimux2x
0
300
enjoy_conferences
maimux2x
0
5.6k
RailsGirlsGatheringJapan2022
maimux2x
0
450
MyFirstDBDefinition
maimux2x
0
440
Other Decks in Programming
See All in Programming
データアナリストが行うDatabricksを活用したETLの自動化事例
shinoa
0
270
try! Swift Tokyo 2024 参加報告 / try! Swift Tokyo 2024 Report
hironytic
0
200
Goのエラースタックトレースの歴史と今後
sonatard
7
1.2k
Anthropic Cookbook のおすすめレシピ
schroneko
7
920
Elm 0.19.0 Changes
bkuhlmann
0
490
코틀린으로 멀티플랫폼 만들기
pangmoo
0
150
Micro Frontends for Java Microservices - Devnexus 2024
mraible
PRO
0
490
Blue/Greenデプロイの導入による 運用フローの改善
kudoas
1
370
GraphQLサーバの構成要素を整理する #ハッカー鮨 #tsukijigraphql / graphql server technology selection
izumin5210
4
830
スキーマ駆動開発による品質とスピードの両立 - 私達は何故、スキーマを書くのか
kentaroutakeda
0
170
Milestoner
bkuhlmann
1
410
使ってみよう Azure AI Document Intelligence
kosmosebi
2
300
Featured
See All Featured
Become a Pro
speakerdeck
PRO
11
4.5k
The Cult of Friendly URLs
andyhume
74
5.7k
Designing Experiences People Love
moore
136
23k
I Don’t Have Time: Getting Over the Fear to Launch Your Podcast
jcasabona
21
1.6k
Principles of Awesome APIs and How to Build Them.
keavy
121
16k
Testing 201, or: Great Expectations
jmmastey
28
6.3k
The Art of Programming - Codeland 2020
erikaheidi
42
12k
Scaling GitHub
holman
457
140k
What the flash - Photography Introduction
edds
64
11k
The World Runs on Bad Software
bkeepers
PRO
61
6.7k
The MySQL Ecosystem @ GitHub 2015
samlambert
243
12k
個人開発の失敗を避けるイケてる考え方 / tips for indie hackers
panda_program
60
14k
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屋 著)
ご清聴ありがとうございました