読んでて印象的だったところ
- 6.1.1 インプリシット付与方式
インプリシット付与方式には、それを採用する際には考慮しなければならない強い制約があります。 と書かれてはいたが、その後ウェブを探してみると、もはや使ってはいけない方式と捉えた方が良い。非推奨。
- 10.4.1 PKCE (Proof Key for Code Change)
PKCE の仕様は認可コードのリクエストとそれに続くトークンのリクエストとを安全に結びつけることで、この攻撃からクライアントを保護するために導入されたものです。
- 11.3.2 RS256 を使った非対称アルゴリズムによる署名 まずそもそも JWT とは何かがしっくりこなかったが、 Chapter 11 を読んで理解が深まった。 OAuth におけるトークンはただのランダム文字列だが、それに意味を持たせたのが JWT 。認可サーバが発行した JWT のトークンかどうかを検証するために、 RS256 の署名を使用可能。
- 11.4 トークン・イントロスペクション (Token Introspection) 認可サーバとリソースサーバが物理的に切り離されているパターンは充分ありうる。その場合。リソースサーバはどうやってクライアントから受け取ったトークンを検証したら良いか、謎だった。答えの一つは、リソースサーバは認可サーバのトークン・イントロスペクションのエンドポイントにトークンを POST し、レスポンスを評価する、だった。
- Chapter 13 OAuth 2.0を使ったユーザー認証 OAuth 2.0 は認証プロトコルではない、ということは知っていたが、なぜダメなのかなど、よくわからなかった。ここを読んで、少しわかった。認可サーバを使って認証の仕組みを利用したいなら、 OpenID Connect を使うべきともわかった。そして、 OAuth 2.0 + OpenID Connect のフルスクラッチ実装者が知見を語る – Qiita を見つけたので読んだ。 OAuth 2.0 サーバの OSS は結構あるが、 OpenID Connect サーバの OSS はあまりないし、 OAuth 2.0 サーバの OSS に OpenID Connect を追加しようとして時間が経過している OSS がちらほら見られたが、その理由がわかった気がした。
次に調べ始めたもの
- OAuth 、 OpenID Connect の知識と実感の強化の参考ページ
- ライブラリはどこで候補を見つければ良いか? 公式のサイトにあった。 -> Code — OAuth
- OpenID Connect を自前で用意するには? Code — OAuth の OAuth Services Open Source の ORY Hydra Open Source OAuth 2.0 and OpenID Connect Server – ory.sh – ory.sh が気になった。抽象度が高そう、難しそう。サービスメッシュに対応しているっぽい?
- [ory hydra] で検索した。試すときには参考になりそう ->
次に調べ始めたもの、の中でのメモ
- OpenID Connect を体験できる。実感を得る助けになる。 -> OpenID Connect Playground もともとは Introduction to ORY Hydra, OAuth 2.0, and OpenID Connect · ORY Documentation を読んでいて、そのときに見つけた。
おわりに
2019年01月30日発売の本です。したがって新鮮な情報が得られると思っていたのですが、、、そんなことはありませんでした。
といっても、この本はもともと翻訳本で、原典 "OAuth 2 in Action" が書かれたのは 2017 年で、 2 年前です。
とはいえ、 OAuth 2.0 についてはしっかりと基礎が詳しく開設されている印象で、コードも提示してあることで実感を得ながら学べたと思います。
今後、 OAuth 2 周辺で混乱してきたら、またこの本を開くと思います。
以上です。