「OAuth 徹底入門 セキュアな認可システムを適用するための原則と実践」[Justin Richer (著), Antonio Sanso (著), Authlete Inc. (監修), 須田 智之 (翻訳), 2019]を読みました。
感想について記述していきます。
感想
OAuth の入門書の中で有名だと思われる本です。
知り合いのエンジニアとの勉強会の課題図書だったの、じっくり読み進めていきました。
簡単に書くと OAuth の知識を網羅できる入門書ではあるけれども、決して初心者向けではない、内容でした。
また、全体的に読みづらいので軽快に読み進めることができないのが問題です。
よかった点と悪かった点についてまとめましたので記述していきます。
よかった点
1. 網羅的な OAuth に関する情報
OAuth の解説に関してはタイトルの通り徹底的で、登場人物や認可フローの種類などと他の書籍や記事ではまとめられていなさそうな、内容となっています。
歴史的な背景もある程度まとめており、OAuth に関する知識ついては、この一冊で十分なものとなっています(後述しますが、理解しやすいかどうかは別です)。
2. 豊富なソースコード
OAuth の OAuth ダンスに該当するソースコードは認可サーバー、クライアント、保護対象リソースのすべてにおいて github でソースコードが公開されています。
そのため、フローごとに処理を追うことができるので理解が深まります。
クライアント、認可サーバー、保護対象リソースを適切に実装
ただし、Node.js の基本知識が必要です。
悪かった点
1. 日本語が不自然で冗長
英語を無理やり日本語訳したような文章で不自然です。
また、同意味の内容を違う言い回しで説明されているせいで、とても読みづらいです。
比喩もわかりづらいので、順番から読んでいって理解できないので、なんども繰り返し読むことになります。
「まず最初に」という日本語は意味が重複しているため誤用なのですが、この本では多用しています。
2. 文章構成がわかりづらい
1 と内容か被りますが、文章構成がわかりづらいです。
結論を最初に述べたり、説明内容の概要の列挙したりしてくれないので、内容を予測しなが読むことができません。
太字を使う箇所も、何を強調したいのかわかりづらいので意味をなしていません。
3. OpenID Connect 関連の解説がわかりにくい
OAuth2.0 の解説はわかりやすいかどうかは別として徹底的に解説をしてくれるので、理解が深まります。
ただ、OpenID Connect 関連の説明は初出の単語が多いです。
それらに関する補足説明もないので、読み進めるには他の資料を探す必要があります。
その他
本に書いてあるソースコードは少し誤植があります。
github の方は問題なく動きますが、ソースコードを書きながら読むと少しだけ詰まってしまう箇所がありました。
まとめ
OAuth2.0 に関する説明は十分すぎる本。
ただ、「徹底」入門なので、決して初心者向けではないです。
サンプルコードをもとに理解をすすめるには、Node.js の理解が必要です。
日本語文章と構成がわかりづらく、OpenID Connect は他の本に頼った方がいい印象を受けました。
基本的な要素や語彙の理解に OAuth 屋さんの書籍のほうが向いており、より入門書なのではないでしょうか