Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Sign up for free
Menu
Search
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Pricing
Search
Sign in
Sign up for free
kyoto tech talk #9
Search
TaichiSenba
December 06, 2025
220
0
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
kyoto tech talk #9
TaichiSenba
December 06, 2025
Featured
See All Featured
Automating Front-end Workflow
addyosmani
1369
210k
svc-hook: hooking system calls on ARM64 by binary rewriting
retrage
2
580
Site-Speed That Sticks
csswizardry
13
1.5k
Joys of Absence: A Defence of Solitary Play
codingconduct
1
520
[RailsConf 2023 Opening Keynote] The Magic of Rails
eileencodes
31
10k
Documentation Writing (for coders)
carmenintech
77
5.5k
Data-driven link building: lessons from a $708K investment (BrightonSEO talk)
szymonslowik
1
1.3k
A better future with KSS
kneath
240
18k
The #1 spot is gone: here's how to win anyway
tamaranovitovic
4
1.2k
Building AI with AI
inesmontani
PRO
1
1.2k
The Art of Programming - Codeland 2020
erikaheidi
57
14k
How Fast Is Fast Enough? [PerfNow 2025]
tammyeverts
3
890
Transcript
2025.12.5 「なぜ動かない?」からの脱却!OAuth 2.0認可のエラー原因を特定しやすくした話
Money Forward, Inc. 2 Index 01 自己 紹介 02 目的
03 OAuth2.0の概要 04 抱えていた課題 05 解決アプローチ 06 成果とまとめ
Money Forward, Inc. 3 自己紹介 01
Money Forward, Inc. 4 Senba Taichi 出身:大阪府 所属:京都大学工学部2年 業務内容:API認可基盤の開発 趣味:芸人のラジオを聴くこと
(マユリカ、ダイアンがお気に入り) ガジェット集め (Apple、Ankerが好きです) MFBC> Business Platform Dev> API推進部> 長期インターン
Money Forward, Inc. 5 目的 02
Money Forward, Inc. 6 目的と対象 目的 OAuth2.0の認可フローの概要を理解してもらうこと OAuth2.0の認可フローでつまづきやすいところを改善して開発者 体験を向上させた経験から学んだことを共有すること 対象者
webAPI を開発している・利用しているエンジニアの方 API認可の仕組みに興味のあるエンジニアの方
Money Forward, Inc. 7 OAuth2.0の概要 03
認証 リソースへのアクセスを許可する前に、ユーザーの身元を確認するプロセス (例: パスポート提示のように「身元を確認する」プロセス) 認可 リソースに対するユーザーのアクセス権限を確認するプロセス (例: ビザ提示のように「入国の権限を確認する」プロセス)
認証 リソースへのアクセスを許可する前に、ユーザーの身元を確認するプロセス (例: パスポート提示のように「身元を確認する」プロセス) 認可 リソースに対するユーザーのアクセス権限を確認するプロセス (例: ビザ提示のように「入国の権限を確認する」プロセス) https://x.com/a03/status/1995841074162700718?s=20
OAuth2.0の詳細 OAuth 2.0 認可フレームワークは、サードパーティのアプリ ケーションが、リソースオーナーと HTTP サービス間の承認の やり取りを調整することによってリソースオーナーに代わって、 またはサードパーティのアプリケーションがそれ自身の代理と してアクセスを取得することを許可することによって、HTTP
サービスへの限定的なアクセスを取得することを可能にします 出典: RFC 6749
トークンを用いた権限の委譲
Money Forward, Inc. 12 OAuth2.0認可フレームワークの登場人物 リソースオーナー 認可サーバー クライアント リソースサーバー ユーザーがリソースサーバーにアクセスさせた
いアプリケーション サードパーティのwebアプリケーション リソースオーナー認可を得て、クライアント にアクセストークン を発行するサーバー 保護されたリソースをホストするサーバー 主としてWebAPI リソースの持ち主。サーバーへのアクセスを 許可する能力を持つ人
請求書を発行する ために会計情報を 取得したい 会計情報を取得 ① クライアント リソースオーナー 認可サーバー リソースサーバー
None
認可エンドポイントへ リクエストを送る ② クライアント リソースオーナー 認可サーバー リソースサーバー
③認可しますか? クライアント リソースオーナー 認可サーバー リソースサーバー
③認可して大丈夫 ④大丈夫!
None
④許可! クライアント リソースオーナー 認可サーバー リソースサーバー
⑤認可コードを与える クライアント リソースオーナー 認可サーバー リソースサーバー
⑥クライアントはトークンエ ンドポイントに認可コードを 提示する クライアント リソースオーナー 認可サーバー リソースサーバー
⑦アクセストークンを 与える ⑧アクセストークンと共 にwebAPIを叩く クライアント リソースオーナー 認可サーバー リソースサーバー
⑨このアクセストークンは 有効? ⑩有効or無効 ⑪ ⑩に応じて結果を返す クライアント リソースオーナー 認可サーバー リソースサーバー
Money Forward, Inc. 24 抱えていた課題 04
Money Forward, Inc. 25 OAuth2.0認可フレームワークの登場人物 リソースオーナー 認可サーバー クライアント リソースサーバー ユーザーがリソースサーバーにアクセスさせた
いアプリケーション サードパーティのwebアプリケーション リソースオーナー認可を得て、クライアント にアクセストークン を発行するサーバー 保護されたリソースをホストするサーバー 主としてWebAPI リソースの持ち主。サーバーへのアクセスを 許可する能力を持つ人
認可エンドポイントへ リクエストを送る この時にエラーがよく起こっていた クライアント リソースオーナー 認可サーバー リソースサーバー
開発者は以下のパラメータを含めたリクエストを送るようにしなければいけない https://api.biz.moneyforward.com/authorize?response_type=code&client_id=${ClientID}&s cope=mfc/admin/tenant.read&redirect_uri=http://localhost:12345/callback response_type 認可コードフローであることを示す「 code」が設定さ れる client_id クライアント登録時に払い出されるクライアント ID
scope アプリが要求するリソースアクセスの範囲 redirect_uri クライアント登録時に設定したリダイレクト URI
仮にサードパーティーアプリケーションの開発者が間違えたURLで リクエストを送った場合 どのパラメータが間違っているのかor入れ忘れているのか、わからない
クライアントの開発者 • エラーの詳細がわからないので解決に時間がかかるので開発スピードが低下 カスタマーサポート & 運用者(私たち) • 原因不明のエラーに対する問い合わせを解決するためのログ調査に工数を 割かれる
Money Forward, Inc. 30 解決アプローチ 05
クライアント リソースオーナー 認可サーバー リソースサーバー
Authleteにrequestを送ってその返信を見て判断 Authleteから帰ってくるレスポンス(json)
None
None
Money Forward, Inc. 35 成果とまとめ 06
成果 • 開発者体験の向上 ◦ 詳細なエラー内容を伝えることで開発者はエラーをもとに 自己解決できるようになった • サポートコストの削減の可能性 ◦ 原因不明のエラーに対するカスタマーサポートへの問い合
わせの減少すると考えている
None
まとめ • OAuth2.0の認可フレームワークとは ◦ トークンを用いた権限委譲の仕組み • 技術的アプローチ ◦ 検証をOAuth2.0に特化したAuthleteに任せることで コードベースへの変更を少なく改善することができた
• エラーメッセージの意義 ◦ エラーメッセージは、単に「事実」を伝えるためのもので はない ◦ エラーを見た相手に「ネクストアクション」を促し、解決 へ導くためのものである
『プロダクト開発meetup関西#12 @Osaka Tech Lab』 やります! プロダクト開発 meetup関西#12(来週開 催!!!) 開催日: 12月12日(金)
時間: 18:50〜21:00 形式: Open Space Technology 会場: Osaka Tech Lab(KINTOテクノロジーズ株式 会社) 住所:大阪府大阪市北区梅田3丁目1番3号 ノース ゲートビルディング 20F https://maps.app.goo.gl/Fcbwb9DCJMdsAa 2T6 イベントページ : https://product-dev-meetup-kansai.connp ass.com/event/376009/
None