OAuth徹底入門の読書感想文 -4章-
OAuth徹底入門を読んだので感想と概要を書いていきます
3章については昨日書きました
シンプルなOAuthの保護対象リソースの構築
4章ではハンズオンの続きで、保護対象リソースを実装していきます
もちろん読むだけでも十分学びがあるし理解可能です
保護対象リソース (・サーバー)が行わなければいけないのは、受け取ったHTTPリクエストからOAuthのトークンを取得・検証し、トークンはなんのリクエストに対して有効なのかを判断すること
トークンの取り出し
OAuthではトークンの渡し方は
- AuthorizationのHTTPヘッダーに設定する
- POST送信時のformエンコードされたパラメータをボディ内に設定する
- クエリ・パラメータに設定する
の3パターンがあるので、どの方法で渡されても取得できるようにしておく必要がある
トークンの検証
トークンを受け取ったら認可サーバーのデータストアにあるトークンと比較し、有効なトークンであることを検証する (必ずしも認可サーバーと保護対象リソースがデータベースを共有している必要はない)
スコープの検証
APIによってはアクションごとに異なるスコープを要求する設定になっている
保護対象リソースは、トークンのスコープを確認し、許可されているアクション以外は実行できないようにする
例えばリソースの取得のみがスコープとなっているトークンでは、リソースの追加や削除といったアクションは実行できない
また、ユーザーが誰なのかを確認し、ユーザーに紐付くリソースしかアクセスを許可してはいけない
上記のように保護対象リソースからのレスポンスはトークンが何に対して有効なんなのかを元に作成される
感想
保護対象リソースは前章のクライアントよりもさらにやることが簡潔なのでこの章は割と軽めな印象でした
実際のサービスではトークンのスコープと、ユーザーのロールを比較する必要がある (トークンは削除を許可しているけど、ユーザーは削除のロールを持っていない)など考慮しなければいけないことはもう少し複雑になりそうです