omuronの備忘録

個人的な備忘録

「世界一わかりみの深いOAuth入門 〜認可の基礎から応用まで〜」 #siospslive 受講メモ

tech-lab.connpass.com

OAuth いつまでたっても難しい...

セッション

世界一わかりみの深いOAuth入門 〜認可の基礎から応用まで〜

講師:武井 宜行(たけい のりゆき)氏

www.youtube.com

speakerdeck.com

  • おすすめ本:OAuth 徹底入門
  • OAuth の特徴
  • 認証認可は IDaaS に任せる
    • Auth0, Azure Active Derectory
  • 色んなフロー
    • 認可コードフロー:Auth0 で Web サイトが認証認可するやつなど
      • これだけ押さえれば怖くない
      • responce_typecode になる
    • インプリシットフロー:モバイルアプリなどが利用
      • クライアントID、シークレットをクライアントアプリには埋めない
        • これらはかなり強い権限を持つので信頼できる相手にしか渡さない
      • responce_typetoken になる
    • クライアントクレデンシャルズフロー:バッチ処理などで利用
  • リフレッシュトーク
    • 期限があるので漏洩のときの危険を減らせる
    • リフレッシュトークンを利用して、アクセストークンとリフレッシュトークンを再取得
    • アクセストークンは何度もネットワークを通るので短期間で捨てる
    • リフレッシュトークンはめったにネットワークを通らないので長めにしても大丈夫
  • アクセストーク
    • OAuth では形式を定めてない
    • JSON Web Token などを利用
  • OAuth認証の危険性
    • インプリシットフロー+アクセストークン発行元未検証+プロファイルAPIで得たユーザーを認証ユーザーとしているという条件が揃った場合
    • 悪意のあるモバイルアプリが認証したトークンを盗んでほかのモバイルアプリで利用
      • 発行元を検証してないため脆弱性が出る

所感

この1年ほど OAuth を勉強していたので理解はできたのですが、やっぱり慣れないと難しいですね。
資料が膨大で説明では重要な部分だけでしたが改めて端的に説明してもらえると理解が深まるので助かります。

JSON Web Token の検証は以前調べてやってみたので興味のある人は こちら も御覧ください。