$30 off During Our Annual Pro Sale. View Details »

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

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!!