SlideShare a Scribd company logo
© Hitachi, Ltd. 2017. All rights reserved.
OSSセキュリティ技術の会第2回勉強会
株式会社 日立製作所
OSSソリューションセンタ
2017/11/29
茂木 昂士
Keycloak入門
- OpenID ConnectによるAPIセキュリティ -
© Hitachi, Ltd. 2017. All rights reserved.
自己紹介
1
- 茂木 昂士(もぎ たかし)
- 所属 : 日立製作所 OSSソリューションセンタ
- 業務 : APIセキュリティに関連するOSSの調査・検証
- @IT連載
- Keycloak超入門
- http://www.atmarkit.co.jp/ait/series/7363/
© Hitachi, Ltd. 2017. All rights reserved.
1. APIとセキュリティ
2
© Hitachi, Ltd. 2017. All rights reserved.
APIの利用拡大
3
- 様々な分野でAPIの活用が広まってきている
- 製造や流通業界
- セキュリティが厳しい金融業界でも
- APIの活用による複数業界の融合を狙っている
- API エコノミー構築の重要性
- “利用してもらう”ことが必要
© Hitachi, Ltd. 2017. All rights reserved.
APIにおけるセキュリティ
4
- APIに対するセキュリティが重要になっている
- Key認証やBasic認証
- FW, API Gatewayによる境界防御
- “使いやすさ”と”安全性”が重要
Authorization :
Basic dXNlcjpwYXNzd2Q=
- Basic認証の例
© Hitachi, Ltd. 2017. All rights reserved.
Basic認証によるAPIセキュリティ
5
© Hitachi, Ltd. 2017. All rights reserved.
問題点
6
パスワード漏えいリスク
アクセスコントロールができない
© Hitachi, Ltd. 2017. All rights reserved.
OAuth2 と OpenID Connect
7
- OAuth2
- 認可(Authz)プロトコル
- アクセストークンによる制御
- Scopeによるアクセスコントロールが可能
- OpenID Connect
- 認証(Auth)プロトコル
- OAuthに”認証情報”を追加した (IDToken)
- JWT(“jot”)により認証情報を引き回し
© Hitachi, Ltd. 2017. All rights reserved. 8
Twitterの例
https://www.flickr.com/photos/xmodulo/11378700643
© Hitachi, Ltd. 2017. All rights reserved.
OAuth2によるセキュリティ
9
Access Token
パスワードは渡さない
Scopeによるアクセス制御
© Hitachi, Ltd. 2017. All rights reserved.
OpenID Connectによる認証
10
- ID Token
- OpenID プロバイダーで認証された情報を含む
- 署名済みのJWTを利用
- 署名を検証することでユーザを認証する
ヘッダー.ペイロード.署名
Base64Urlでエンコード後、“.”で結合
© Hitachi, Ltd. 2017. All rights reserved.
ID Tokenの構成
11
eyJhbGciOiJSUzI1NiIsInR5cCIgOiAiSldUIiwia2lkIiA6ICJGSj
g2R2NGM2pUYk5MT2NvNE52WmtVQ0lVbWZZQ3FvcXRP
UWVNZmJoTmxFIn0.eyJqdGkiOiI4YjIyMzM1Yi0yOGE4LT
Q0ZDEtOTJlZi1iMDFkYTgyYmQwYWIiLCJleHAiOjE1MTE4
MzYwNjEsIm5iZiI6MCwiaWF0IjoxNTExODM2MDAxLCJpc3
MiOiJodHRwOi8va2V5Y2xvYWsub3NzLmV4YW1wbGUuY
28uanAvYXV0aC9yZWFsbXMvZGVtbyIsImF1ZCI6ImNsa
WVudCIsInN1YiI6IjI4ZjUzNDk5LThjMzAtNGM1OC1iZDYyL
Tc5N2ExZDZiZmM0NyIsInR5cCI6IklEIiwiYXpwIjoiY2xpZW
50IiwiYXV0aF90aW1lIjowLCJzZXNzaW9uX3N0YXRlIjoiN
mYxNWQxY2UtMDhkNi00NzgzLTliZGQtN2U2YTgzMDZjNT
ZmIiwiYWNyIjoiMSIsIm5hbWUiOiJUYWthc2hpIE1vZ2kiLCJ
wcmVmZXJyZWRfdXNlcm5hbWUiOiJtb2dpIiwiZ2l2ZW5fb
mFtZSI6IlRha2FzaGkiLCJmYW1pbHlfbmFtZSI6Ik1vZ2kifQ
.c1L3q0wOuQCAL8FfUKnsBV22W0BkTkDFtcWKLiPigGx
MTADXs7wkoKX7iSjYmN4iwQJVAoEvoTdT-
9U1NCjTLrD2dWi8ASj7LxG79yeeR--YOy87kJw86Ht3y-
dBCoCFUtK2mz9v2TTSiDXc4LK0qBeUgOsDYs6DoROgzV
PkANA
Header
Payload
Signature
© Hitachi, Ltd. 2017. All rights reserved.
デコード済みID Token
12
{
"jti": "8b22335b-28a8-44d1-92ef-b01da82bd0ab",
"exp": 1511836061,
"nbf": 0,
"iat": 1511836001,
"iss": "http://keycloak.oss.example.co.jp/auth/realms/demo",
"aud": "client",
"sub": "28f53499-8c30-4c58-bd62-797a1d6bfc47",
"typ": "ID",
"azp": "client",
"auth_time": 0,
"session_state": "6f15d1ce-08d6-4783-9bdd-7e6a8306c56f",
"acr": "1",
"name": "Takashi Mogi",
"preferred_username": "mogi",
"given_name": "Takashi",
"family_name": "Mogi"
}
{
"alg": "RS256",
"typ": "JWT",
"kid": "FJ86GcF3jTbNLOco4NvZkUCIUmfYCqoqtOQeMfbhNlE"
}
署名アルゴリズムなど
認証したユーザの情報や
トークンの有効期限など
© Hitachi, Ltd. 2017. All rights reserved.
OpenID Connectによる認証
13
ID Token
“USER”として認証
署名の検証
“USER”であることの確認
© Hitachi, Ltd. 2017. All rights reserved.
2. APIセキュリティにおけるOSS
14
© Hitachi, Ltd. 2017. All rights reserved.
主要なOSS
15
- OpenAM
- 元は商用製品であり、信頼性/安定性が高い
- 導入実績も多い
- 現在はOSSとしての動向が不透明
- Keycloak
- 比較的新しいソフトウェア
- OAuth, OIDC, SAMLに対応している
- 商用ではRed Hatに有償版が提供されている
今回はKeycloakについて紹介
© Hitachi, Ltd. 2017. All rights reserved.
@ITでの連載
16
http://www.keycloak.org
http://www.atmarkit.co.jp/ait/series/7363/
© Hitachi, Ltd. 2017. All rights reserved.
Keycloakの動作環境
17
- OS
- Linux, Windows, Mac
- APサーバ
- Wildfly上で動作
- ダウンロード時点で付属
- データベース
- 初期設定時はH2DB
- PostgreSQL, MySQL, Oracleなど対応
© Hitachi, Ltd. 2017. All rights reserved.
Keycloakの特徴(1/3)
18
- 認可プロバイダとして動作するソフトウェア
- ユーザを認証し、アクセストークンを発行する
- 主要なプロトコルに対応
- OpenID Connect
- OAuth 2.0
- SAML
- OpenID Certificationも取得
※ OpenID Foundationが行う認定
© Hitachi, Ltd. 2017. All rights reserved.
Keycloakの特徴(2/3)
19
Identity Brokering, Social Login
- Twitter, Facebookでログインなど
- SAML, OIDCのプロバイダとも連携
User Federation
- LDAPやADと連携できる
- 既存の資産を利用できる
http://www.keycloak.org/about.html より引用
© Hitachi, Ltd. 2017. All rights reserved.
Keycloakの特徴(3/3)
20
- 豊富なクライアントアダプター
- Keycloakと連携するためのライブラリ
- 主要なFramework,APサーバ向けに提供されている
- Wildfly
- JBoss EAP
- Spring Framework
- Tomcat
- Node.js
- Jetty
© Hitachi, Ltd. 2017. All rights reserved.
そのほかの機能
21
- アクセス制御
- User-Managed Access(UMA)
- クライアントアダプターを使うことで詳細なアクセス
制御が可能
- HA構成
- APサーバのWildflyの機能を使って実現
© Hitachi, Ltd. 2017. All rights reserved. 22
エンドユーザ
APIサーバ
Keycloak
クライアントアダプターサードパーティー
アプリケーション
LDAP
DBMS
1. ログイン
2. コード送信
3.トークン発行
4.トークン付きAPIアクセス
5.トークン検査要求
6.APIレスポンス
Keycloakサーバ
KeycloakによるAPI連携
© Hitachi, Ltd. 2017. All rights reserved.
3. デモ
23
© Hitachi, Ltd. 2017. All rights reserved.
デモ内容
24
- Keycloakの画面説明
- 管理コンソール
- Keycloakでログイン
- Authorization code flow
- Direct access grant
- ID Tokenの中身
- https://jwt.io
© Hitachi, Ltd. 2017. All rights reserved.
株式会社 日立製作所
OSS ソリューションセンター
- OpenID Connectによるシングルサインオン -
Keycloak 入門
2017/11/29
茂木 昂士
END
25
26© Hitachi, Ltd. 2017. All rights reserved.
他社所有商標に関する表示
• HITACHIは、株式会社 日立製作所の商標または登録商標です。
• Wildfly, JBossは米国およびその他の国におけるRed Hat, Inc.の登録商標です。
• Spring Frameworkは米国及びその他の国におけるPivotal Software, Inc. の登録商標です。
• Node.jsは米国およびその他の国におけるJoyent, Inc.の登録商標です。
• Tomcatは米国およびその他の国におけるApache Software Foundationの登録商標です。
• JETTYは米国およびその他の国におけるJETTY NATIONAL, INC の登録商標です。
• その他記載の会社名、製品名などは、それぞれの会社の商標もしくは登録商標です。
画像提供元
- いらすとや http://www.irasutoya.com/
Keycloak入門-OpenID ConnectによるAPIセキュリティ

More Related Content

What's hot (20)

PDF
Grafana LokiではじめるKubernetesロギングハンズオン(NTT Tech Conference #4 ハンズオン資料)
NTT DATA Technology & Innovation
 
PPTX
あなたのところに専用線が届くまで
Tomohiro Sakamoto(Onodera)
 
PDF
IAM Roles Anywhereのない世界とある世界(2022年のAWSアップデートを振り返ろう ~Season 4~ 発表資料)
NTT DATA Technology & Innovation
 
PPTX
Dockerからcontainerdへの移行
Akihiro Suda
 
PPTX
監査要件を有するシステムに対する PostgreSQL 導入の課題と可能性
Ohyama Masanori
 
PDF
3分でわかるAzureでのService Principal
Toru Makabe
 
PPTX
サポート エンジニアが Azure Networking をじっくりたっぷり語りつくす会
ShuheiUda
 
PPTX
Apache Avro vs Protocol Buffers
Seiya Mizuno
 
PPTX
最近のKeycloakのご紹介 ~クライアントポリシーとFAPI~
Hitachi, Ltd. OSS Solution Center.
 
PDF
例外設計における大罪
Takuto Wada
 
PPTX
Keycloakのステップアップ認証について
Hitachi, Ltd. OSS Solution Center.
 
PPTX
Azure API Management 俺的マニュアル
貴志 上坂
 
PDF
OpenAPI 3.0でmicroserviceのAPI定義を試みてハマった話
Daichi Koike
 
PDF
基礎から学ぶ超並列SQLエンジンImpala #cwt2015
Cloudera Japan
 
PDF
Elasticsearch の検索精度のチューニング 〜テストを作って高速かつ安全に〜
Takahiko Ito
 
PPTX
本当は恐ろしい分散システムの話
Kumazaki Hiroki
 
PDF
Kubernetes 基盤における非機能試験の deepdive(Kubernetes Novice Tokyo #17 発表資料)
NTT DATA Technology & Innovation
 
PDF
実践!OpenTelemetry と OSS を使った Observability 基盤の構築(CloudNative Days Tokyo 2022 発...
NTT DATA Technology & Innovation
 
PDF
Kongの概要と導入事例
briscola-tokyo
 
PPTX
KubernetesのRBACを掘り下げてみる(Kubernetes Novice Tokyo #17 発表資料)
NTT DATA Technology & Innovation
 
Grafana LokiではじめるKubernetesロギングハンズオン(NTT Tech Conference #4 ハンズオン資料)
NTT DATA Technology & Innovation
 
あなたのところに専用線が届くまで
Tomohiro Sakamoto(Onodera)
 
IAM Roles Anywhereのない世界とある世界(2022年のAWSアップデートを振り返ろう ~Season 4~ 発表資料)
NTT DATA Technology & Innovation
 
Dockerからcontainerdへの移行
Akihiro Suda
 
監査要件を有するシステムに対する PostgreSQL 導入の課題と可能性
Ohyama Masanori
 
3分でわかるAzureでのService Principal
Toru Makabe
 
サポート エンジニアが Azure Networking をじっくりたっぷり語りつくす会
ShuheiUda
 
Apache Avro vs Protocol Buffers
Seiya Mizuno
 
最近のKeycloakのご紹介 ~クライアントポリシーとFAPI~
Hitachi, Ltd. OSS Solution Center.
 
例外設計における大罪
Takuto Wada
 
Keycloakのステップアップ認証について
Hitachi, Ltd. OSS Solution Center.
 
Azure API Management 俺的マニュアル
貴志 上坂
 
OpenAPI 3.0でmicroserviceのAPI定義を試みてハマった話
Daichi Koike
 
基礎から学ぶ超並列SQLエンジンImpala #cwt2015
Cloudera Japan
 
Elasticsearch の検索精度のチューニング 〜テストを作って高速かつ安全に〜
Takahiko Ito
 
本当は恐ろしい分散システムの話
Kumazaki Hiroki
 
Kubernetes 基盤における非機能試験の deepdive(Kubernetes Novice Tokyo #17 発表資料)
NTT DATA Technology & Innovation
 
実践!OpenTelemetry と OSS を使った Observability 基盤の構築(CloudNative Days Tokyo 2022 発...
NTT DATA Technology & Innovation
 
Kongの概要と導入事例
briscola-tokyo
 
KubernetesのRBACを掘り下げてみる(Kubernetes Novice Tokyo #17 発表資料)
NTT DATA Technology & Innovation
 

Similar to Keycloak入門-OpenID ConnectによるAPIセキュリティ (20)

PDF
Jazug-8th: Azure AKS & FIWARE & Robot
Nobuyuki Matsui
 
PPTX
Keycloakの紹介と最新開発動向
Yuichi Nakamura
 
PDF
IETF96 Update oauth tokbind
Kaoru Maeda
 
PPTX
Keycloakの実際・翻訳プロジェクト紹介
Hiroyuki Wada
 
PDF
Keycloakの動向
Yuichi Nakamura
 
PDF
Oracle Cloud PaaS & IaaS:2018年8月度サービス情報アップデート
オラクルエンジニア通信
 
PPTX
オープンソースカンファレンス OSC 2015 Tokyo/Spring 最新レポート!ownCloud8とMroongaを使った日本語全文検索アプリのご紹介
Yuki Takahashi
 
PDF
OAuth 2.0のResource Serverの作り方
Hitachi, Ltd. OSS Solution Center.
 
PDF
Keycloakの最近のトピック
Hitachi, Ltd. OSS Solution Center.
 
PDF
エンジニアのためのOSSライセンス管理~OSS管理ツールの池の水全部抜く~
Daisuke Morishita
 
PDF
Open shiftmeetup 3scalelt_3
Yuichi Nakamura
 
PDF
Ietf95 http2
Kaoru Maeda
 
PDF
オープンソースのトレンドとビジネス活用2014 〜メリットと安心・安全に活用するポイント〜
ThinkIT_impress
 
PPTX
OSS光と闇
Hirofumi Ichihara
 
PDF
KubeCon + CloudNativeCon North America セキュリティ周りrecap
Hitachi, Ltd. OSS Solution Center.
 
PDF
20150613 Azure最新Update
Keiji Kamebuchi
 
PDF
[db tech showcase Tokyo 2017] D33: Deep Learningや、Analyticsのワークロードを加速するには-Ten...
Insight Technology, Inc.
 
PDF
MySQL 8.0で強化されたGIS機能のご紹介+α:「FOSS4G Tokai 2018 」での発表資料
yoyamasaki
 
PDF
KYOSOPRAS 20191003 登壇資料
KYOSOPRAS
 
PPTX
技術選択とアーキテクトの役割
Toru Yamaguchi
 
Jazug-8th: Azure AKS & FIWARE & Robot
Nobuyuki Matsui
 
Keycloakの紹介と最新開発動向
Yuichi Nakamura
 
IETF96 Update oauth tokbind
Kaoru Maeda
 
Keycloakの実際・翻訳プロジェクト紹介
Hiroyuki Wada
 
Keycloakの動向
Yuichi Nakamura
 
Oracle Cloud PaaS & IaaS:2018年8月度サービス情報アップデート
オラクルエンジニア通信
 
オープンソースカンファレンス OSC 2015 Tokyo/Spring 最新レポート!ownCloud8とMroongaを使った日本語全文検索アプリのご紹介
Yuki Takahashi
 
OAuth 2.0のResource Serverの作り方
Hitachi, Ltd. OSS Solution Center.
 
Keycloakの最近のトピック
Hitachi, Ltd. OSS Solution Center.
 
エンジニアのためのOSSライセンス管理~OSS管理ツールの池の水全部抜く~
Daisuke Morishita
 
Open shiftmeetup 3scalelt_3
Yuichi Nakamura
 
Ietf95 http2
Kaoru Maeda
 
オープンソースのトレンドとビジネス活用2014 〜メリットと安心・安全に活用するポイント〜
ThinkIT_impress
 
OSS光と闇
Hirofumi Ichihara
 
KubeCon + CloudNativeCon North America セキュリティ周りrecap
Hitachi, Ltd. OSS Solution Center.
 
20150613 Azure最新Update
Keiji Kamebuchi
 
[db tech showcase Tokyo 2017] D33: Deep Learningや、Analyticsのワークロードを加速するには-Ten...
Insight Technology, Inc.
 
MySQL 8.0で強化されたGIS機能のご紹介+α:「FOSS4G Tokai 2018 」での発表資料
yoyamasaki
 
KYOSOPRAS 20191003 登壇資料
KYOSOPRAS
 
技術選択とアーキテクトの役割
Toru Yamaguchi
 
Ad

More from Yuichi Nakamura (7)

PDF
Implementing WebAuthn & FAPI supports on Keycloak
Yuichi Nakamura
 
PPTX
About secure oss_sig_20190607
Yuichi Nakamura
 
PDF
Implementing security requirements for banking API system using Open Source ...
Yuichi Nakamura
 
PDF
OAuthのHolder of Key Token
Yuichi Nakamura
 
PDF
OSSセキュリティ技術の会について
Yuichi Nakamura
 
PDF
Keycloak開発入門
Yuichi Nakamura
 
PPTX
OSSセキュリティ技術の会について
Yuichi Nakamura
 
Implementing WebAuthn & FAPI supports on Keycloak
Yuichi Nakamura
 
About secure oss_sig_20190607
Yuichi Nakamura
 
Implementing security requirements for banking API system using Open Source ...
Yuichi Nakamura
 
OAuthのHolder of Key Token
Yuichi Nakamura
 
OSSセキュリティ技術の会について
Yuichi Nakamura
 
Keycloak開発入門
Yuichi Nakamura
 
OSSセキュリティ技術の会について
Yuichi Nakamura
 
Ad

Keycloak入門-OpenID ConnectによるAPIセキュリティ

  • 1. © Hitachi, Ltd. 2017. All rights reserved. OSSセキュリティ技術の会第2回勉強会 株式会社 日立製作所 OSSソリューションセンタ 2017/11/29 茂木 昂士 Keycloak入門 - OpenID ConnectによるAPIセキュリティ -
  • 2. © Hitachi, Ltd. 2017. All rights reserved. 自己紹介 1 - 茂木 昂士(もぎ たかし) - 所属 : 日立製作所 OSSソリューションセンタ - 業務 : APIセキュリティに関連するOSSの調査・検証 - @IT連載 - Keycloak超入門 - http://www.atmarkit.co.jp/ait/series/7363/
  • 3. © Hitachi, Ltd. 2017. All rights reserved. 1. APIとセキュリティ 2
  • 4. © Hitachi, Ltd. 2017. All rights reserved. APIの利用拡大 3 - 様々な分野でAPIの活用が広まってきている - 製造や流通業界 - セキュリティが厳しい金融業界でも - APIの活用による複数業界の融合を狙っている - API エコノミー構築の重要性 - “利用してもらう”ことが必要
  • 5. © Hitachi, Ltd. 2017. All rights reserved. APIにおけるセキュリティ 4 - APIに対するセキュリティが重要になっている - Key認証やBasic認証 - FW, API Gatewayによる境界防御 - “使いやすさ”と”安全性”が重要 Authorization : Basic dXNlcjpwYXNzd2Q= - Basic認証の例
  • 6. © Hitachi, Ltd. 2017. All rights reserved. Basic認証によるAPIセキュリティ 5
  • 7. © Hitachi, Ltd. 2017. All rights reserved. 問題点 6 パスワード漏えいリスク アクセスコントロールができない
  • 8. © Hitachi, Ltd. 2017. All rights reserved. OAuth2 と OpenID Connect 7 - OAuth2 - 認可(Authz)プロトコル - アクセストークンによる制御 - Scopeによるアクセスコントロールが可能 - OpenID Connect - 認証(Auth)プロトコル - OAuthに”認証情報”を追加した (IDToken) - JWT(“jot”)により認証情報を引き回し
  • 9. © Hitachi, Ltd. 2017. All rights reserved. 8 Twitterの例 https://www.flickr.com/photos/xmodulo/11378700643
  • 10. © Hitachi, Ltd. 2017. All rights reserved. OAuth2によるセキュリティ 9 Access Token パスワードは渡さない Scopeによるアクセス制御
  • 11. © Hitachi, Ltd. 2017. All rights reserved. OpenID Connectによる認証 10 - ID Token - OpenID プロバイダーで認証された情報を含む - 署名済みのJWTを利用 - 署名を検証することでユーザを認証する ヘッダー.ペイロード.署名 Base64Urlでエンコード後、“.”で結合
  • 12. © Hitachi, Ltd. 2017. All rights reserved. ID Tokenの構成 11 eyJhbGciOiJSUzI1NiIsInR5cCIgOiAiSldUIiwia2lkIiA6ICJGSj g2R2NGM2pUYk5MT2NvNE52WmtVQ0lVbWZZQ3FvcXRP UWVNZmJoTmxFIn0.eyJqdGkiOiI4YjIyMzM1Yi0yOGE4LT Q0ZDEtOTJlZi1iMDFkYTgyYmQwYWIiLCJleHAiOjE1MTE4 MzYwNjEsIm5iZiI6MCwiaWF0IjoxNTExODM2MDAxLCJpc3 MiOiJodHRwOi8va2V5Y2xvYWsub3NzLmV4YW1wbGUuY 28uanAvYXV0aC9yZWFsbXMvZGVtbyIsImF1ZCI6ImNsa WVudCIsInN1YiI6IjI4ZjUzNDk5LThjMzAtNGM1OC1iZDYyL Tc5N2ExZDZiZmM0NyIsInR5cCI6IklEIiwiYXpwIjoiY2xpZW 50IiwiYXV0aF90aW1lIjowLCJzZXNzaW9uX3N0YXRlIjoiN mYxNWQxY2UtMDhkNi00NzgzLTliZGQtN2U2YTgzMDZjNT ZmIiwiYWNyIjoiMSIsIm5hbWUiOiJUYWthc2hpIE1vZ2kiLCJ wcmVmZXJyZWRfdXNlcm5hbWUiOiJtb2dpIiwiZ2l2ZW5fb mFtZSI6IlRha2FzaGkiLCJmYW1pbHlfbmFtZSI6Ik1vZ2kifQ .c1L3q0wOuQCAL8FfUKnsBV22W0BkTkDFtcWKLiPigGx MTADXs7wkoKX7iSjYmN4iwQJVAoEvoTdT- 9U1NCjTLrD2dWi8ASj7LxG79yeeR--YOy87kJw86Ht3y- dBCoCFUtK2mz9v2TTSiDXc4LK0qBeUgOsDYs6DoROgzV PkANA Header Payload Signature
  • 13. © Hitachi, Ltd. 2017. All rights reserved. デコード済みID Token 12 { "jti": "8b22335b-28a8-44d1-92ef-b01da82bd0ab", "exp": 1511836061, "nbf": 0, "iat": 1511836001, "iss": "http://keycloak.oss.example.co.jp/auth/realms/demo", "aud": "client", "sub": "28f53499-8c30-4c58-bd62-797a1d6bfc47", "typ": "ID", "azp": "client", "auth_time": 0, "session_state": "6f15d1ce-08d6-4783-9bdd-7e6a8306c56f", "acr": "1", "name": "Takashi Mogi", "preferred_username": "mogi", "given_name": "Takashi", "family_name": "Mogi" } { "alg": "RS256", "typ": "JWT", "kid": "FJ86GcF3jTbNLOco4NvZkUCIUmfYCqoqtOQeMfbhNlE" } 署名アルゴリズムなど 認証したユーザの情報や トークンの有効期限など
  • 14. © Hitachi, Ltd. 2017. All rights reserved. OpenID Connectによる認証 13 ID Token “USER”として認証 署名の検証 “USER”であることの確認
  • 15. © Hitachi, Ltd. 2017. All rights reserved. 2. APIセキュリティにおけるOSS 14
  • 16. © Hitachi, Ltd. 2017. All rights reserved. 主要なOSS 15 - OpenAM - 元は商用製品であり、信頼性/安定性が高い - 導入実績も多い - 現在はOSSとしての動向が不透明 - Keycloak - 比較的新しいソフトウェア - OAuth, OIDC, SAMLに対応している - 商用ではRed Hatに有償版が提供されている 今回はKeycloakについて紹介
  • 17. © Hitachi, Ltd. 2017. All rights reserved. @ITでの連載 16 http://www.keycloak.org http://www.atmarkit.co.jp/ait/series/7363/
  • 18. © Hitachi, Ltd. 2017. All rights reserved. Keycloakの動作環境 17 - OS - Linux, Windows, Mac - APサーバ - Wildfly上で動作 - ダウンロード時点で付属 - データベース - 初期設定時はH2DB - PostgreSQL, MySQL, Oracleなど対応
  • 19. © Hitachi, Ltd. 2017. All rights reserved. Keycloakの特徴(1/3) 18 - 認可プロバイダとして動作するソフトウェア - ユーザを認証し、アクセストークンを発行する - 主要なプロトコルに対応 - OpenID Connect - OAuth 2.0 - SAML - OpenID Certificationも取得 ※ OpenID Foundationが行う認定
  • 20. © Hitachi, Ltd. 2017. All rights reserved. Keycloakの特徴(2/3) 19 Identity Brokering, Social Login - Twitter, Facebookでログインなど - SAML, OIDCのプロバイダとも連携 User Federation - LDAPやADと連携できる - 既存の資産を利用できる http://www.keycloak.org/about.html より引用
  • 21. © Hitachi, Ltd. 2017. All rights reserved. Keycloakの特徴(3/3) 20 - 豊富なクライアントアダプター - Keycloakと連携するためのライブラリ - 主要なFramework,APサーバ向けに提供されている - Wildfly - JBoss EAP - Spring Framework - Tomcat - Node.js - Jetty
  • 22. © Hitachi, Ltd. 2017. All rights reserved. そのほかの機能 21 - アクセス制御 - User-Managed Access(UMA) - クライアントアダプターを使うことで詳細なアクセス 制御が可能 - HA構成 - APサーバのWildflyの機能を使って実現
  • 23. © Hitachi, Ltd. 2017. All rights reserved. 22 エンドユーザ APIサーバ Keycloak クライアントアダプターサードパーティー アプリケーション LDAP DBMS 1. ログイン 2. コード送信 3.トークン発行 4.トークン付きAPIアクセス 5.トークン検査要求 6.APIレスポンス Keycloakサーバ KeycloakによるAPI連携
  • 24. © Hitachi, Ltd. 2017. All rights reserved. 3. デモ 23
  • 25. © Hitachi, Ltd. 2017. All rights reserved. デモ内容 24 - Keycloakの画面説明 - 管理コンソール - Keycloakでログイン - Authorization code flow - Direct access grant - ID Tokenの中身 - https://jwt.io
  • 26. © Hitachi, Ltd. 2017. All rights reserved. 株式会社 日立製作所 OSS ソリューションセンター - OpenID Connectによるシングルサインオン - Keycloak 入門 2017/11/29 茂木 昂士 END 25
  • 27. 26© Hitachi, Ltd. 2017. All rights reserved. 他社所有商標に関する表示 • HITACHIは、株式会社 日立製作所の商標または登録商標です。 • Wildfly, JBossは米国およびその他の国におけるRed Hat, Inc.の登録商標です。 • Spring Frameworkは米国及びその他の国におけるPivotal Software, Inc. の登録商標です。 • Node.jsは米国およびその他の国におけるJoyent, Inc.の登録商標です。 • Tomcatは米国およびその他の国におけるApache Software Foundationの登録商標です。 • JETTYは米国およびその他の国におけるJETTY NATIONAL, INC の登録商標です。 • その他記載の会社名、製品名などは、それぞれの会社の商標もしくは登録商標です。 画像提供元 - いらすとや http://www.irasutoya.com/