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
Sponsored
·
SiteGround - Reliable hosting with speed, security, and support you can count on.
→
maimu
March 25, 2023
Programming
340
0
Share
5minutes_learning_OAuth
maimu
March 25, 2023
More Decks by maimu
See All by maimu
Gentoo 1年生 ビルドは終わらない
maimux2x
0
81
Rails 1.0 のコードで学ぶ find_by* と method_missing の仕組み / Learn how find_by_* and method_missing work in Rails 1.0 code
maimux2x
1
1.3k
rails_girls_is_my_gate_to_join_the_ruby_commuinty
maimux2x
0
670
ruby-flip-flop
maimux2x
0
150
before_rails_girls_after_rails_girls
maimux2x
0
840
my_study_of_ruby_method
maimux2x
1
190
one_liner_fizzbuzz
maimux2x
0
170
about_rails_girls_document_translation
maimux2x
0
6.3k
best_for_fbc
maimux2x
0
79
Other Decks in Programming
See All in Programming
Rethinking API Platform Filters
vinceamstoutz
0
9.7k
AIエージェントで業務改善してみた
taku271
0
480
ローカルで稼働するAI エージェントを超えて / beyond-local-ai-agents
gawa
1
250
瑠璃の宝石に学ぶ技術の声の聴き方 / 【劇場版】アニメから得た学びを発表会2026 #エンジニアニメ
mazrean
0
160
Vibe하게 만드는 Flutter GenUI App With ADK , 박제창, BWAI Incheon 2026
itsmedreamwalker
0
540
「効かない!」依存性注入(DI)を活用したAPI Platformのエラーハンドリング奮闘記
mkmk884
0
300
レガシーPHP転生 〜父がドメインエキスパートだったのでDDD+Claude Codeでチート開発します〜
panda_program
0
350
へんな働き方
yusukebe
6
2.9k
Coding at the Speed of Thought: The New Era of Symfony Docker
dunglas
0
4.6k
存在論的プログラミング: 時間と存在を記述する
koriym
5
780
車輪の再発明をしよう!PHP で実装して学ぶ、Web サーバーの仕組みと HTTP の正体
h1r0
3
500
夢の無限スパゲッティ製造機 -実装篇- #phpstudy
o0h
PRO
0
190
Featured
See All Featured
Helping Users Find Their Own Way: Creating Modern Search Experiences
danielanewman
31
3.1k
Thoughts on Productivity
jonyablonski
76
5.1k
How To Speak Unicorn (iThemes Webinar)
marktimemedia
1
430
Intergalactic Javascript Robots from Outer Space
tanoku
273
27k
Darren the Foodie - Storyboard
khoart
PRO
3
3.1k
Design of three-dimensional binary manipulators for pick-and-place task avoiding obstacles (IECON2024)
konakalab
0
390
Navigating the moral maze — ethical principles for Al-driven product design
skipperchong
2
320
Building Experiences: Design Systems, User Experience, and Full Site Editing
marktimemedia
0
470
Designing Experiences People Love
moore
143
24k
Deep Space Network (abreviated)
tonyrice
0
110
JAMstack: Web Apps at Ludicrous Speed - All Things Open 2022
reverentgeek
1
410
Site-Speed That Sticks
csswizardry
13
1.1k
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屋 著)
ご清聴ありがとうございました