Posted on

Table of Contents

はじめに

業務でOAuthクライアントの運用・保守はしているが、OAuthを基礎から学んだことがなかったので基礎を固めるために読んだ本。

認可サーバー、クライアント、保護対象リソースサーバー実装のサンプルコードを交えながら丁寧に説明がされていたのでしっかり理解することができた。

運用経験があったおかげでスムーズに読み進めたが「13章 OAuth2.0を使ったユーザー認証」の内容は自身の解釈として学びが多かったので考えたことをまとめる。

OAuth2.0は認証と認可の間で依存性逆転を行うよう認可を抽象化した設計?

上記の問いは理論、運用ともに豊富な人からみると当たり前の解釈かもしれないが、認可が認証に依存をさせない設計を徹底しているのが印象的だった。

DBリポジトリの抽象に対して実装をDIするように、認可フレームワークとして抽象化されたOAuthでは認証含む実装方法に様々な選択肢を用意している。

OAuth2.0に限らずアプリケーション設計において認証と認可はコンテキストをはっきりと分けるべき、みたいな話は過去の学び・議論から直感的に理解していたが、OAuth2.0の哲学のようなものに触れることでより良いインターフェースの一例を知ることができた。

Jsonフィールドレベルのインターフェースだけでなく、リソースに対する認可という形も含めてインターフェースを小さくすることで、よりコンテキスト、依存関係を明確にしたやり取りができる。

まとめ

最近はソフトウェア設計に関する学びも飽和してきて「とにかく良いインターフェースに触れること」といったざっくり方針を立てていたが、本書のおかげで方針を実行に移すことができた。

まあまだ一冊本読んだレベルの知識なので引き続き深掘りしていきたい。