Submit Search
株式会社カサレアル 山本による講演「認証・認可におけるKeycloakの活用」の資料
0 likes
•
130 views
CASAREAL, Inc.
2024年7月24日開催 テクマトリックス株式会社主催セミナー 『セキュアなWebアプリケーション きほんのき -OAuth/OIDCによる認証・認可、セキュリティ強化の方法-』 での講演資料です。
Technology
Read more
1 of 51
Download now
Download to read offline
1
2
Most read
3
4
5
6
7
8
Most read
9
10
Most read
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
More Related Content
PDF
OAuth2.0によるWeb APIの保護
Naohiro Fujie
PPTX
Keycloakのステップアップ認証について
Hitachi, Ltd. OSS Solution Center.
PPTX
QlikTips: Qlik Cloud REST APIでユーザー登録(Node.js)
QlikPresalesJapan
PDF
Scala が支える医療系ウェブサービス #jissenscala
Kazuhiro Sera
PDF
Azure AD B2CにIdPを色々と繋いでみる
Naohiro Fujie
PDF
SAML / OpenID Connect / OAuth / SCIM 技術解説 - ID&IT 2014 #idit2014
Nov Matake
PDF
[AWS DevDay] Cognito / Amplify で加速するエンタープライズのアプリケーション開発
Yuki Ando
PPTX
Azure Active Directory 利用開始への第一歩
Yusuke Kodama
OAuth2.0によるWeb APIの保護
Naohiro Fujie
Keycloakのステップアップ認証について
Hitachi, Ltd. OSS Solution Center.
QlikTips: Qlik Cloud REST APIでユーザー登録(Node.js)
QlikPresalesJapan
Scala が支える医療系ウェブサービス #jissenscala
Kazuhiro Sera
Azure AD B2CにIdPを色々と繋いでみる
Naohiro Fujie
SAML / OpenID Connect / OAuth / SCIM 技術解説 - ID&IT 2014 #idit2014
Nov Matake
[AWS DevDay] Cognito / Amplify で加速するエンタープライズのアプリケーション開発
Yuki Ando
Azure Active Directory 利用開始への第一歩
Yusuke Kodama
Similar to 株式会社カサレアル 山本による講演「認証・認可におけるKeycloakの活用」の資料
(20)
PPTX
FIWARE の ID 管理、アクセス制御、API 管理
fisuda
PDF
Authentication and Authorization of The Latest Keycloak
Hitachi, Ltd. OSS Solution Center.
PDF
SQL Beginners Day #1 - SQL Server および Azure SQL のインストールと管理
Oshitari_kochi
PPTX
Active directoryと認証・認可
Hiroki Kamata
PDF
AWS における Microservices Architecture と DevOps を推進する組織と人とツール
Amazon Web Services Japan
PPTX
KeycloakでAPI認可に入門する
Hitachi, Ltd. OSS Solution Center.
PDF
[Modern Cloud Day Tokyo 2019] Oracle Cloud Infrastructure 基本サービス入門(2) - ユーザー管...
オラクルエンジニア通信
PPTX
Keycloakの全体像: 基本概念、ユースケース、そして最新の開発動向
Hitachi, Ltd. OSS Solution Center.
PDF
FAPI and Beyond: From an specification author's point of view #fapisum - Japa...
FinTechLabs.io
PDF
CASB Cloud Service / Identity Cloud Service ご紹介
オラクルエンジニア通信
PDF
AWS の IoT 向けサービス
Amazon Web Services Japan
PPTX
API Gateway - ヘッダー/クエリー変換、認証・認可機能詳細
オラクルエンジニア通信
PDF
「金融API向けOAuth」にみるOAuthプロファイリングの実際 #secjaws #finsecjaws01 #oauth #oidc #api
Tatsuo Kudo
PDF
2019年9月18日開催AWS Japan × Atlassianセミナー_セッション2「AmazonカルチャーとDevOps」
アトラシアン株式会社
PDF
KubeCon + CloudNativeCon North America セキュリティ周りrecap
Hitachi, Ltd. OSS Solution Center.
PDF
デバイスの運用で使える AWS IoTサービスの紹介
Amazon Web Services Japan
PDF
Infrastructure as Code
裕貴 荒井
PPTX
TECHTALK 20210126 Qlik Sense SaaSの 認証連携を詳細解説
QlikPresalesJapan
PDF
Windows Azure Active Directory Multi-Factor Authentication Preview for Phone ...
kekekekenta
PPTX
詳説!Azure AD 条件付きアクセス - 動作の仕組みを理解する編
Yusuke Kodama
FIWARE の ID 管理、アクセス制御、API 管理
fisuda
Authentication and Authorization of The Latest Keycloak
Hitachi, Ltd. OSS Solution Center.
SQL Beginners Day #1 - SQL Server および Azure SQL のインストールと管理
Oshitari_kochi
Active directoryと認証・認可
Hiroki Kamata
AWS における Microservices Architecture と DevOps を推進する組織と人とツール
Amazon Web Services Japan
KeycloakでAPI認可に入門する
Hitachi, Ltd. OSS Solution Center.
[Modern Cloud Day Tokyo 2019] Oracle Cloud Infrastructure 基本サービス入門(2) - ユーザー管...
オラクルエンジニア通信
Keycloakの全体像: 基本概念、ユースケース、そして最新の開発動向
Hitachi, Ltd. OSS Solution Center.
FAPI and Beyond: From an specification author's point of view #fapisum - Japa...
FinTechLabs.io
CASB Cloud Service / Identity Cloud Service ご紹介
オラクルエンジニア通信
AWS の IoT 向けサービス
Amazon Web Services Japan
API Gateway - ヘッダー/クエリー変換、認証・認可機能詳細
オラクルエンジニア通信
「金融API向けOAuth」にみるOAuthプロファイリングの実際 #secjaws #finsecjaws01 #oauth #oidc #api
Tatsuo Kudo
2019年9月18日開催AWS Japan × Atlassianセミナー_セッション2「AmazonカルチャーとDevOps」
アトラシアン株式会社
KubeCon + CloudNativeCon North America セキュリティ周りrecap
Hitachi, Ltd. OSS Solution Center.
デバイスの運用で使える AWS IoTサービスの紹介
Amazon Web Services Japan
Infrastructure as Code
裕貴 荒井
TECHTALK 20210126 Qlik Sense SaaSの 認証連携を詳細解説
QlikPresalesJapan
Windows Azure Active Directory Multi-Factor Authentication Preview for Phone ...
kekekekenta
詳説!Azure AD 条件付きアクセス - 動作の仕組みを理解する編
Yusuke Kodama
Ad
More from CASAREAL, Inc.
(20)
PDF
Platform Engineeringをビジネスとして立ち上げて、そこから見えてきたもの
CASAREAL, Inc.
PDF
マイクロサービスアーキテクチャへのモチベーション整理とその複雑性に対する落としどころ
CASAREAL, Inc.
PDF
vClusterを活用したKubernetes環境の最適化とバージョンアップ検証
CASAREAL, Inc.
PDF
クラスターを分割するという運用の現実解
CASAREAL, Inc.
PDF
とある研修講師から見たJavaScript動向
CASAREAL, Inc.
PDF
211117 microserviceswebinar
CASAREAL, Inc.
PDF
Cndt2021 casareal
CASAREAL, Inc.
PDF
DevOpsの3.5次元的解釈に基づくCI/CDパイプライン設計
CASAREAL, Inc.
PDF
これやったの誰?
CASAREAL, Inc.
PDF
DevOpsに求められる様々な技術とその連携の学習方法
CASAREAL, Inc.
PDF
これからの時代に求められるエンジニアの育成とは
CASAREAL, Inc.
PDF
IT人材ラボ Day 2019 Summer 新人から変える!イマドキの顧客ニーズに適用する新人研修
CASAREAL, Inc.
PDF
JJUG会長と一緒に考えたSpring Boot x JavaScript x IntelliJ x アジャイルというモダンな新人研修を今まさにやっている話
CASAREAL, Inc.
PDF
DevRelConTokyo2019_CasarealLT
CASAREAL, Inc.
PPTX
Pivotal Cloud Foundry 2.3: A First Look
CASAREAL, Inc.
PDF
SpringOneでの3⽇間とSpring 5.1最新情報
CASAREAL, Inc.
PDF
日立ソリューションズの取り組みとプラットフォーム関連セション内容のご紹介
CASAREAL, Inc.
PPTX
SpringOne Platform Replay -Pivotal Cloud Foundry-
CASAREAL, Inc.
PDF
SpringOne Platform について
CASAREAL, Inc.
PDF
開発現場から考えるプロジェクトで活躍する新入社員の育て方とは?
CASAREAL, Inc.
Platform Engineeringをビジネスとして立ち上げて、そこから見えてきたもの
CASAREAL, Inc.
マイクロサービスアーキテクチャへのモチベーション整理とその複雑性に対する落としどころ
CASAREAL, Inc.
vClusterを活用したKubernetes環境の最適化とバージョンアップ検証
CASAREAL, Inc.
クラスターを分割するという運用の現実解
CASAREAL, Inc.
とある研修講師から見たJavaScript動向
CASAREAL, Inc.
211117 microserviceswebinar
CASAREAL, Inc.
Cndt2021 casareal
CASAREAL, Inc.
DevOpsの3.5次元的解釈に基づくCI/CDパイプライン設計
CASAREAL, Inc.
これやったの誰?
CASAREAL, Inc.
DevOpsに求められる様々な技術とその連携の学習方法
CASAREAL, Inc.
これからの時代に求められるエンジニアの育成とは
CASAREAL, Inc.
IT人材ラボ Day 2019 Summer 新人から変える!イマドキの顧客ニーズに適用する新人研修
CASAREAL, Inc.
JJUG会長と一緒に考えたSpring Boot x JavaScript x IntelliJ x アジャイルというモダンな新人研修を今まさにやっている話
CASAREAL, Inc.
DevRelConTokyo2019_CasarealLT
CASAREAL, Inc.
Pivotal Cloud Foundry 2.3: A First Look
CASAREAL, Inc.
SpringOneでの3⽇間とSpring 5.1最新情報
CASAREAL, Inc.
日立ソリューションズの取り組みとプラットフォーム関連セション内容のご紹介
CASAREAL, Inc.
SpringOne Platform Replay -Pivotal Cloud Foundry-
CASAREAL, Inc.
SpringOne Platform について
CASAREAL, Inc.
開発現場から考えるプロジェクトで活躍する新入社員の育て方とは?
CASAREAL, Inc.
Ad
Recently uploaded
(10)
PDF
20250726_Devinで変えるエンプラシステム開発の未来
Masaki Yamakawa
PDF
【学会聴講報告】CVPR2025からみるVision最先端トレンド / CVPR2025 report
Sony - Neural Network Libraries
PDF
TaketoFujikawa_ComicComputing12th_inKumamoto
Matsushita Laboratory
PDF
MahiroYoshida_セリフに着目したキャラクタロール推定に関する基礎検討_sigcc12th2025
Matsushita Laboratory
PDF
20250729_Devin-for-Enterprise
Masaki Yamakawa
PDF
第三世代 ウェザーステーションキット v3 ー WSC3-L 日本語カタログ
CRI Japan, Inc.
PDF
20250730_QiitaBash_LT登壇資料_PDC_Kurashina.pdf
pdckurashina
PPTX
2025_7_25_吉祥寺_設計ナイト_ADR運用におけるデータ利活用の考え方.pptx
ssuserfcafd1
PDF
VMUG Japan book vsan 20250515 CPU/Memory vSAN
Kazuhiro Sota
PPTX
baserCMS『カスタムコンテンツ』徹底活用術〜あなただけの管理画面を自由自在に〜
Ryuji Egashira
20250726_Devinで変えるエンプラシステム開発の未来
Masaki Yamakawa
【学会聴講報告】CVPR2025からみるVision最先端トレンド / CVPR2025 report
Sony - Neural Network Libraries
TaketoFujikawa_ComicComputing12th_inKumamoto
Matsushita Laboratory
MahiroYoshida_セリフに着目したキャラクタロール推定に関する基礎検討_sigcc12th2025
Matsushita Laboratory
20250729_Devin-for-Enterprise
Masaki Yamakawa
第三世代 ウェザーステーションキット v3 ー WSC3-L 日本語カタログ
CRI Japan, Inc.
20250730_QiitaBash_LT登壇資料_PDC_Kurashina.pdf
pdckurashina
2025_7_25_吉祥寺_設計ナイト_ADR運用におけるデータ利活用の考え方.pptx
ssuserfcafd1
VMUG Japan book vsan 20250515 CPU/Memory vSAN
Kazuhiro Sota
baserCMS『カスタムコンテンツ』徹底活用術〜あなただけの管理画面を自由自在に〜
Ryuji Egashira
株式会社カサレアル 山本による講演「認証・認可におけるKeycloakの活用」の資料
1.
認証・認可における Keycloakの活用 株式会社カサレアル プロフェッショナルソリューション第1技術部 山本 薫 © CASAREAL,
Inc. All rights reserved.
2.
アジェンダ • カサレアルについて • 認証・認可とその課題 •
OAuth/OpenID Connectについて • 認証・認可の流れ • Keyclaokの利用 • 動作確認(デモ) • まとめ © CASAREAL, Inc. All rights reserved.
3.
カサレアルについて © CASAREAL, Inc.
All rights reserved.
4.
株式会社カサレアル © CASAREAL, Inc.
All rights reserved. ラーニングサービス 技術者育成 オープン研修 カスタムメイド研修 新入社員研修 技術定着化ワークショップ オリジナル教材販売 プロフェッショナル サービス クラウドネイティブ推進支援 GitLabソリューション 導入トレーニング クラウドネイティブ 推進支援サービス ビジネスソリューション サービス 受託開発・SES システム構築サービス 開発支援サービス パッケージサービス
5.
認証・認可とその課題 © CASAREAL, Inc.
All rights reserved.
6.
認証と認可について • 認証(Authentication) • システムを利用する対象を特定し本物であることを検証すること •
認可(Authorization) • リソースに対するアクセス権があるか判断し許可/拒否すること © CASAREAL, Inc. All rights reserved. アプリケーションにおけるセキュリティー確保の もっとも基本的な機能
7.
これまでのアプリケーション © CASAREAL, Inc.
All rights reserved. アプリケーション データベース 1つのアプリケーションだけで認証・認可を実現 良くも悪くもすべてコントロール可能 認証・認可 認証情報
8.
しかし、最近のアプリケーションは… © CASAREAL, Inc.
All rights reserved. サービス 3rd Party サービス サービス サービス SPA(Single Page Application)や マイクロサービス・アーキテクチャーの普及により 高度な分散システムへ SPA
9.
認証・認可の課題(その1) © CASAREAL, Inc.
All rights reserved. すべてのサービスに直接アクセスさせるのは危険! それぞれのサービスでアカウント管理するのも無駄! 集中管理するサービスが必要 どこに配置して 誰が管理する? 認証情報
10.
認証・認可の課題(その2) © CASAREAL, Inc.
All rights reserved. サービス 3rd Party ユーザーのクレデンシャルを渡すのは論外! 認証・認可されたことを表現する情報が必要 どのようにして 第三者にアクセスを 許可する?
11.
認証・認可の課題(その3) © CASAREAL, Inc.
All rights reserved. サービス 3rd Party サービス サービス サービス 平文での受け渡しは危険! 偽装・漏洩・改ざんされない仕組みが必要 SPA どのようにして 認証・認可の情報 を安全に受け渡す?
12.
課題を解決するために • シングル・サイン・オン(SSO) • 1回の認証で複数のシステムを利用可能にするソリューション •
標準規格としてSAMLとOAuth/OpenID Connectが存在 • SAML(Security Assertion Markup Language) • XMLをベースとした認証・認可方式を提供 • 長い歴史があり社内システムを中心に多くのシステムで採用 • しかし、現在のWebシステムには重厚すぎると感じている人が多い © CASAREAL, Inc. All rights reserved. ⇨ OAuth/OpenID Connectの採用が広まる
13.
OAuth/OpenID Connect について © CASAREAL,
Inc. All rights reserved.
14.
OAuthとは? • 3rd Partyアプリケーションに対する認可の標準規格 •
RFC6749: The OAuth 2.0 Authorization Framework、etc. • 特徴 • アクセス・トークン(認可情報)の発行・受け渡しについて規定 • 認可コード・フローなど、目的に応じた複数のフローを定義 • 注意すべき点 • 認証については扱っていない • 現在、OAuth 2.1の仕様策定が進行中(非推奨・削除項目あり) © CASAREAL, Inc. All rights reserved.
15.
一目でわかるOAuth © CASAREAL, Inc.
All rights reserved. SNS Z 次のアプリケーションが連携を求めています。 許可しますか? チャット・ボットα • プロフィールの読み取り • 連絡先の読み取り • メッセージの投稿 はい いいえ
16.
OpenID Connectとは? • 複数サービスにまたがる認証・認可に関する標準規格 •
OpenID Connect Core 1.0 • OpenID Connect Discovery 1.0 • OpenID Connect Session Management 1.0 • etc. • 特徴 • OAuth 2.0を拡張 • 認証フローやIDトークン(認証情報)の発行・受け渡しについて定義 • IDトークンの形式にJWTを採用 © CASAREAL, Inc. All rights reserved.
17.
一目でわかるOpenID Connect © CASAREAL,
Inc. All rights reserved. SNS Z サイン・イン ユーザーID パスワード または次でサイン・インします Google GitLab
18.
JWTとは? • JSONをベースとしたトークン形式の標準規格 • RFC7519:
JSON Web Token (JWT) • RFC7515: JSON Web Signature (JWS) • RFC7516: JSON Web Encryption (JWE) • RFC7517: JSON Web Key (JWK) • RFC7518: JSON Web Algorithms (JWA) • 特徴 • 様々な情報を含むトークンをコンパクトな文字列表現として扱える • 暗号化や署名により偽装や改ざんが困難 © CASAREAL, Inc. All rights reserved.
19.
一目でわかるJWT © CASAREAL, Inc.
All rights reserved. https://jwt.io/
20.
認証・認可の流れ © CASAREAL, Inc.
All rights reserved.
21.
OAuth 2.0で定義されているフロー • 認可コード・フロー •
インプリシット・フロー • リソース・オーナー ・パスワード・クレデンシャル・フロー • クライアント・クレデンシャル・フロー • デバイス・フロー © CASAREAL, Inc. All rights reserved. 非推奨
22.
OpenID Connectで定義されているフロー • 認可コード・フロー •
インプリシット・フロー • ハイブリッド・フロー • CIBA(Client-Initiated Backchannel Authentication)フロー © CASAREAL, Inc. All rights reserved. 今回はOIDC認可コード・フローを利用して SPAがWeb APIを呼び出す流れを説明します 非推奨
23.
まずは用語について • 登場人物 • エンド・ユーザー •
システムを利用する人 • OpenIDプロバイダー • 認証を行い各種トークンを発行す るサーバー • クライアント(Relying Party) • 認証やトークンを要求するアプリ ケーション • リソース・サーバー • リソースを提供するサーバー • やり取りされる情報 • 認可コード • クライアントがエンド・ユーザー により認可されたことを示す情報 • IDトークン • 認証されたエンド・ユーザーに関 する情報 • アクセス・トークン • クライアントに与えられたアクセ ス権を示す情報 • リフレッシュ・トークン • 有効期限が切れたアクセス・トー クンを更新するために必要な情報 © CASAREAL, Inc. All rights reserved.
24.
認証・認可の流れ(アプリケーション実行) © CASAREAL, Inc.
All rights reserved. OpenID プロバイダー クライアント (Webサーバー) リソース ・サーバー (Web API) Webブラウザー クライアント (SPA) URL 認証情報
25.
認証・認可の流れ(ユーザー認証の要求) © CASAREAL, Inc.
All rights reserved. OpenID プロバイダー クライアント (Webサーバー) リソース ・サーバー (Web API) Webブラウザー クライアント (SPA) サイン・イン ・ページ An Req ※An Req = 認証リクエスト(クライアントID、リダイレクトURI、レスポンス・タイプ、スコープ、etc.) An Req 認証情報
26.
認証・認可の流れ(認証と認可コード発行) © CASAREAL, Inc.
All rights reserved. クライアント (Webサーバー) リソース ・サーバー (Web API) Webブラウザー クライアント (SPA) サイン・イン ・ページ OpenID プロバイダー Az Code Az Code ※Az Code = 認可コード An Req 認証情報
27.
認証・認可の流れ(各種トークンの取得) © CASAREAL, Inc.
All rights reserved. OpenID プロバイダー クライアント (Webサーバー) リソース ・サーバー (Web API) Webブラウザー クライアント (SPA) Az Code ID Token Ac Token Ref Token ※ID Token = IDトークン、Ac Token = アクセス・トークン、Ref Token = リフレッシュ・トークン ID Ac Ref 認証情報 Az Code
28.
認証・認可の流れ(リソースへのアクセス) © CASAREAL, Inc.
All rights reserved. OpenID プロバイダー リソース ・サーバー (Web API) Webブラウザー クライアント (SPA) Ac Token Ac Token ID Ac Ref 認証情報 リソース
29.
認証・認可の流れ(トークンの更新) © CASAREAL, Inc.
All rights reserved. OpenID プロバイダー クライアント (Webサーバー) リソース ・サーバー (Web API) Webブラウザー クライアント (SPA) Ref Token Ac Token Ref Token ※ID Token = IDトークン、Ac Token = アクセス・トークン、Ref Token = リフレッシュ・トークン ID Ac Ref New! 認証情報
30.
Keyclaokの利用 © CASAREAL, Inc.
All rights reserved.
31.
サンプル・アプリケーションの構成 © CASAREAL, Inc.
All rights reserved. OpenID プロバイダー クライアント (Webサーバー) リソース ・サーバー (Web API) Webブラウザー クライアント (SPA) 認証情報 サイン・イン ・ページ
32.
Keycloakとは? • オープン・ソースのOpenIDプロバイダー • CNCFインキュベーション・プロジェクトとして開発されている •
Red Hat社による強力なサポートにより人気が高い • OAuth/OpenID ConnectおよびSAMLをサポート • OpenID ConnectにおいてはFinancial-grade API (FAPI)認定 • クラウド・ネイティブに対応 • Java + Quarkusで実装 • コンテナ・イメージとして利用可能 © CASAREAL, Inc. All rights reserved.
33.
Keycloakの実行(Docker Compose) © CASAREAL,
Inc. All rights reserved. services: keycloak: image: quay.io/keycloak/keycloak:25.0.1 ports: - "8080:8080" restart: always environment: KEYCLOAK_ADMIN: admin KEYCLOAK_ADMIN_PASSWORD: P@ssw0rd command: start-dev /keycloak-sample/compose.yaml $ cd keycloak-sample keycloak-sample $ docker compose up -d Docker Compose を利用すれば 簡単に実行できる (※開発モード)
34.
レルムの作成 • レルムとは? • 同一の認証情報で 管理できる範囲のこと •
レルムの中にユーザーや ロール、クライアント などを登録する © CASAREAL, Inc. All rights reserved.
35.
クライアントの登録 • クライアントID • クライアント・タイプ •
コンフィデンシャル・アクセス • パブリック・アクセス • 認証フロー • 各種OAuth/OIDCのフロー • 各種URI • 有効なリダイレクトURI • Webオリジン • etc. © CASAREAL, Inc. All rights reserved.
36.
ロールの作成 • ロールの種類 • レルム・ロール •
クライアント・ロール © CASAREAL, Inc. All rights reserved.
37.
ユーザーとグループの作成 © CASAREAL, Inc.
All rights reserved.
38.
ロールの割り当て • 割り当て対象 • グループ •
ユーザー • 他のロール © CASAREAL, Inc. All rights reserved.
39.
クライアント・スコープの作成 • リソースのアクセス範囲を表現 • OIDC:プロフィール、メール・アドレス、住所、etc. •
OAuth:例)項目の参照、項目の編集、etc. • 目的に応じて権限の付与方法が異なる • ユーザーの権限:ロール(およびクライアント)に関連づける • クライアントの権限:クライアントに関連づける • マッパーを利用してトークンにその他の情報を追加 © CASAREAL, Inc. All rights reserved.
40.
Spring Bootの実装(リソース・サーバー) © CASAREAL,
Inc. All rights reserved. 依存関係に OAuth2 Resource Serverを追加
41.
Spring Bootの実装(リソース・サーバー) © CASAREAL,
Inc. All rights reserved. spring: security: oauth2: resourceserver: jwt: issuer-uri: http://localhost:8080/realms/todo application.yaml アプリケーション設定ファイルに レルムのベースURIを記述
42.
Spring Bootの実装(リソース・サーバー) © CASAREAL,
Inc. All rights reserved. @Configuration @EnableWebSecurity @EnableMethodSecurity public class SecurityConfig { @Bean public SecurityFilterChain securityFilterChain(HttpSecurity httpSecurity) throws Exception { httpSecurity .authorizeHttpRequests(authorize -> authorize .anyRequest().authenticated()) .oauth2ResourceServer(oauth2 -> oauth2.jwt(Customizer.withDefaults())); return httpSecurity.build(); } } SecurityConfig.java JWT Bearerトークンを 検証するように構成
43.
Spring Bootの実装(リソース・サーバー) © CASAREAL,
Inc. All rights reserved. @RestController @RequestMapping("/todos") public class TodoController { @GetMapping @PreAuthorize("hasAuthority('SCOPE_todo:view')") public List<Todo> getAll() { return todos; } } TodoController.java コントローラーのメソッドに アノテーションを付与して JWTのスコープを検証
44.
JavaScriptの実装(SPAクライアント) © CASAREAL, Inc.
All rights reserved. "dependencies": { "keycloak-js": "^25.0.1", "vue": "^3.4.29" }, package.json 依存関係にkeycloak-js (Keycloak公式JavaScript アダプター)を追加
45.
JavaScriptの実装(SPAクライアント) © CASAREAL, Inc.
All rights reserved. const keycloak = new Keycloak({ url: ‘http://localhost:8080', realm: 'todo', clientId: 'todo-client', }); keycloak.init({ onLoad: 'check-sso’, checkLoginIframe: false, }).then(authenticated => { console.log(`User is ${authenticated ? 'authenticated' : 'not authenticated'}`); console.log(`Access Token is ${keycloak.token}`); }).catch(error => { console.error('Failed to initialize adapter:', error); }); OpenIDConnect.js OpenIDプロバイダーに 関する情報を指定して オブジェクトを生成 初期化と同時に ログイン・チェック
46.
JavaScriptの実装(SPAクライアント) • Keycloakオブジェクトの主要なプロパティ/メソッド • login()
: ログインを開始する • logout() : ログアウトする • updateToken() : 期限切れトークンを更新する • authenticated : 認証済み or 未認証 • token : アクセス・トークン • idToken : IDトークン • onTokenExpired : アクセス・トークン期限切れイベント・ハンド ラー • etc. © CASAREAL, Inc. All rights reserved.
47.
JavaScriptの実装(SPAクライアント) © CASAREAL, Inc.
All rights reserved. fetch(`${apiBaseUrl}/todos`, { headers: { 'Authorization': `Bearer ${keycloak.token}` } }).then(response => { if (response.ok) { return response.json(); } else { throw new Error(`API fetch failed.(status = ${response.status})`); } }).then(data => { items.value = data; }).catch(error => { console.error('Failed to initialize adapter:', error); }); OpenIDConnect.js Authorizationヘッダーに Bearerトークンとして アクセス・トークンを指定
48.
まとめ © CASAREAL, Inc.
All rights reserved.
49.
まとめ • OAuth/OpenID Connectは認証・認可の標準規格 •
分散Webシステムの認証・認可として広く普及 • Keycloakを利用すればOpenIDプロバイダーを簡単に利用可能 • 各種プログラミング言語のサポートも充実 © CASAREAL, Inc. All rights reserved.
50.
© CASAREAL, Inc.
All rights reserved. ご清聴ありがとうございました。
51.
© CASAREAL, Inc.
All rights reserved. 〒108-0075 東京都港区港南1-2-70品川シーズンテラス 24階 営業部 ソリューション営業課 03-4405-7866 (9:00~17:00) お問い合わせは下記へお気軽にご連絡ください。
Download