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
260
5minutes_learning_OAuth
maimu
March 25, 2023
Tweet
Share
More Decks by maimu
See All by maimu
ruby-flip-flop
maimux2x
0
85
before_rails_girls_after_rails_girls
maimux2x
0
490
my_study_of_ruby_method
maimux2x
1
110
one_liner_fizzbuzz
maimux2x
0
94
about_rails_girls_document_translation
maimux2x
0
5.8k
best_for_fbc
maimux2x
0
41
homemade_service_release_front_and_back
maimux2x
0
310
enjoy_conferences
maimux2x
0
5.7k
RailsGirlsGatheringJapan2022
maimux2x
0
470
Other Decks in Programming
See All in Programming
今こそ始める、CDKコンストラクトライブラリ開発 ― 入門から実践まで
tmokmss
1
930
Composing an API the *right* way (Droidcon Berlin 2024)
zsmb
1
450
Rustのweb開発を助ける 便利なツール紹介
yuki0418
1
190
CSC307 Lecture 09
javiergs
PRO
1
500
大規模マルチテナントを解決するYugabyteDBという選択肢
nnaka2992
1
250
DMMプラットフォームにおけるTiDBの導入から運用まで
pospome
7
3k
わかりやすい正解を捨てて、コトに向き合う - スクラムフェス金沢2024 スポンサーセッション
yusukekokubo
0
170
feature環境をGitHub ActionsとCloudFormationでいい感じに管理する
nealle
2
310
CSC307 Lecture 11
javiergs
PRO
0
240
Xcode 16のPreviewModifierと@Previewableを活用した効率的なプレビュー方法の考察
ojun9
2
160
Android開発者のための Kotlin Multiplatform入門
ntaro
0
190
ぼっちを避けて楽しむためのアノテコノテ / Various Tips and Tricks to Avoid Loneliness and Have Fun
nrslib
3
1.7k
Featured
See All Featured
Mobile First: as difficult as doing things right
swwweet
219
8.8k
Optimizing for Happiness
mojombo
373
69k
Principles of Awesome APIs and How to Build Them.
keavy
124
16k
Art, The Web, and Tiny UX
lynnandtonic
291
20k
Happy Clients
brianwarren
94
6.5k
The Power of CSS Pseudo Elements
geoffreycrofte
64
5.2k
RailsConf & Balkan Ruby 2019: The Past, Present, and Future of Rails at GitHub
eileencodes
129
32k
Building Adaptive Systems
keathley
34
2k
Atom: Resistance is Futile
akmur
261
25k
Navigating Team Friction
lara
181
13k
Robots, Beer and Maslow
schacon
PRO
157
8.1k
Build The Right Thing And Hit Your Dates
maggiecrowley
28
2.2k
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屋 著)
ご清聴ありがとうございました