Download free for 30 days
Sign in
Upload
Language (EN)
Support
Business
Mobile
Social Media
Marketing
Technology
Art & Photos
Career
Design
Education
Presentations & Public Speaking
Government & Nonprofit
Healthcare
Internet
Law
Leadership & Management
Automotive
Engineering
Software
Recruiting & HR
Retail
Sales
Services
Science
Small Business & Entrepreneurship
Food
Environment
Economy & Finance
Data & Analytics
Investor Relations
Sports
Spiritual
News & Politics
Travel
Self Improvement
Real Estate
Entertainment & Humor
Health & Medicine
Devices & Hardware
Lifestyle
Change Language
Language
English
Español
Português
Français
Deutsche
Cancel
Save
Submit search
EN
Uploaded by
Hiroyuki Wada
3,865 views
KeycloakのDevice Flow、CIBAについて
OSSセキュリティ技術の会 第九回勉強会 KeycloakのFAPI CIBA 対応記念の巻 の「KeycloakのDevice Flow、CIBAについて」発表資料です。
Software
◦
Read more
1
Save
Share
Embed
Embed presentation
Download
Download to read offline
1
/ 33
2
/ 33
3
/ 33
4
/ 33
5
/ 33
6
/ 33
7
/ 33
8
/ 33
9
/ 33
10
/ 33
11
/ 33
12
/ 33
13
/ 33
14
/ 33
15
/ 33
16
/ 33
17
/ 33
Most read
18
/ 33
19
/ 33
20
/ 33
21
/ 33
22
/ 33
23
/ 33
24
/ 33
25
/ 33
26
/ 33
Most read
27
/ 33
28
/ 33
29
/ 33
30
/ 33
Most read
31
/ 33
32
/ 33
33
/ 33
More Related Content
PDF
Keycloak拡張入門
by
Hiroyuki Wada
PPTX
Keycloakのステップアップ認証について
by
Hitachi, Ltd. OSS Solution Center.
PDF
今なら間に合う分散型IDとEntra Verified ID
by
Naohiro Fujie
PPTX
Keycloak入門
by
Hiroyuki Wada
PPTX
最近のKeycloakのご紹介 ~クライアントポリシーとFAPI~
by
Hitachi, Ltd. OSS Solution Center.
PPTX
KeycloakでFAPIに対応した高セキュリティなAPIを公開する
by
Hitachi, Ltd. OSS Solution Center.
PPTX
KeycloakでAPI認可に入門する
by
Hitachi, Ltd. OSS Solution Center.
PDF
マイクロにしすぎた結果がこれだよ!
by
mosa siru
Keycloak拡張入門
by
Hiroyuki Wada
Keycloakのステップアップ認証について
by
Hitachi, Ltd. OSS Solution Center.
今なら間に合う分散型IDとEntra Verified ID
by
Naohiro Fujie
Keycloak入門
by
Hiroyuki Wada
最近のKeycloakのご紹介 ~クライアントポリシーとFAPI~
by
Hitachi, Ltd. OSS Solution Center.
KeycloakでFAPIに対応した高セキュリティなAPIを公開する
by
Hitachi, Ltd. OSS Solution Center.
KeycloakでAPI認可に入門する
by
Hitachi, Ltd. OSS Solution Center.
マイクロにしすぎた結果がこれだよ!
by
mosa siru
What's hot
PPTX
NGINXをBFF (Backend for Frontend)として利用した話
by
Hitachi, Ltd. OSS Solution Center.
PDF
FIDO認証によるパスワードレスログイン実装入門
by
Yahoo!デベロッパーネットワーク
PDF
45分間で「ユーザー中心のものづくり」ができるまで詰め込む
by
Yoshiki Hayama
PDF
開発速度が速い #とは(LayerX社内資料)
by
mosa siru
PPTX
Keycloakの実際・翻訳プロジェクト紹介
by
Hiroyuki Wada
PDF
なぜOpenID Connectが必要となったのか、その歴史的背景
by
Tatsuo Kudo
PDF
Keycloak & midPoint の紹介
by
Hiroyuki Wada
PDF
OpenID Connect入門
by
土岐 孝平
PDF
Infrastructure as Code (IaC) 談義 2022
by
Amazon Web Services Japan
PDF
SSIとDIDで何を解決したいのか?(β版)
by
Naohiro Fujie
PDF
OAuth / OpenID Connectを中心とするAPIセキュリティについて #yuzawaws
by
Tatsuo Kudo
PDF
実装して理解するLINE LoginとOpenID Connect入門
by
Naohiro Fujie
PDF
TLS, HTTP/2演習
by
shigeki_ohtsu
PPTX
Amazon EKS によるスマホゲームのバックエンド運用事例
by
gree_tech
PPTX
Azure API Management 俺的マニュアル
by
貴志 上坂
PDF
IDガバナンス&管理の基礎
by
Hitachi, Ltd. OSS Solution Center.
PDF
コンテナとimmutableとわたし。あとセキュリティ。(Kubernetes Novice Tokyo #15 発表資料)
by
NTT DATA Technology & Innovation
PDF
パスワード氾濫時代のID管理とは? ~最新のOpenIDが目指すユーザー認証の効率的な強化~
by
Tatsuo Kudo
PDF
OpenID Connect Client Initiated Backchannel Authentication Flow (CIBA)のご紹介 ~ ...
by
OpenID Foundation Japan
PPTX
kubernetes初心者がKnative Lambda Runtime触ってみた(Kubernetes Novice Tokyo #13 発表資料)
by
NTT DATA Technology & Innovation
NGINXをBFF (Backend for Frontend)として利用した話
by
Hitachi, Ltd. OSS Solution Center.
FIDO認証によるパスワードレスログイン実装入門
by
Yahoo!デベロッパーネットワーク
45分間で「ユーザー中心のものづくり」ができるまで詰め込む
by
Yoshiki Hayama
開発速度が速い #とは(LayerX社内資料)
by
mosa siru
Keycloakの実際・翻訳プロジェクト紹介
by
Hiroyuki Wada
なぜOpenID Connectが必要となったのか、その歴史的背景
by
Tatsuo Kudo
Keycloak & midPoint の紹介
by
Hiroyuki Wada
OpenID Connect入門
by
土岐 孝平
Infrastructure as Code (IaC) 談義 2022
by
Amazon Web Services Japan
SSIとDIDで何を解決したいのか?(β版)
by
Naohiro Fujie
OAuth / OpenID Connectを中心とするAPIセキュリティについて #yuzawaws
by
Tatsuo Kudo
実装して理解するLINE LoginとOpenID Connect入門
by
Naohiro Fujie
TLS, HTTP/2演習
by
shigeki_ohtsu
Amazon EKS によるスマホゲームのバックエンド運用事例
by
gree_tech
Azure API Management 俺的マニュアル
by
貴志 上坂
IDガバナンス&管理の基礎
by
Hitachi, Ltd. OSS Solution Center.
コンテナとimmutableとわたし。あとセキュリティ。(Kubernetes Novice Tokyo #15 発表資料)
by
NTT DATA Technology & Innovation
パスワード氾濫時代のID管理とは? ~最新のOpenIDが目指すユーザー認証の効率的な強化~
by
Tatsuo Kudo
OpenID Connect Client Initiated Backchannel Authentication Flow (CIBA)のご紹介 ~ ...
by
OpenID Foundation Japan
kubernetes初心者がKnative Lambda Runtime触ってみた(Kubernetes Novice Tokyo #13 発表資料)
by
NTT DATA Technology & Innovation
KeycloakのDevice Flow、CIBAについて
1.
KeycloakのDevice Flow、 CIBAについて OSSセキュリティ技術の会 第九回勉強会 KeycloakのFAPI CIBA
対応記念の巻 Hiroyuki Wada / @wadahiro
2.
今日話すこと ● Device Flow、CIBAの紹介 ●
Keycloakでの使い方、設定のポイントとか
3.
Keycloakの設定 Device Flowについて
4.
Device Flow (OAuth 2.0
Device Authorization Grant) ● ブラウザがない/文字入力に制限のあるデバイス上で動くアプリケーション 向けにトークンを発行するフロー ● 例: スマートTV、プリンターなど ● 利用者は別のデバイス (PCやスマホ) で認証/同意する ● (何度かプルリクエストのリレーを経てようやく ) Keycloak 13.0.0で実装された
5.
出所: https://qiita.com/TakahikoKawasaki/items/78eff94cef92741131f0 ※フローの詳細については既に詳しい日本語記事がいくつかあるのでそちらを参照 ・図解デバイスフロー(RFC 8628) ・OAuth
Device Flow(Draft 8)の概要と感想
6.
出所: https://www.lg.com/jp/support/product-help/CT20160005-20151886218724
7.
出所: https://developer.okta.com/blog/2019/02/19/add-oauth-device-flow-to-any-server
8.
Keycloakの設定 設定のポイント
9.
● クライアント設定で、Device Flowを 有効化するだけ ●
基本的にパブリッククライアントで使う ため、不要なフローは無効化しておこ う
10.
● Consent Requiredはオフにしていて も、Device
Flowでは常に(毎回)同意 が要求される(フィッシング対策のた め)
11.
Device Flowの フィッシングと言えば・・・
12.
先月ちょっと話題に ● Microsoft 365のDevice
Flow実 装におけるフィッシング問題 ● 詳しくは @ritou 先生の日本語記 事を参照 https://zenn.dev/ritou/articles /560ee21f03a727 ● Device Flowそのものの問題では ないが、利用する際は注意が必要 出所: https://www.netskope.com/jp/blog/new-phishing-attacks-exploiting-oauth-authentication-flows-part-2
13.
フィッシングへの備え ● 同意画面での説明 ○ どのクライアントがリソースアクセスを要求しているか説明 ○
要求しているscopeについて説明 ● スコープ設計 ○ 必要最低限の権限をクライアントに渡すようにする
14.
※多言語化も可能です ※テーマをカスタマイズすればもっと好きなようにカスタマイズ可能です ※ただし、15.0.2で「Consent Required」を有効にするとトークンリクエストで エラーとなるバグがあります (プルリク提出済み
) https://issues.redhat.com/browse/KEYCLOAK-19237
15.
● デフォルトでいくつかのスコープ は有効 (Assigned) ●
不要なscopeは利用できないよ うにアサイン解除しておく ● ロールスコープマッピングがデ フォルトではフルスコープ許可に なっている ● リソースサーバにてKeycloakの ロールを利用して認可制御する 場合は注意
16.
Keycloakの設定 CIBAについて
17.
CIBA (OpenID Connect Client
Initiated Backchannel Authentication Flow) ● これまた一味違う新しいフロー ● トークンを必要とするアプリケーションと、実際に認証/同意を行う利用者 のデバイスを分離 ● Device Flowと異なり、ユーザを介したリダイレクトは行わない ● 事前にユーザに紐付けられたスマホなどに直接通知される ● その代わり、フロー開始時にユーザを特定するための情報を与える必要 あり (クライアント認証必須) ● こちらもKeycloak 13.0.0で実装された(Pollモードのみ) ● Keycloak 15.0.0ではPingモードも追加された
18.
CIBA (OpenID Connect Client
Initiated Backchannel Authentication Flow) ● ユースケース ○ コールセンターでのユーザ認証、同意取得 ○ 銀行窓口でのユーザ認証(対面での認証) ○ POS端末での支払いの承認 ○ Googleのスマホでログインの機能
19.
出所: https://ritou.hatenablog.com/entry/2019/03/04/005238 ※フローの詳細については既に詳しい日本語記事があるのでそちらを参照 ・実装者による CIBA
解説 ・OIDC Client Initiated Backchannel Authentication Flow (CIBA)とは - 詳細もとい感想編
20.
● OP <=>
認証デバイス(AD) 間のやりとりは仕様では決まっていない ● KeycloakはADとどう通信する・・・? CIBAの範囲 出所: https://openid.net/specs/openid-client-initiated-backchannel-authentication-core-1_0.html#auth_server_obtains_consent 出所: https://ritou.hatenablog.com/entry/2019/03/04/005238
21.
● Keycloakでは Decoupled
Auth Server (ドキュメントでは Authentication Entity) というもの を想定している ● KeycloakとHTTP(S)で相互通信を行う (デフォルトSPI実装では) ● Authentication Entity の実装 (ADとのやりとり) はKeycloakの外側で開発者にお任せ 出所: https://github.com/keycloak/keycloak-community/blob/e750f8cbeeaec5506316b6dec765b01f782ffe88/design/client-initiated-backchannel-authentication-flow.md
22.
Authentication Entity の作り方 KeycloakからのHTTPリクエスト (Authentication
Delegation Request) KeycloakへのHTTPリクエスト (Authentication Result Notification) 出所: 受け取ったトークンで返信する login_hintより、ス マホに通知などし て同意を得る
23.
Keycloakの設定 設定のポイント
24.
<subsystem xmlns="urn:jboss:domain:keycloak-server:1.1"> ... <spi name="ciba-auth-channel"> <default-provider>ciba-http-auth-channel</default-provider> <provider
name="ciba-http-auth-channel" enabled="true"> <properties> <property name="httpAuthenticationChannelUri" value="${env.AUTHENTICATION_ENTITY_URL}"/> </properties> </provider> </spi> </subsystem> Authentication Entity の指定 (standalone(-ha).xml 設定)
25.
/subsystem=keycloak-server/spi=ciba-auth-channel/:add(default-provider=ciba-http-auth-channel) /subsystem=keycloak-server/spi=ciba-auth-channel/provider=ciba-http-auth-channel:add(enabled=tru e,properties={httpAuthenticationChannelUri=${env.AUTHENTICATION_ENTITY_URL}}) Authentication Entity の指定
(CLIで設定の場合)
26.
● クライアント設定で、Access Typeを confidential
にする。 ● 後は、CIBAを有効化するだけ ● こちらも不要なフローは無効化しておく とよい
27.
後は Authentication Entity
を用意 ● ここの実装はCIBAのユースケース次第 ● 設定ではなく開発・・・ ● よく紹介されるコンシューマ向けの用途ではなく、エンタープライズ向けで 何か利用できないか考えて試しに実装してみました
28.
試したユースケースと実装方式 社内のある重要なWebアプリにアクセスする際には、管理者による承認がないとアクセス不可としたい チャットツール(Mattermost)にBotよりDMでメッセージを送りチャットツール上で許可を得る 3) ログイン 6) 承認依頼 7)
許可 1) アクセス 2) 未認証のためリダイレクト (OIDCの認可コードフロー開始 ) 9) アクセス 4) 認証リクエスト (CIBAのフロー開始) 5) Authentication Delegation Request 8) Authentication Result Notification
29.
2) 未認証のためリダイレクト (OIDCの認可コードフロー開始 ) 試したユースケースと実装方式 社内のある重要なWebアプリにアクセスする際には、管理者による承認がないとアクセス不可としたい チャットツール(Mattermost)にBotよりDMでメッセージを送りチャットツール上で許可を得る 3)
ログイン 6) 承認依頼 7) 許可 1) アクセス 9) アクセス 4) 認証リクエスト (CIBAのフロー開始) 5) Authentication Delegation Request 8) Authentication Result Notification ここがCIBAの利 用範囲 このケースでは Keycloak自身がCIBAの クライアントになる
30.
デモ Keycloakのアカウント管理画 面をアプリケーションとみたて て実行
31.
参考) 作ったもの ● https://github.com/wadahiro/mattermost-plugin-keycloak-ciba ○
Mattermost用プラグイン ■ Authentication Entityの役割の実装(HTTP受付、KeycloakにPOST)、Botを 使いDMでユーザとやりとり ○ Keycloak拡張部品 ■ Mattermost用AuthenticationChannelProvider ● デフォルトSPI実装だとMattermostにBearerトークンが弾かれたため泣く 泣く実装 ■ CIBAAuthenticator ● CIBAクライアントの実装 ● 認証フローの最後に必須として設定
32.
Keycloakの設定 まとめ
33.
まとめ ● Keycloakでついに Device
Flow / CIBA が使えるようになりました ● Device Flowはフィッシングを念頭に置いて、ご利用は計画的に ● CIBAの利用例として、社内チャットツールを連携したアクセス許可を試してみ ました ● 皆さんも CIBA のユースケースを考えてみてください!
Download