Slide 1

Slide 1 text

OAuth登場前にあった複数サービス連携の課題 yamatai12 1

Slide 2

Slide 2 text

自己紹介 yamatai12(Webエンジニア) SNS X(taiyama1212) Qiita(yamatai12) Zenn(yamatai12) 好きなこと ジム 2

Slide 3

Slide 3 text

目次 目的 OAuthとは OAuth登場前の複数サービス連携の課題〜クレデンシャルの共有〜 OAuth登場前の複数サービス連携の課題〜万能な開発者キー〜 OAuth登場前の複数サービス連携の課題〜リソース所有者にクライアント用のクレ デンシャルを提供する〜 課題を解決するOAuthの仕組み まとめ 3

Slide 4

Slide 4 text

目的 OAuth登場前に複数サービスを連携させようとしたときに直面した課題を整理する。 それがOAuthによってどう解決されるのかをまとめる。 4

Slide 5

Slide 5 text

目次 目的 OAuthとは OAuth登場前の複数サービス連携の課題〜クレデンシャルの共有〜 OAuth登場前の複数サービス連携の課題〜万能な開発者キー〜 OAuth登場前の複数サービス連携の課題〜リソース所有者にクライアント用のクレ デンシャルを提供する〜 課題を解決するOAuthの仕組み まとめ 5

Slide 6

Slide 6 text

OAuthとは 用語整理 リソース所有者:ユーザー本人 クライアント:ユーザーのデータ(リソース)を使いたいアプリ 保護対象リソース:ユーザーのデータを持っているサービス リソース所有者が、外部のアプリにリソース所有者の代わりになってリソースにアクセ スする際に何ができるかを許可する仕組みのこと。 比喩するなら車のバレットキー。 6

Slide 7

Slide 7 text

目次 目的 OAuthとは OAuth登場前の複数サービス連携の課題〜クレデンシャルの共有〜 OAuth登場前の複数サービス連携の課題〜万能な開発者キー〜 OAuth登場前の複数サービス連携の課題〜リソース所有者にクライアント用のクレ デンシャルを提供する〜 課題を解決するOAuthの仕組み まとめ 7

Slide 8

Slide 8 text

OAuth登場前の複数サービス連携の課題 〜クレデンシャルの共有〜 ネット銀行と家計簿アプリが同一ドメインである場合 保護対象リソースから見ると、ログインしたのが本人か、アプリ経由かを区別できない 8

Slide 9

Slide 9 text

ネット銀行と家計簿アプリが別ドメインの場合 クレデンシャルが漏れると、第三者も自由にログインできる 9

Slide 10

Slide 10 text

目次 目的 OAuthとは OAuth登場前の複数サービス連携の課題〜クレデンシャルの共有〜 OAuth登場前の複数サービス連携の課題〜万能な開発者キー〜 OAuth登場前の複数サービス連携の課題〜リソース所有者にクライアント用のクレ デンシャルを提供する〜 課題を解決するOAuthの仕組み まとめ 10

Slide 11

Slide 11 text

OAuth登場前の複数サービス連携の課題 〜万能な開発者キー〜 開発者キーは強力な権限を持つ → 漏洩すれば多くのユーザーに被害が及ぶ 11

Slide 12

Slide 12 text

目次 目的 OAuthとは OAuth登場前の複数サービス連携の課題〜クレデンシャルの共有〜 OAuth登場前の複数サービス連携の課題〜万能な開発者キー〜 OAuth登場前の複数サービス連携の課題〜リソース所有者にクライアント用のクレ デンシャルを提供する〜 課題を解決するOAuthの仕組み まとめ 12

Slide 13

Slide 13 text

OAuth登場前の複数サービス連携の課題 リソース所有者にクライアント用のクレデンシャルを提供する ユーザーは「自分のキー」に加えてクライアント用キーも管理が必要。失効し忘れると、アプリからのアクセスが残る。 13

Slide 14

Slide 14 text

目次 目的 OAuthとは OAuth登場前の複数サービス連携の課題〜クレデンシャルの共有〜 OAuth登場前の複数サービス連携の課題〜万能な開発者キー〜 OAuth登場前の複数サービス連携の課題〜リソース所有者にクライアント用のクレ デンシャルを提供する〜 課題を解決するOAuthの仕組み まとめ 14

Slide 15

Slide 15 text

課題を解決するOAuthの仕組み 認可サーバーとは 保護対象リソースに信頼されているサーバー 保護対象リソースへ制限したアクセスをする為のクレデンシャル(アクセストーク ン)をクライアントに発行する 15

Slide 16

Slide 16 text

16

Slide 17

Slide 17 text

この仕組みにより前の章まで挙げたOAuth登場前の課題を解決できる。 リソース所有者のクレデンシャルがクライアントに共有されない クライアントに与えられたトークンは権限が限られているのでリソース所有者が 代理で依頼したい操作のみしかできない 一般的にリソース所有者はこのアクセストークンを管理する必要はない 17

Slide 18

Slide 18 text

まとめ OAuthが登場する前、複数サービスを連携させる方法には以下の課題があった クレデンシャルの共有:ユーザーのID/パスワードを直接渡すリスク 万能な開発者キー:権限が強すぎて漏洩した場合に被害範囲が大きい クライアント用クレデンシャルの発行:ユーザーに過剰な管理負担 OAuthではこれらの課題を解決する仕組みを提供する ユーザーのクレデンシャルを外部アプリに共有しない アクセス権を制限できる 認可サーバーがアクセストークンを発行するため、ユーザーの管理負担が軽 い 18

Slide 19

Slide 19 text

参考 https://www.oreilly.co.jp/books/9784873116860/ https://www.shoeisha.co.jp/book/detail/9784798159294 https://tech.iimon.co.jp/entry/2025/05/13/180000 https://qiita.com/yamatai12/items/e6b8efbba1f2f95d225a 19