2019-09-30

『雰囲気で使わずきちんと理解する!整理してOAuth2.0を使うためのチュートリアルガイド』がわかりやすくてオススメ

最近読んで良かった技術本『雰囲気で使わずきちんと理解する!整理してOAuth2.0を使うためのチュートリアルガイド』の紹介をしたい。

読み始めた背景

OAuth2.0、Webアプリケーションの開発をしたことがある人なら一度は触ったことがあるんじゃないかと思う。 自分は仕事でも使っているし、趣味の個人開発でも使ったことがある。

しかし、なんとなく自信が無く、ちゃんとわかった気がしないもやっとした状態が続いていた。
OAuthに詳しくなくても、ライブラリが裏で良い感じにやってくれて、ライブラリのREADMEを読んでとりあえず試してみたら大体やりたいことができてしまってそのままになる...みたいなパターンも良くなかったのかもしれない。

...というような感じで理解が曖昧な状態だったので「いつかOAuthをちゃんと理解して使えるようになりたい」と思っていたときにこの本の存在を知り、分量も多くなさそうだったので読み始めてみたのだった。

所感

まず、ありきたりな感想ではあるが、非常にわかりやすかった。
読んでいてつまづいたり立ち止まることがほとんど無く、すっと頭に入ってきてくれる。多分、章の構成がうまいんじゃないかと思っている。

チュートリアルガイドという名の通り、後半の半分近くはGoogleのOAuthサービスを使って、curlとブラウザで典型的なグラントタイプを試すことができるようになっているが、自分は前半部分のOAuthの仕様・用語についての方がタメになった。

対象読者としては、この本の「はじめに」にも書かれている内容だが、以下の質問にスッと答えられない場合、一読の価値があると思う。

  • スコープとはなんですか?
  • 認可コードは何が行われた証ですか?
  • サーバサイドのアプリケーションの場合、どのグラントタイプを使うべきですか?

恥ずかしながら、自分は読み始めた時点でまともに答えられたのは1つだけだった。が、今は全てちゃんと答えられるようになった。
せっかくなので、自分の回答を載せておく。 ※ ちゃんと読んだらみんな答えられる

スコープとはなんですか?

→ アクセストークンにひも付いている、アクセス権をコントロールするための仕組み。誰のどのリソースにどのような操作を行ってよいかを示す。

認可コードは何が行われた証ですか?

→ リソースオーナーがクライアントへの権限委譲に同意した証(認可サーバが発行し、クライアントがそれを受け取って、アクセストークンを取得するときに使われる)

サーバサイドのアプリケーションの場合、どのグラントタイプを使うべきですか?

→ 認可コードグラント。クライアントクレデンシャルグラントも条件を満たしさえすれば使っても問題ない認識。

ここには回答しか書いていないので、理由が知りたい方や、回答内に知らない用語が出てきたぞという方は本書をどうぞ!

終わりに

とてもタメになる本だったので、勢いで紹介したくなってこのエントリを書いた。 自分は読むスピードは速い方では無いのだが、サクサク読めて休日1日でほとんど読みきれて、かなりコスパの良い1日になったと思う。著者のAuth屋さんには感謝です。

最後に、Twitterで感想を少しつぶやいたらAuth屋さんが拾ってくれたので記念に貼っておく。続編が出るようなので期待して待っています 😃😃😃