何も知らない人向けにふんわりOAuthについて解説する:超初心者向け

OAuth認証をざっくりと理解する OAuth何もわからないからちょっとわかるへ
◆ Live配信スケジュール ◆
サイオステクノロジーでは、Microsoft MVPの武井による「わかりみの深いシリーズ」など、定期的なLive配信を行っています。
⇒ 詳細スケジュールはこちらから
⇒ 見逃してしまった方はYoutubeチャンネルをご覧ください
【5/21開催】Azure OpenAI ServiceによるRAG実装ガイドを公開しました
生成AIを活用したユースケースで最も一番熱いと言われているRAGの実装ガイドを公開しました。そのガイドの紹介をおこなうイベントです!!
https://tech-lab.connpass.com/event/315703/

今回は、輪読会でOAuth2.0での認証について勉強してみました。まったくわからないからちょっとわかるへ理解がステップアップしたの「ざっくりと理解する」というテイストでまとめてみました。何も知らない人、ちょっとわかるにステップするための後押しぐらいになればよいなと思っています。真面目まとめはちゃんとまとめます。

はじめに

どもども!輪読会でいろいろな技術に触れようの会を泣きながら突破した龍ちゃんです。絶賛まとめながら泣いています。約1か月かけてOAuthに関係する書籍を読みながら、同僚や先輩に解釈を話して理解を進めていきました。何もわからない状態からちょっとわかる状態にまではなったので、何もわからない状態の人のためにざっくりとした理解を書いていこうと思います。

この記事は、初心者と一緒に勉強を始めていく人向けの記事となっています。有識者の皆さん、ミスっている部分があれば指摘をお願いします。今回の記事でわかることは以下になります。

  • OAuthを理解するための用語
  • OAuth認証の基礎的な部分

それでは本編始めていきましょう。

ちなみにですが、僕が今回勉強するにあたって使用した書籍は以下になります。

後はネットの記事をいろいろ読んでみました。先にざっくりとした僕の理解を一言で置いておきます。

何かのリソースにアクセスした際に、アクセスしたものが自分と関係があることを証明するための仕組み

OAuth認証って何?

先ほど、僕なりの理解を置いておいたのですが、実際にどこで使われているの?という疑問が生まれてくるかなと思います。皆さんGoogleのサービスなどは使っていると思います。別のアプリからカレンダーに予定を書き込むみたいな機能を使っている人はおそらくOAuth認証を使っていると思います。以下の画面を見たことってありませんか?この2つの画面を見たことがあるあなたは、OAuth認証を実際に使用しています。

 

 

この同意画面をクリックすることでカレンダーの予定が編集されたりします。これの裏側で起きている一つのアクションとしてOAuth認証があるのです。

OAuthを理解していくための用語

とりあえず、入門であれば以下の用語を押さえておけばよいと思います。僕のイメージをセットで置いておきます。リソースオーナー
クライアント
認可サーバー
リソースサーバー  リソースの所有者:Googleのサービスに紐づいたアドレス  リソースにアクセスするアプリケーションのことを指す  OAuthの処理を行う場所!門番みたいなイメージでよいと思う  リソースの置き場所:リソースのアクセス元

こちらの要素が通信することで、OAuth認証が実行されます。これに加えて、クライアントを操作する「ユーザー:自分自身」がいることを忘れてはいけません。

シーケンス図を読める人ならば、通信のやり取りを追えると思うのでそちらを見てみるとよいかもしれません。僕が参考にしたどちらの書籍でもシーケンス図は触れられていました。

OAuthをざっくりと理解してみる

それでは、一例をもって説明していきたいと思います。体系的に学ぼうとすると「グラントタイプ」や「クライアントタイプ」などの説明が入ってくるのですが、そこはカロリーが高いので、いったんおいておきます。シーケンス図もいきなりだとカロリーが高いので図化してきました。

やりたいこととしては、「GoogleのAPIを用いて何かしらの処理を実行したい」というイメージです。もっと詳しく話すと「OAuth認証:認可コードグラント(アクセストークンの部分をいったんおいておく)」になります。

認可コードグラント省略版概念図

処理を順に言葉で説明していきます。

  1. ユーザーがクライアントにアクセスする(アプリケーションにアクセス)
  2. クライアントから認可サーバーにリクエストを送信する
  3. 認可サーバーからユーザーに確認画面を提示する
  4. ユーザーが承認をする(クライアントからのアクセスを承認する)
  5. 認可サーバーからクライアントにアクセスするためのカギを渡す
  6. クライアントがリソースサーバーにカギを使ってアクセスする

基本的な理解は以上で大丈夫だと思います。OAuth認証の4パターンほどあるのですが、「認可サーバーからカギをもらうタイミング」や「ユーザーが登場しないパターン」などがあるだけで、基本的な部分としては、「リソースサーバーにアクセスするためのカギを入手する」というイメージを持っておけば大丈夫です。僕はこのイメージを持つまでに苦労しました。

上のほうでも書きましたが、「カギを入手する方法」が多くあります。これをグラントタイプという命名で記載されており、4つのグラントタイプがあります。これについて入っていくとなかなかなカロリーを使ってしまうので、いったんは置いておきます。

もっと理解したい人は続きブログであるこちらを読んでみてください。


ブログのリンクが挿入される予定です。

とりあえず輪読会のリンクを置いておきます。


終わりに

さて、ざっくりと理解できましたか?私はこのブログを書くことを通して理解を深めていきました。やはり書いてまとめることは偉大です。というわけで啓もう活動をしているわけです。

さすがに今回は一人で理解してまとめることはつらかったです。今後、同僚たちの認証認可系の記事が投稿されるはずです。

ここから下にきっと連なっていきます。

それではまたね~

アバター画像
About 龍:Ryu 107 Articles
2022年入社で主にフロントエンドの業務でTailwindと遊ぶ日々。お酒とうまいご飯が好きで、運動がちょっと嫌いなエンジニアです。しゃべれるエンジニアを目指しておしゃべりとブログ執筆に注力中(業務もね)//
ご覧いただきありがとうございます! この投稿はお役に立ちましたか?

役に立った 役に立たなかった

1人がこの投稿は役に立ったと言っています。


ご覧いただきありがとうございます。
ブログの最新情報はSNSでも発信しております。
ぜひTwitterのフォロー&Facebookページにいいねをお願い致します!



>> 雑誌等の執筆依頼を受付しております。
   ご希望の方はお気軽にお問い合わせください!

Be the first to comment

Leave a Reply

Your email address will not be published.


*


質問はこちら 閉じる