Upgrade to Pro — share decks privately, control downloads, hide ads and more …

認証・認可の基本を学ぼう前編

Sponsored · Ship Features Fearlessly Turn features on and off without deploys. Used by thousands of Ruby developers.
Avatar for kaza kaza
December 02, 2025

 認証・認可の基本を学ぼう前編

Avatar for kaza

kaza

December 02, 2025
Tweet

More Decks by kaza

Other Decks in Programming

Transcript

  1. 目次 1 . 認 証 と 認 可 っ て

    何 が 違 う ? 2 . 認 証 ・ 認 可 の 技 術 的 歴 史 3 . O p e n I D と は 4 . O A u t h と は 5 . 認 可 は 認 証 に 代 わ り に な る の か ? 6 . そ し て 生 ま れ た O I D C 7 . ま と め
  2. ややこしいにゃあ 認 証 と 認 可 は 非 常 に

    よ く 似 た 言 葉 で す 。 こ れ は 日 本 語 に 限 ら ず 、 英 語 も そ っ く り 。 い っ た い ど う 違 う の で し ょ う か ? 認証と認可って何が違う? 認 証 : A u t h e n t i c a t i o n 認 可 : A u t h o r i z a t i o n
  3. 認証 よ く 見 か け る 説 明 と

    し て は 、 下 記 の 通 り と な り ま す 。 相 手 が 「 誰 」 で あ る か を 確 認 す る も の 。 認可 使 う こ と が で き る 「 権 限 」 を 付 与 す る も の 。
  4. 認証 認可 も し 現 実 世 界 の 何

    か に 例 え る な ら … … ? ちょっとそこの君、 本当にうちの社員? 社員証と免許証見せてくれる? 本当に本人か確認するから 社員証を渡しておくね。 これを入り口でかざすと、 好きな会議室を使えるよ。 社長室には入れないけどね
  5. つ ま り 、 認 証 = 対 象 外

    の 人 を 除 外 す る た め の 仕 組 み 。 認 可 = 対 象 の 人 の 権 限 を 管 理 す る た め の 仕 組 み 。 君、うちの社員じゃないね。 このビルには入れさせねえよ? 社長室は 役員以上の人しか入れないよ。 入りたければ偉くなりな
  6. 認証 認可 W e b サ ー ビ ス に

    置 き 換 え る と … … ? ちょっとそこの君、 本当にうちのサービス利用者? IDとPW入力してもらえる? 本当に本人か確認するから このトークン渡しておくね。 このトークンをAPIに渡すと、 住所の参照・更新ができるよ。 管理者機能は使えないけどね
  7. 認証・認可の技術的歴史 イ ン タ ー ネ ッ ト 黎 明

    期 で は 、 そ れ ぞ れ が 好 き 勝 手 に 認 証 ・ 認 可 を 実 装 し て い ま し た 。 が 、 そ の ま ま だ と 不 便 だ よ ね と い う こ と で 認 証 ・ 認 可 の 方 式 ( プ ロ ト コ ル ) を 統 一 し よ う と い う 動 き が 生 ま れ ま す 。 こ れ に よ り 、 認 証 に つ い て は S A M L ・ O p e n I D 、 認 可 に つ い て は O A u t h ( オ ー オ ー ス ) 、 と い う プ ロ ト コ ル が 誕 生 し ま し た 。
  8. <認証・認可のざっくり年表> 1 9 9 0 年 代 後 半 :

    B a s i c 認 証 な ど が 主 流 2 0 0 2 年       : S A M L 1 . 0 発 表 2 0 0 5 年       : S A M L が 2 . 0 を 発 表 、 O p e n I D 1 . 0 発 表 2 0 0 7 年       : O A u t h 1 . 0 発 表 、 O p e n I D が 2 . 0 を 発 表 2 0 1 2 年       : O A u t h が 2 . 0 を 発 表 こ の 中 で 今 回 取 り 扱 う の は 、 O p e n I D 2 . 0 と O A u t h 2 . 0 ( + 後 で も う ひ と つ ) で す 。 S A M L に つ い て は 触 れ ま せ ん 、 あ し か ら ず 。
  9. OpenIDとは O p e n I D は 認 証

    の た め の プ ロ ト コ ル で す 。 2 0 0 5 年 に 1 . 0 、 2 0 0 8 年 に 2 . 0 が 作 成 さ れ ま し た 。 が 、 実 は 2 0 1 4 年 に も っ と 有 効 な 仕 様 が 作 成 さ れ た た め 、 現 在 は 廃 止 状 態 に あ り ま す 。 な の で 、 こ う い う も の が 過 去 あ っ た ん だ 、 と い う 知 識 程 度 の 理 解 で O K で す 。
  10. O p e n I D に は 3 つ

    の 概 念 が あ り ま す 。 エ ン ド ユ ー ザ ー           : 認 証 対 象 R P ( リ ラ イ ン グ パ ー テ ィ ) : ユ ー ザ ー を 認 証 し た い サ ー ビ ス O P ( O p e n I D プ ロ バ イ ダ ー ) : 認 証 を 担 当 す る サ ー バ ー ま た は I d P ( I D プ ロ バ イ ダ ー ) ま た 、 O p e n I D で は I D を U R L 形 式 で 扱 う と い う 特 徴 が あ り ま す 。
  11. ユ ー ザ ー が I D ( U R

    L 形 式 ) を 入 力 す る と 、 R P は I d P を 検 索 ・ 特 定 し 、 I d P に 認 証 を 依 頼 し ま す 。 I d P は 認 証 結 果 を 署 名 付 き で R P に 返 し 、 R P は そ の 署 名 を 検 証 し て 本 人 確 認 を 行 い ま す 。
  12. OAuthとは O A u t h は 認 可 の

    た め の プ ロ ト コ ル で す 。 2 0 0 7 年 に 1 . 0 、 2 0 1 2 年 に 2 . 0 が 作 成 さ れ ま し た 。 こ の O A u t h 2 . 0 が 現 在 主 流 と な っ て い る 認 可 方 式 で す 。 ク ラ ベ ス で 使 っ て い る B a r s i t a や A u t h 0 も 、 認 可 に つ い て は こ の O A u t h 2 . 0 に 準 拠 し て い ま す 。 な お 、 O A u t h と は O p e n A u t h o r i z a t i o n の 略 だ っ た り し ま す 。
  13. O A u t h に は 4 つ の

    概 念 が あ り ま す 。 リ ソ ー ス オ ー ナ ー   : リ ソ ー ス の 所 有 者 ( つ ま り ユ ー ザ ー ) ク ラ イ ア ン ト       : リ ソ ー ス を 利 用 し た い ア プ リ 認 可 サ ー バ ー       : リ ソ ー ス の 利 用 を 認 可 す る サ ー バ ー リ ソ ー ス サ ー バ ー   : リ ソ ー ス を 管 理 し て い る サ ー バ ー リ ソ ー ス と は 、 ユ ー ザ ー が 持 つ デ ー タ の こ と で す 。 で は 、 「 リ ソ ー ス の 利 用 」 と は 具 体 的 に 何 で し ょ う ? こ こ は 実 質 的 に A P I と 解 釈 し て 良 い で す 。 ユ ー ザ ー が 持 つ デ ー タ の C R U D を 行 う A P I 、 そ の 利 用 を 許 可 す る か ど う か が 認 可 に な り ま す 。
  14. ク ラ イ ア ン ト は 認 可 サ

    ー バ ー に ア ク セ ス 権 を 要 求 し ま す 。 認 可 サ ー バ ー は リ ソ ー ス オ ー ナ ー の 許 可 を も ら い 、 権 限 を 付 与 し ま す 。 許 可 を 得 た ク ラ イ ア ン ト は 、 リ ソ ー ス サ ー バ ー に ア ク セ ス 権 を 提 示 し 、 リ ソ ー ス を 操 作 し ま す 。
  15. O A u t h で は リ ソ ー

    ス オ ー ナ ー の 同 意 を 得 る こ と で 、 ク ラ イ ア ン ト に ア ク セ ス 権 を 付 与 ( 認 可 ) し ま す 。 こ こ で ひ と つ 疑 問 が 生 じ ま す 。 リ ソ ー ス オ ー ナ ー に 同 意 を 得 る た め に は 、 結 局 リ ソ ー ス オ ー ナ ー が 本 人 か ど う か ( 認 証 ) 確 認 し て お く 必 要 が あ る ん じ ゃ な い か と 。 リソース使っていいかって? 全然いいよ、やっちゃって! リソースオーナーを名乗る男 誰!? 認可サーバー
  16. こ れ は 基 本 的 に そ の 通

    り で 、 O A u t h の 中 で も 認 証 の ス テ ッ プ が 実 際 に は 存 在 し ま す 。 具 体 的 に は 、 認 可 サ ー バ ー が ア ク セ ス 権 を 付 与 す る た め に 、 本 人 確 認 と し て 認 証 を 行 い ま す 。 アクセス権が欲しい? ならIDとPW入力してもらえる? 本当に本人か確認するから
  17. た だ し 、 O A u t h は

    あ く ま で 認 可 の プ ロ ト コ ル 。 認 証 に つ い て 細 か い 取 り 決 め は さ れ て い ま せ ん 。 リ ソ ー ス オ ー ナ ー の 許 可 を も ら う た め の 前 提 と し て 、 認 証 し て か ら ア ク セ ス 権 を 渡 し ま し ょ う 、 と い う 流 れ が 規 定 さ れ て い る の み と な り ま す 。 OAuthが定めたかったのは、 あくまで認可の方法なんだよね。 認証はそのためのおまけ 認可プロトコルだけど、 だいたいの説明で 認証のステップが出てくるから 混乱しやすいんだよね
  18. ま た 、 必 ず し も 認 可 の

    相 手 が ユ ー ザ ー と は 限 り ま せ ん 。 バ ッ チ 処 理 の よ う に シ ス テ ム が リ ソ ー ス を 処 理 す る べ く 、 認 可 を 求 め る ケ ー ス も あ り ま す 。 こ の 場 合 は 認 証 と い う 手 続 き は 必 要 あ り ま せ ん 。 秘密の暗号を知っている バッチ処理 秘密の暗号を知っている人は 皆友達な認可サーバー
  19. O A u t h で は 認 可 の

    た め に 認 証 し て お き ま し ょ う と い う 話 は 出 て き ま す が 、 認 証 の 正 し さ を ど う 検 証 し 、 認 証 状 態 を ど う 維 持 す る か と い う 話 は 一 切 出 て き ま せ ん ( こ こ 重 要 ) 。 O A u t h は あ く ま で も 認 可 プ ロ ト コ ル 。 こ の 前 提 を 忘 れ ず に !
  20. O A u t h で は リ ソ ー

    ス オ ー ナ ー の 同 意 を 得 る こ と で 、 ク ラ イ ア ン ト に ア ク セ ス 権 を 付 与 ( 認 可 ) し ま す 。 こ こ で ひ と つ 疑 問 が 生 じ ま す 。 リ ソ ー ス オ ー ナ ー に 同 意 を 得 る た め に は 、 結 局 リ ソ ー ス オ ー ナ ー が 本 人 か ど う か 確 認 し て い る ( 認 証 済 ) 。 つ ま り 、 ア ク セ ス 権 を 持 っ て い る な ら そ れ は リ ソ ー ス オ ー ナ ー で あ る 、 と も 言 え る の で は な い か と 。 認可は認証に代わりになるのか?
  21. 認証 認可 も し 現 実 世 界 の 何

    か に 例 え る な ら … … ? 社 員 証 を 持 っ て い る = 社 員 と 判 断 で き る か ? え、社員証持ってるの? じゃあ間違いなく うちの会社の社員だね 社員証持ってるなら、 入り口でかざすと、 好きな会議室を使えるよ。 社長室には入れないけどね
  22. し か し 実 際 に は こ れ は

    非 常 に 大 き な 問 題 が あ り ま す 。 何 故 な ら 社 員 証 は 盗 ま れ て し ま う 可 能 性 が あ る の で す 。 社 員 証 持 っ て い る だ け で 本 人 に 間 違 い な い と 決 め つ け て し ま う と 、 実 際 に は 赤 の 他 人 が 社 員 に な り す ま し て 会 社 に 侵 入 し て く る 恐 れ が あ り ま す 。 し か も 社 員 証 が 持 つ ア ク セ ス 権 の 範 囲 で 、 自 由 に 移 動 が 出 来 て し ま い ま す 。 ( 今 回 例 で 言 え ば 会 議 室 ど こ で も 入 り た い 放 題 )
  23. こ の 問 題 は W e b 上 で

    も 起 き ま す 。 ア ク セ ス 権 を 持 っ て い る = 本 人 だ か ら 認 証 済 、 と い う 認 証 方 式 を 採 用 し て い る ア プ リ が あ っ た と し ま す 。 何 ら か の 方 法 で ア ク セ ス 権 を 盗 ま れ て し ま っ た 場 合 、 本 人 に な り す ま し て ア プ リ に ロ グ イ ン す る こ と が 可 能 で す 。 オレオレ、そうオレだよ。 ほらアクセス権あるだろ? リソースオーナーを名乗る男 本当に本人なのかにゃあ。 でもアクセス権持ってるし、 認証済でいいか…… クライアント
  24. こ の 問 題 を 防 ぐ に は 、

    き ち ん と 本 人 か ど う か 確 認 ( = 認 証 ) が 必 要 で す 。 え、社員証持ってるの? じゃあ免許証も見せてもらえる? 内容一致しているか確認するから
  25. し か し 残 念 な が ら 、 一

    部 の 著 名 な サ ー ビ ス に お い て も ア ク セ ス 権 を 持 っ て い る = 本 人 と み な す 、 と い う 認 証 方 式 が 採 用 さ れ て い ま し た 。 こ れ を 俗 に O A u t h 認 証 と 言 い ま す 。 なんで一人で 認証も認可もやらなあかんねん。 ワイは認可プロトコルなんやで…… OAuth認証のポーズ
  26. あ れ 、 そ う い え ば O p

    e n I D は ど う し た ? と 思 う か も し れ ま せ ん 。 O p e n I D は 認 証 プ ロ ト コ ル な の で 、 認 証 と し て は こ ち ら を 使 う の が 筋 な よ う に 思 え ま す が 、 I D が U R L 形 式 と い う の が 扱 い 辛 い 仕 様 が 複 雑 な ど の 理 由 に よ り 、 「 O p e n I D + O A u t h と す る よ り 、 O A u t h で 認 証 も し ち ゃ っ た 方 が 楽 じ ゃ ね ? 」 と い う 判 断 に な る こ と が 多 か っ た よ う で す 。
  27. O A u t h の 共 同 著 者

    か ら も 、 O A u t h は あ く ま で 認 可 プ ロ ト コ ル な の で 認 証 に は 使 わ な い で 欲 し い 、 と い う 発 言 が な さ れ ま し た が 、 利 便 性 の 都 合 で O A u t h 認 証 は 流 行 し ま し た 。 ま た 、 前 述 の 通 り 、 O A u t h は 認 可 プ ロ ト コ ル で あ る こ と か ら 認 証 に つ い て の 取 り 決 め を し て お ら ず 、 「 じ ゃ あ ど う 認 証 す れ ば い い の さ ? 」 を き ち ん と 定 義 出 来 て い な か っ た と い う 問 題 も あ り ま し た 。
  28. OAuth OpenID Connect OAuth OpenID Connect こ の よ う

    な 背 景 か ら 2 0 1 4 年 に 誕 生 し た の が O p e n I D C o n n e c t ( O I D C ) で す 。 O A u t h の 仕 組 み を ベ ー ス に 策 定 さ れ た 拡 張 仕 様 で 、 認 証 方 法 の 取 り 決 め が 明 確 化 さ れ て い ま す 。 そして生まれたOIDC 別定義 ※OAuthに認証の仕様が追加された訳ではなく、 OAuthの拡張仕様(OAuthとは別枠扱い)という点に注意
  29. つ ま り 、 O I D C ( 拡

    張 仕 様 ) と O A u t h ( 土 台 ) を 組 み 合 わ せ る こ と で 実 質 的 に 認 証 認 可 の プ ロ ト コ ル に な り ま す 。 認証も認可も扱える。 最強ですね!
  30. 名 前 か ら も 分 か る 通 り

    、 O p e n I D を 意 識 し た 設 計 と な っ て お り 、 認 証 に 関 わ る 用 語 が O p e n I D と 一 緒 だ っ た り し ま す 。 O p e n I D O I D C 役 割 認 証 対 象 エ ン ド ユ ー ザ ー ユ ー ザ ー を 認 証 し た い サ ー ビ ス リ ラ イ ン グ パ ー テ ィ ( R P ) 認 証 を 担 当 す る サ ー バ ー O p e n I D プ ロ バ イ ダ ー ( O P ) ま た は I D プ ロ バ イ ダ ー ( I d P )
  31. O A u t h ( 認 可 ) と

    は 用 語 が 一 致 し な い 点 に 注 意 が 必 要 で す 。 リ ソ ー ス オ ー ナ ー   : リ ソ ー ス の 所 有 者 ( つ ま り ユ ー ザ ー ) ク ラ イ ア ン ト       : リ ソ ー ス を 利 用 し た い ア プ リ 認 可 サ ー バ ー       : リ ソ ー ス の 利 用 を 認 可 す る サ ー バ ー リ ソ ー ス サ ー バ ー   : リ ソ ー ス を 管 理 し て い る サ ー バ ー こ こ が 混 乱 を 招 き や す い 点 に な り ま す の で 、 認 証 ( O I D C ) の 話 な の か 認 可 ( O A u t h ) の 話 な の か 、 意 識 し な が ら 内 容 を 確 認 す る と 良 い で し ょ う 。
  32. まとめ 認 証 は 「 誰 」 を 確 認

    し 、 対 象 外 の 人 を 除 外 す る た め の 仕 組 み 認 可 は 対 象 の 人 の 「 権 限 」 を 管 理 す る た め の 仕 組 み O p e n I D は 認 証 プ ロ ト コ ル 、 O A u t h は 認 可 プ ロ ト コ ル O p e n I D は 仕 様 が 複 雑 ・ 扱 い づ ら い た め 流 行 ら な か っ た O A u t h は 認 可 プ ロ ト コ ル な の に 認 証 で 使 わ れ る こ と が あ っ た ( セ キ ュ リ テ ィ リ ス ク が あ る 間 違 っ た 使 い 方 ) 上 記 状 況 を 改 善 す る た め 、 O A u t h の 仕 組 み を ベ ー ス に 策 定 さ れ た 認 証 プ ロ ト コ ル が O p e n I D C o n n e c t ( O I D C )
  33. 長 く な っ た の は 前 編 ・

    後 編 に 分 割 す る こ と に し ま し た 。 次 回 は 下 記 に つ い て 説 明 で き た ら い い な と 思 っ て い ま す 。 O A u t h の 認 可 フ ロ ー O I D C の 認 証 フ ロ ー 認 証 認 可 を 狙 っ た 攻 撃 と そ の 対 策 ご清聴ありがとうございました。 Thank you!!