OAuth徹底入門の読書感想文 -15章-
OAuth徹底入門を読んだので感想と概要を書いていきます
今日は15章についてです
16章はまとめなので長々と書いてきたOAuth徹底入門の読書感想文もこれでラストです!!
Bearerトークンの次に来るもの
Bearerトークン以上のものが必要な理由
Bearerトークンは圧倒的に使われているトークンの種類であり、使いやす胃だけでなく標準の使用で定義されている唯一のトークン
しかしBearerトークンはリソースに提示するだけで認可されたことを意味するトークンであり、ある意味対象のリソースに対してクライアントに発行される単なるパスワードにすぎない
Bearerトークンを使わない方法としては、所有証明 (Proof of Possession: PoP)トークンを使う方法と、TLS (Transport Layer Security)トークン・バインディングと呼ばれる方法がある
PoPトークン
PoPトークンはトークン自体がシークレットになるのではなく、トークンと鍵の2つの要素で構成されている
認可サーバーはアクセストークン発行時に鍵も発行しクライアントに渡す、そして公開鍵のみ保存しておく
リソースサーバーは公開鍵を認可サーバーへ問い合わせて取得することで署名を確認する
TLSトークン・バインディング
トークン・バインディングはTLSからの情報をHTTPのようなアプリケーション層のプロトコルやOAuthのようなHTTP上で運用されているプロトコルの内部で使えるようにするための方法
HTTPクライアントはHTTPサーバーとのTLS接続を構築する際に、公開鍵 (トークン・バインディングの接続子)をHTTTPヘッダに含め、関連する秘密鍵を保持していることを証明する
クライアントはサーバーに接続する際に秘密鍵を使って署名し、ヘッダーに含める
サーバーは署名を検証し、クライアントが元の鍵ペアを提示したクライアントと同じであることを確認する
チャネルが1つの場合は上記のやり取りのみで済むが、OAuthでは通常5つ程度のTLSチャネルが必要となる
その場合は一つの接続の識別子を別の接続に送ることをクライアントに選択できるようにすることでトークンとの関連づけを扱い、別々の接続をつなげていく
感想
読み進めながらBearerトークンと提示する部分だけセキュリティ甘い感じがしていたが、やっぱり課題感を感じて別の取り組みを行なっている人がいるんだなと思った
PoPは割と手軽に導入できそう
全体の感想
かなり読み応えのある本だった
後半難しい部分もあったが網羅的にOAuth2.0についての知識をつけるにはとても良い本だと思う
著者も述べているようにOAuthのライブラリの使い方に関するガイドではなく、OAuthについて詳しくなり、どんなプラットフォーム上でもOAuthを使えるようになることを目的とした本なのでそういう全体的な知識を得たいと思ってる人にはおすすめ
完璧に理解できたわけではないのであとは困った時にOAuthとは?というのを思い出すために戻ってきて読みたいと思う