5分で学ぶOAuth2.0Entaku.rb2023-03-24maimu
View Slide
自己紹介名前:まいむGitHub:https://github.com/maimux2xTwitter: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屋 著)
ご清聴ありがとうございました