雰囲気でOAuth
#読書
2.1での変更点
PKCEの必須化
インプリシットグラントの削除
認可レスポンスのパラメータにアクセストークンが直に含まれるのでリスクが高かった
ブラウザ履歴に残る
リファラーヘッダーから第三者に漏れうる
jsを使った窃取
リソースオーナーパスワードクレデンシャルグラントを削除
URIクエリパラメータでのBearer トークンの使用の禁止
三つのアプローチが存在する
Authorizationヘッダー(推奨)
リクエストボディ
URIクエリパラメータ🙅
以下のリスクがあったため
アクセスログに記録されてしまう可能性
リファラーヘッダーでの漏洩
ブラウザ履歴への保存
URLの共有による漏洩
パブリッククライアントのリフレッシュトークンの追加要件
送信者制約付きリフレッシュトークン
クライアント証明書でクライアントを識別
アクセストークンと公開鍵を紐づけて保存
ワンタイムユース
一度だけ使用可能にする
リクエストボディでのクライアントクレデンシャルのサポート必須化
2.0まではクライアント認証で以下の二つが定義
HTTP Basic 認証
リクエストボディに含める
後者はかつては任意だったが2.1で必須化
トークンリクエストにおける redirect_urlパラメータの削除
code_verifierとcode_challengeがよりセキュアなのでもはやそれでよくなった
リダイレクトURIの完全一致
OAuth認証
https://www.sakimura.org/2012/02/1487/
O auth認証に関わるグランドタイプ
認可コード
窃取できたとしても認可コードはクライアントに紐づいて認可サーバーで保持されるので安全
インプリシットグラント
アクセストークンの窃取によるなりすましが可能