Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
オープンソースKeycloakのハンズオンで理解する認証と認可の基本
Search
raedion
October 27, 2024
Programming
570
0
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
オープンソースKeycloakのハンズオンで理解する認証と認可の基本
raedion
October 27, 2024
More Decks by raedion
See All by raedion
JJUGナイトセミナー「Java 26 リリース記念イベント」 - JEP525
raedion
0
29
生成AIを活用したリファクタリング実践 ~コードスメルをなくすためのアプローチ
raedion
1
3.6k
Other Decks in Programming
See All in Programming
Detecting Compromised CI with eBPF and Cilium Tetragon
lizrice
0
250
仕様駆動開発へのトライを機に チームに適合する手法を模索し続けている話
freee
PRO
0
590
リアルな遅延を測る仕様
kota_yata
1
120
AWS Transform Customによる Spring Boot 2.xから4.xへのVerUp
satoshi256kbyte
2
100
komatsuna「分散システムにおけるバグ分析手法」
komatsunaqa
0
270
typoなんかねぇよ
raspython3
0
480
属人化した知識を、 AIが辿れる地図にする
pkshadeck
PRO
1
200
承認済みなのに差戻しできてしまうバグ、型で潰せます
shinchit
0
100
ソフトウェアラスタライザ
fadis
1
550
私のClaude Code活用法 (個人開発編) - PHPerKaigi mini #4(2026/08/24)
panda_program
1
140
FastAPI の並行処理モデルを完全に理解する
hoto17296
8
2.8k
為什麼你並不需要ViewModel / No, you don't need a ViewModel
lovee
1
510
Featured
See All Featured
SEO in 2025: How to Prepare for the Future of Search
ipullrank
3
3.8k
Have SEOs Ruined the Internet? - User Awareness of SEO in 2025
akashhashmi
0
440
Google's AI Overviews - The New Search
badams
0
1.1k
Highjacked: Video Game Concept Design
rkendrick25
PRO
1
440
The browser strikes back
jonoalderson
0
1.5k
The Cult of Friendly URLs
andyhume
79
7k
How to build a perfect <img>
jonoalderson
1
5.9k
Music & Morning Musume
bryan
47
7.3k
Making the Leap to Tech Lead
cromwellryan
135
10k
How GitHub (no longer) Works
holman
316
150k
Intergalactic Javascript Robots from Outer Space
tanoku
273
27k
YesSQL, Process and Tooling at Scale
rocio
174
15k
Transcript
オープンソースKeycloakのハンズオンで理解する 認証と認可の基本 JJUG CCC 2024 Fall 2024年10月27日 raedion
1 Copyright (C) Nomura Research Institute, Ltd. All rights reserved.
本セッションの対象者と目標 ◼対象者 ⚫ セキュリティ、特に認証関連に何となく興味がある人 ◼目標 ⚫ 「認証と認可とは何か?」を理解してもらうこと • 前半は概念をざっくりと理解 • 後半はKeycloakで動きを見ながらイメージアップ ◼始める前に ⚫ 本発表では時間が限られているため、ハンズオンは発表者の手元で実施させていただきます汗 ⚫ ハンズオンの実施手順は後日GitHubページにて公開するため、こちらご参照ください。 はじめに
2 Copyright (C) Nomura Research Institute, Ltd. All rights reserved.
自己紹介 ◼raedion ◼株式会社野村総合研究所 ◼業務では認証認可サービスの構築・維持保守に従事 ⚫ をメインに扱っています ◼今後の目標:何かしらのOSSにコントリビューションしたい! はじめに サムネ:大学時代に食べていた天津麻婆丼
3 Copyright (C) Nomura Research Institute, Ltd. All rights reserved.
不正アクセスのセキュリティリスクへの関心度が高まっている イントロダクション (出所) https://www.ipa.go.jp/security/10threats/10threats2024.html 情報セキュリティ10大脅威 2024
4 Copyright (C) Nomura Research Institute, Ltd. All rights reserved.
攻撃者の主な侵入経路 ◼認証情報の侵害手法:クレデンシャルスタッフィング、ブルートフォース攻撃、etc イントロダクション 認証情報 フィッシング 脆弱性の悪用 (出所) ベライゾン「2024年度 データ漏洩/侵害調査報告書(DBIR)」 20% 40% 60% 80% 100% 0%
5 Copyright (C) Nomura Research Institute, Ltd. All rights reserved.
アクセス制御が重要 認証と認可について 理解しましょう
認証と認可とは?
7 Copyright (C) Nomura Research Institute, Ltd. All rights reserved.
認証と認可 ◼認証と認可はセットで語られることが多いが別の概念である。 認証と認可とは? アクセスした人が 本当にその人か確認する 権限を持つ人のみが リソースを利用できるよう制御する 買い物する ログインする 認証 認可 Amazonのログイン画面* Amazonサイト* * (出所) https://www.amazon.co.jp/
8 Copyright (C) Nomura Research Institute, Ltd. All rights reserved.
認証とは。。。 認証:あなたは誰?本当に◦◦さん? アクセスした人が本当にその人か確認すること 認証と認可とは? 必要な情報を 入力 確認結果を 返す ユーザ 認証サービス (パスワード認証の例) 入力された 情報を確認 ID ・・・・ Password
9 Copyright (C) Nomura Research Institute, Ltd. All rights reserved.
認証には色々な方法があり、組合せることでセキュリティが向上 ◼認証の種類 ⚫ 知識情報ベース • パスワードなど ⚫ 生体情報ベース • 指紋や顔判別など ⚫ 所持情報ベース • スマホのワンタイムパスワードなど ◼認証を多要素にすることでセキュリティが向上する 認証と認可とは? パスワード認証 サービス 指紋認証 〇 パスワードが漏れても指紋認証があるので不正アクセスを防ぐことが可能 ex. パスワードと指紋認証の多要素認証 ID・パスワードなどの知識情報および、所持 情報や生体情報という認証の3要素から、 2つ以上の異なる認証要素を用いて 認証する方法。 多要素認証
10 Copyright (C) Nomura Research Institute, Ltd. All rights reserved.
認可とは。。。 認証と認可とは? 一般ユーザ 管理者 ECサイト - 商品参照 〇 - 商品削除 - 商品参照 〇 - 商品削除 〇 削除コマンド実行 実行不可 削除コマンド実行 実行成功 認可:◦◦さんはこのシステムで何ができる? 権限を持つ人だけがリソースを利用できるよう制御すること
11 Copyright (C) Nomura Research Institute, Ltd. All rights reserved.
認可の代表的な規格としてOAuth2.0がある。 ◼アクセストークン(チケットみたいなもの)をクライアントに対して発行する。 =リソースオーナはクライアントに対してリソースアクセスを認可する。 認証と認可とは? クライアント ユーザーエージェント (ブラウザなど) 認可サーバ リソースオーナ (権限を持つ人) 認可リクエストを送信 リダイレクトURIを発行 ユーザを認証+許可 認可コードを発行 認可コードを渡す 認可コード検証 アクセストークン発行 OAuth2.0の実行フロー(認可コードフローの場合) リソースオーナに代わり、リソース要求 を行うアプリケーション。 クライアント 認証が成功した後に アクセストークンを発行するサーバ 認可サーバ
12 Copyright (C) Nomura Research Institute, Ltd. All rights reserved.
認可の代表的な規格としてOAuth2.0がある。 ◼アクセストークンを受け取ったクライアントはリソースサーバにアクセス ◼アクセスされたリソースサーバでアクセストークンを検証してクライアントを許可する。 認証と認可とは? クライアントとリソースサーバ間のやり取り クライアント リソースサーバ 結果を返す アクセストークン連携
Keycloakについて
14 Copyright (C) Nomura Research Institute, Ltd. All rights reserved.
認証認可を実現するサービスの中でもKeycloakは柔軟性や安定性に優れている ◼認証と認可を実現するサービスの中でもKeycloakをハンズオンで採用する。 ⚫ 理由1:オープンソース(Apache Licence 2.0)であるため、カスタマイズ性が高い ⚫ 理由2:長くメンテされているため安定している Keycloakについて Authorization Server 有償製品 オープンソース 代表的な認証認可プロダクトの例 理由1 理由2 * * 元はオープンソースだったが、ForgeRock社の方針で現在は有償
15 Copyright (C) Nomura Research Institute, Ltd. All rights reserved.
Keycloak:認証認可の機能を提供するオープンソースソフトウェア ◼Keycloakは、ID連携やアクセス制御などの機能を実現できるJavaベースの オープンソースソフトウェア。 Keycloakについて ユーザ サービス1 サービス2 サービス3 パスワード1 パスワード2 パスワード3 ユーザ サービス1 サービス2 サービス3 パスワード パスキー OTP … Keycloak導入
16 Copyright (C) Nomura Research Institute, Ltd. All rights reserved.
Keycloakのいいところ ◼ID連携によるシングルサインオンが可能 ◼オープンソースソフトウェアでカスタマイズ性が高い ⚫ SPI(Service Provider Interface)の仕組みを利用 ◼様々な認証方式に対応 ⚫ パスワード認証、WebAuthn認証など。。 ◼マルチプラットフォーム対応 ◼CNCF傘下=ベンダー中立なプロジェクト ◼OAuth2.0やOpenID Connect、SAMLに対応 Keycloakについて
Keycloakのハンズオン
18 Copyright (C) Nomura Research Institute, Ltd. All rights reserved.
ハンズオンの流れ ◼Keycloakのインストール ◼Keycloakの管理者コンソール上で設定 ⚫ レルム作成、クライアント追加、ユーザ追加 ⚫ 認証フロー設定(多要素認証) ◼OAuth2.0の挙動を確認してみる Keycloakのハンズオン
19 Copyright (C) Nomura Research Institute, Ltd. All rights reserved.
ハンズオン Keycloakのハンズオン 実演します
20 Copyright (C) Nomura Research Institute, Ltd. All rights reserved.
ハンズオンの全体感 Keycloakのハンズオン レルム: myrealm ユーザ: jjug Apache mod_auth_openidc クライアント myclient