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
MK
Uploaded by
Makoto Kakuta
PDF, PPTX
2,345 views
Microservices /w Spring Security OAuth
2016 JSUG勉強会 その2での発表で使用した資料です。
Software
◦
Read more
7
Save
Share
Embed
Embed presentation
Download
Download as PDF, PPTX
1
/ 48
2
/ 48
3
/ 48
4
/ 48
5
/ 48
6
/ 48
7
/ 48
8
/ 48
9
/ 48
10
/ 48
11
/ 48
12
/ 48
13
/ 48
14
/ 48
15
/ 48
16
/ 48
17
/ 48
18
/ 48
19
/ 48
20
/ 48
21
/ 48
22
/ 48
23
/ 48
24
/ 48
25
/ 48
26
/ 48
27
/ 48
28
/ 48
29
/ 48
30
/ 48
31
/ 48
32
/ 48
33
/ 48
34
/ 48
35
/ 48
36
/ 48
37
/ 48
38
/ 48
39
/ 48
40
/ 48
41
/ 48
42
/ 48
43
/ 48
44
/ 48
45
/ 48
46
/ 48
47
/ 48
48
/ 48
More Related Content
PPTX
最近のKeycloakのご紹介 ~クライアントポリシーとFAPI~
by
Hitachi, Ltd. OSS Solution Center.
PDF
API提供におけるOAuthの役割 #apijp
by
Tatsuo Kudo
PDF
SAML / OpenID Connect / OAuth / SCIM 技術解説 - ID&IT 2014 #idit2014
by
Nov Matake
PDF
なんとなくOAuth怖いって思ってるやつちょっと来い
by
Ryo Ito
PDF
Azure ADとIdentity管理
by
Naohiro Fujie
PDF
OAuth 2.0の概要とセキュリティ
by
Hiroshi Hayakawa
PDF
100121 Scis2010 Itoh
by
Hiroki Itoh
PDF
ID & IT 2013 - OpenID Connect Hands-on
by
Nov Matake
最近のKeycloakのご紹介 ~クライアントポリシーとFAPI~
by
Hitachi, Ltd. OSS Solution Center.
API提供におけるOAuthの役割 #apijp
by
Tatsuo Kudo
SAML / OpenID Connect / OAuth / SCIM 技術解説 - ID&IT 2014 #idit2014
by
Nov Matake
なんとなくOAuth怖いって思ってるやつちょっと来い
by
Ryo Ito
Azure ADとIdentity管理
by
Naohiro Fujie
OAuth 2.0の概要とセキュリティ
by
Hiroshi Hayakawa
100121 Scis2010 Itoh
by
Hiroki Itoh
ID & IT 2013 - OpenID Connect Hands-on
by
Nov Matake
What's hot
PPTX
Azure AD によるリソースの保護 how to protect and govern resources under the Azure AD
by
junichi anno
PPTX
未来のwebに欠かせないREST APIをApache Solr + Drupal8で実装しよう@PHPカンファレンス2016 東京
by
Masayuki Abe
PDF
OAuth2.0によるWeb APIの保護
by
Naohiro Fujie
PPTX
CSS2020 Client Policies on keycloak
by
Hitachi, Ltd. OSS Solution Center.
PPTX
Microsoft Azure のセキュリティ
by
junichi anno
PDF
今更聞けないOAuth2.0
by
Takahiro Sato
PDF
LINEログインの最新アップデートとアプリ連携ウォークスルー
by
Naohiro Fujie
PDF
Idcon11 implicit demo
by
Ryo Ito
PDF
プロトコルから見るID連携
by
Naohiro Fujie
PDF
Share point における id管理と認証・認可
by
Naohiro Fujie
PDF
シングルサインオンの歴史とSAMLへの道のり
by
Shinichi Tomita
PDF
KeycloakのDevice Flow、CIBAについて
by
Hiroyuki Wada
PDF
Spring bootでweb セキュリティ(ログイン認証)編
by
なべ
PPTX
V1.1 CD03 Azure Active Directory B2C/B2B コラボレーションによる Customer Identity and Ac...
by
junichi anno
PDF
[SC07] Azure AD と Ruby で学ぶ OpenID Connect!
by
de:code 2017
PDF
Azure ADとWindows 10によるドメイン環境の拡張
by
Naohiro Fujie
PPTX
OAuth認証について
by
Yoshifumi Sato
PDF
MicrosoftのDID/VC実装概要
by
Naohiro Fujie
PPT
1/5 ADFS 2.0 を使用してWindows Azure との SSO を実現しよう v1.1
by
junichi anno
PPTX
Latest Status of Identity Federation
by
Atsushi Kambara
Azure AD によるリソースの保護 how to protect and govern resources under the Azure AD
by
junichi anno
未来のwebに欠かせないREST APIをApache Solr + Drupal8で実装しよう@PHPカンファレンス2016 東京
by
Masayuki Abe
OAuth2.0によるWeb APIの保護
by
Naohiro Fujie
CSS2020 Client Policies on keycloak
by
Hitachi, Ltd. OSS Solution Center.
Microsoft Azure のセキュリティ
by
junichi anno
今更聞けないOAuth2.0
by
Takahiro Sato
LINEログインの最新アップデートとアプリ連携ウォークスルー
by
Naohiro Fujie
Idcon11 implicit demo
by
Ryo Ito
プロトコルから見るID連携
by
Naohiro Fujie
Share point における id管理と認証・認可
by
Naohiro Fujie
シングルサインオンの歴史とSAMLへの道のり
by
Shinichi Tomita
KeycloakのDevice Flow、CIBAについて
by
Hiroyuki Wada
Spring bootでweb セキュリティ(ログイン認証)編
by
なべ
V1.1 CD03 Azure Active Directory B2C/B2B コラボレーションによる Customer Identity and Ac...
by
junichi anno
[SC07] Azure AD と Ruby で学ぶ OpenID Connect!
by
de:code 2017
Azure ADとWindows 10によるドメイン環境の拡張
by
Naohiro Fujie
OAuth認証について
by
Yoshifumi Sato
MicrosoftのDID/VC実装概要
by
Naohiro Fujie
1/5 ADFS 2.0 を使用してWindows Azure との SSO を実現しよう v1.1
by
junichi anno
Latest Status of Identity Federation
by
Atsushi Kambara
Viewers also liked
PDF
Spring Framework - Spring Security
by
Dzmitry Naskou
PDF
The Meaning of the Platform Organization
by
Simone Cicero
PDF
STUDY ON CUSTOMER EXPECTATION AND EXPERIENCE ON MOBILE NUMBER PORTABILITY
by
Mehul Rathod
PDF
Understanding deep learning requires rethinking generalization (2017) 2 2(2)
by
정훈 서
PDF
Boostez votre carrière avec AXA ! - Épisode 1 : LinkedIn
by
AXA en France
PPTX
New Directions for Digital Branding and Marketing
by
Anandan Pillai
PDF
Estrategia empresarial
by
Eduardo Hurtado
PDF
Alpaca EEF2017 slides
by
j14159
PDF
Lic. Abel Jimenez, JMS Marketing SEO Tijuana, Resume
by
Abel Cardenas
PDF
Deep Dive: Amazon Virtual Private Cloud (March 2017)
by
Julien SIMON
PPTX
IoT Applications based on LoRaWan
by
Daniel Koller
PDF
Event Report - SAP Ariba Live - The quest to make procurement awesome
by
Holger Mueller
DOCX
El trastorno mental del Omelette
by
Alberto Levy
PDF
Go conference 2017 Lightning talk
by
mokelab
PPTX
Balancing cost, quality and access with care in online education: the role of...
by
University of South Africa (Unisa)
PPTX
What Makes Stanford Special
by
Chris Yeh
PDF
2017 ITRC Databreach Summary Report 03212017
by
CRUZ CERDA
PPTX
〇〇なかった話
by
h k
PDF
Feeding Florida Together flyer
by
Sheila Cassidy
PDF
Etude Métiers et Compétences du marketing et de la communication dans un cont...
by
Nicolas Bariteau
Spring Framework - Spring Security
by
Dzmitry Naskou
The Meaning of the Platform Organization
by
Simone Cicero
STUDY ON CUSTOMER EXPECTATION AND EXPERIENCE ON MOBILE NUMBER PORTABILITY
by
Mehul Rathod
Understanding deep learning requires rethinking generalization (2017) 2 2(2)
by
정훈 서
Boostez votre carrière avec AXA ! - Épisode 1 : LinkedIn
by
AXA en France
New Directions for Digital Branding and Marketing
by
Anandan Pillai
Estrategia empresarial
by
Eduardo Hurtado
Alpaca EEF2017 slides
by
j14159
Lic. Abel Jimenez, JMS Marketing SEO Tijuana, Resume
by
Abel Cardenas
Deep Dive: Amazon Virtual Private Cloud (March 2017)
by
Julien SIMON
IoT Applications based on LoRaWan
by
Daniel Koller
Event Report - SAP Ariba Live - The quest to make procurement awesome
by
Holger Mueller
El trastorno mental del Omelette
by
Alberto Levy
Go conference 2017 Lightning talk
by
mokelab
Balancing cost, quality and access with care in online education: the role of...
by
University of South Africa (Unisa)
What Makes Stanford Special
by
Chris Yeh
2017 ITRC Databreach Summary Report 03212017
by
CRUZ CERDA
〇〇なかった話
by
h k
Feeding Florida Together flyer
by
Sheila Cassidy
Etude Métiers et Compétences du marketing et de la communication dans un cont...
by
Nicolas Bariteau
Similar to Microservices /w Spring Security OAuth
PDF
金融向けoへの認証の導入
by
FIDO Alliance
PDF
FAPI (Financial-grade API) and CIBA (Client Initiated Backchannel Authenticat...
by
Tatsuo Kudo
PPTX
NGINXでの認可について考える
by
Hitachi, Ltd. OSS Solution Center.
PDF
OAuth / OpenID Connectを中心とするAPIセキュリティについて #yuzawaws
by
Tatsuo Kudo
PDF
Mobage Connect と Identity 関連技術への取り組み - OpenID Summit Tokyo 2015
by
Toru Yamaguchi
PPTX
FAPI and beyond - よりよいセキュリティのために
by
Nat Sakimura
PDF
OAuth 2.0のResource Serverの作り方
by
Hitachi, Ltd. OSS Solution Center.
PDF
Python で OAuth2 をつかってみよう!
by
Project Samurai
PPTX
今更OAuth1.0についてRFC読んで理解してみた
by
nemupm
PDF
Use JWT access-token on Grails REST API
by
Uehara Junji
PDF
エンタープライズIT環境での OpenID Connect / SCIM の具体的実装方法 idit2014
by
Takashi Yahata
PDF
OpenID Connect - Nat Sakimura at OpenID TechNight #7
by
OpenID Foundation Japan
PPTX
Spring I/O 2015 報告
by
Takuya Iwatsuka
PDF
「金融API向けOAuth」にみるOAuthプロファイリングの実際 #secjaws #finsecjaws01 #oauth #oidc #api
by
Tatsuo Kudo
PDF
FAPI and Beyond: From an specification author's point of view #fapisum - Japa...
by
FinTechLabs.io
PDF
UserManagedAccess_idcon13
by
Ryo Ito
PDF
利用者本位のAPI提供に向けたアイデンティティ (ID) 標準仕様の動向
by
Tatsuo Kudo
PDF
FAPI Security について聞いてきた話(2017/08/18 社内勉強会)
by
Yoko TAMADA
PDF
OAuth 2.0 MAC Authentication
by
Ryo Ito
PDF
OpenStack Study#9 JOSUG
by
Hideki Saito
金融向けoへの認証の導入
by
FIDO Alliance
FAPI (Financial-grade API) and CIBA (Client Initiated Backchannel Authenticat...
by
Tatsuo Kudo
NGINXでの認可について考える
by
Hitachi, Ltd. OSS Solution Center.
OAuth / OpenID Connectを中心とするAPIセキュリティについて #yuzawaws
by
Tatsuo Kudo
Mobage Connect と Identity 関連技術への取り組み - OpenID Summit Tokyo 2015
by
Toru Yamaguchi
FAPI and beyond - よりよいセキュリティのために
by
Nat Sakimura
OAuth 2.0のResource Serverの作り方
by
Hitachi, Ltd. OSS Solution Center.
Python で OAuth2 をつかってみよう!
by
Project Samurai
今更OAuth1.0についてRFC読んで理解してみた
by
nemupm
Use JWT access-token on Grails REST API
by
Uehara Junji
エンタープライズIT環境での OpenID Connect / SCIM の具体的実装方法 idit2014
by
Takashi Yahata
OpenID Connect - Nat Sakimura at OpenID TechNight #7
by
OpenID Foundation Japan
Spring I/O 2015 報告
by
Takuya Iwatsuka
「金融API向けOAuth」にみるOAuthプロファイリングの実際 #secjaws #finsecjaws01 #oauth #oidc #api
by
Tatsuo Kudo
FAPI and Beyond: From an specification author's point of view #fapisum - Japa...
by
FinTechLabs.io
UserManagedAccess_idcon13
by
Ryo Ito
利用者本位のAPI提供に向けたアイデンティティ (ID) 標準仕様の動向
by
Tatsuo Kudo
FAPI Security について聞いてきた話(2017/08/18 社内勉強会)
by
Yoko TAMADA
OAuth 2.0 MAC Authentication
by
Ryo Ito
OpenStack Study#9 JOSUG
by
Hideki Saito
Recently uploaded
PDF
20251122_OWASPNagoya_takei_ITU-T,X.1060,security
by
OWASP Nagoya
PPTX
JavaScript/TypeScript実力強化書 2章のアップデート Forkwell Library
by
Yoshiki Shibukawa
PDF
Gluesync:RDBMS、NoSQL,データレイク間のリアルタイム・データレプリケーション
by
株式会社クライム
PDF
最高峰のストレージとバックアップ:ARTESCA+Veeam:統合型ソフトウェア
by
株式会社クライム
PDF
Veeam&WasabiでトリプルV: クラウドへのランサムウエア対策の決定コンビ
by
株式会社クライム
PDF
N2WS Backup & Recovery と Veeam Backup for AWS
by
株式会社クライム
20251122_OWASPNagoya_takei_ITU-T,X.1060,security
by
OWASP Nagoya
JavaScript/TypeScript実力強化書 2章のアップデート Forkwell Library
by
Yoshiki Shibukawa
Gluesync:RDBMS、NoSQL,データレイク間のリアルタイム・データレプリケーション
by
株式会社クライム
最高峰のストレージとバックアップ:ARTESCA+Veeam:統合型ソフトウェア
by
株式会社クライム
Veeam&WasabiでトリプルV: クラウドへのランサムウエア対策の決定コンビ
by
株式会社クライム
N2WS Backup & Recovery と Veeam Backup for AWS
by
株式会社クライム
Microservices /w Spring Security OAuth
1.
Copyright©2016 NTT corp.
All Rights Reserved. Microservices /w Spring Security OAuth NTT ソフトウェアイノベーションセンタ 角田誠 2016年3月9日
2.
2Copyright©2016 NTT corp.
All Rights Reserved. • 認可フレームワークであるOAuthを,マイクロサービ ス・アーキテクチャで構築されたアプリケーションを構 成する各サービスへのアクセス時に利用することを想定 して,OAuthの実装であるSpring Security OAuth を用いて行ったいくつかの実験についての報告。 本日の内容
3.
3Copyright©2016 NTT corp.
All Rights Reserved. • 「In short, the microservice architectural style is an approach to developing a single application as a suite of small services, each running in its own process and communicating with lightweight mechanisms, often an HTTP resource API.」 • James Lewis, Martin Fowler, • “Microservices a definition of this new architectual term”, • http://martinfowler.com/articles/microservices.html おさらい(Microservices)
4.
4Copyright©2016 NTT corp.
All Rights Reserved. • 単一のアプリケーションを小さなサービス群の組み合わ せとして構築する手法。 • 個々のサービスは自身のプロセス上で動作する。 おさらい(Microservices)
5.
5Copyright©2016 NTT corp.
All Rights Reserved. • スケールさせるときは,アプリケーション全体ではな く,個々のサービスごとに多重化できるので効率が良 い。 おさらい(Microservices)
6.
6Copyright©2016 NTT corp.
All Rights Reserved. • サードパーティ製のアプリケーション(≒クライアント) から,Webサービスを提供するサーバ(≒リソース, サービス)への,限定的なアクセスを可能にする認可フ レームワーク。 • RFC6749(OAuth2) おさらい(OAuth)
7.
7Copyright©2016 NTT corp.
All Rights Reserved. • OAuth以前 - クライアントサーバ型の認証モデル • エンドユーザは,Webサービスにアクセスするための認証情報 をサードパーティ製のアプリケーションに伝える。 おさらい(OAuth) サードパーティ製の アプリケーション (クライアント) Webサービス エンドユーザの権限の 範囲内での 無制限のアクセス
8.
8Copyright©2016 NTT corp.
All Rights Reserved. • OAuthの認証・認可モデル • エンドユーザは,Webサービスにアクセスするための認証情報 をサードパーティ製のアプリケーションに伝える必要がない。 おさらい(OAuth) Webサービス限定されたアクセス アクセスの限定 サードパーティ製の アプリケーション (クライアント)
9.
9Copyright©2016 NTT corp.
All Rights Reserved. • OAuthの四つのロール おさらい(OAuth) クライアント 認可サーバ リソースサーバ ・リソースオーナの許可を得てリソースサー バにアクセスする,ブラウザ上またはWeb サーバ上で動作するアプリケーション。 リソースオーナ ・保護されたリソースを ホストするサーバ。 ・リソースオーナの認証と,リソース オーナから認可を取得し,クライアント にアクセストークンを発行するサーバ。 ・クライアントにリソースサーバ へのアクセスを許可する。 ・エンドユーザ。 アクセストークン
10.
10Copyright©2016 NTT corp.
All Rights Reserved. • 認可グラント • リソースオーナによる認可を示す。 • 認可サーバは認可グラントに基づき,クライアントにアクセス トークンを発行する。 • 四つのタイプがあり,それぞれでアクセストークン発行手順が 異なる。 おさらい(OAuth) クライアントがリソースサーバに アクセスするときに必要なトークン
11.
11Copyright©2016 NTT corp.
All Rights Reserved. • 四つのグラントタイプ • 認可コード • インプリシット • リソースオーナパスワードクレデンシャル • クライアントクレデンシャル おさらい(OAuth) OAuthといって普通にイメージするのはこのあたり。 エンドユーザはクライアントに対し認可の範囲を限定 できる。
12.
12Copyright©2016 NTT corp.
All Rights Reserved. • 認可コードグラント • クライアントからリソースサーバへのアクセスを,エンドユー ザが認可することで,アクセストークンを発行する。 おさらい(OAuth) クライアント 認可サーバ ユーザ エージェント (Webブラウザ) (1)リソースサーバへのアクセス事象発生 (2)認可サーバへの リダイレクト指示 (3)リダイレクト (4)認可要求 (5)認可 要求 (7)認可 (8)認可コード + クライアントへのリダイレクト指示 (10)認可コードによりア クセストークン要求 (9)リダイレクト /w 認可コード (11)アクセストークン (6)認可(エンドユーザはクライアントに対して認可の範囲を限定できる。) リソースサーバ(12)リソースサーバへのアクセス
13.
13Copyright©2016 NTT corp.
All Rights Reserved. • クライアントクレデンシャルグラント • エンドユーザとは関係なく,クライアントを認証し,アクセス トークンを発行する。 おさらい(OAuth) クライアント 認可サーバ (1)リソースサーバへの アクセス事象発生 (2)クライアントの認証情報 (3)アクセストークン リソースサーバ(4)リソースサーバへのアクセス
14.
14Copyright©2016 NTT corp.
All Rights Reserved. • Spring Bootによるサービスの実現 • Eurekaによるサービスの登録・発見 SpringとMicroservices
15.
15Copyright©2016 NTT corp.
All Rights Reserved. • Spring Security OAuth • Spring Securityの関連プロジェクト • 認可サーバ,リソースサーバ,クライアントの作成をサポート • 今回は,Spring Security OAuthの細かな設定などの説明は割 愛。 SpringとOAuth
16.
16Copyright©2016 NTT corp.
All Rights Reserved. • Spring BootやSpring Security OAuthを使った Microservicesなアプリケーションで,サービス(リ ソースサーバ)から他のサービスの呼び出しでも,エン ドユーザが認可した範囲に限定したアクセスを行う。 実現したいこと(1) クライアント エンドユーザが認可した範囲での限定したアクセス Microservicesでいうところのサービスを OAuthのリソースサーバとして実現
17.
17Copyright©2016 NTT corp.
All Rights Reserved. 認可サーバ 認可サーバ • Spring Security OAuthで作ったクライアントやリ ソースサーバが,Eurekaサーバに登録された,多重化 されたリソースサーバや認可サーバのうちのどれかを選 んでアクセスする。 実現したいこと(2) クライアント
18.
18Copyright©2016 NTT corp.
All Rights Reserved. • クライアントからリソースサーバへのアクセス • リソースサーバはクライアントに対して,REST APIを提供す る。 • クライアントは,REST APIに普通にアクセスするときに使う RestTemplateの代わりにOAuth2RestTemplateを使って,リ ソースサーバにアクセスする。 Spring Security OAuth @RestController public class ClientController { @Value("${config.oauth2.resourceURI}") private String resourceUri; @Autowired private OAuth2RestTemplate restTemplate; @RequestMapping("/") public String home() { return restTemplate.getForObject(resourceUri, String.class); } }
19.
19Copyright©2016 NTT corp.
All Rights Reserved. • 認可コードグラントによるリソースサーバへのアクセス の流れ • クライアントからリソースサーバへのアクセスが必要になる。 Spring Security OAuth クライアント リソースサーバ
20.
20Copyright©2016 NTT corp.
All Rights Reserved. • 認可コードグラントによるリソースサーバへのアクセス の流れ • クライアントからリソースサーバへのアクセスが必要になる。 • クライアントは,OAuth2RestTemplateを使いリソースサー バにアクセスしようとする。 Spring Security OAuth クライアント リソースサーバOAuth2 RestTemplate Controller
21.
21Copyright©2016 NTT corp.
All Rights Reserved. • 認可コードグラントによるリソースサーバへのアクセス の流れ • クライアントからリソースサーバへのアクセスが必要になる。 • クライアントは,OAuth2RestTemplateを使いリソースサー バにアクセスしようとする。 • UserRedirectRequiredExceptionが投げられる。 Spring Security OAuth クライアント リソースサーバOAuth2 RestTemplate Controller UserRedirect RequiredException
22.
22Copyright©2016 NTT corp.
All Rights Reserved. • 認可コードグラントによるリソースサーバへのアクセス の流れ • OAuth2ClientContextFilterがキャッチしてブラウザのロケー ションを認可サーバにリダイレクトさせる。 Spring Security OAuth クライアント リソースサーバOAuth2 RestTemplate Controller OAuth2 ClientContextFilter UserRedirect RequiredException 認可サーバ
23.
23Copyright©2016 NTT corp.
All Rights Reserved. • 認可コードグラントによるリソースサーバへのアクセス の流れ • OAuth2ClientContextFilterがキャッチしてブラウザのロケー ションを認可サーバにリダイレクトさせる。 • ユーザの認証・認可が行われる。 Spring Security OAuth クライアント リソースサーバOAuth2 RestTemplate Controller OAuth2 ClientContextFilter 認可サーバ認証・認可
24.
24Copyright©2016 NTT corp.
All Rights Reserved. • 認可コードグラントによるリソースサーバへのアクセス の流れ • OAuth2ClientContextFilterがキャッチしてブラウザのロケー ションを認可サーバにリダイレクトさせる。 • ユーザの認証・認可が行われる。 • 元のクライアントのURLにリダイレクトされ,再度コントロー ラが呼ばれる。 Spring Security OAuth クライアント リソースサーバOAuth2 RestTemplate Controller OAuth2 ClientContextFilter 認可サーバ 認可コード
25.
25Copyright©2016 NTT corp.
All Rights Reserved. • 認可コードグラントによるリソースサーバへのアクセス の流れ • 再度,OAuth2RestTemplateを使いリソースサーバにアクセ スしようとする。 Spring Security OAuth クライアント リソースサーバOAuth2 RestTemplate Controller OAuth2 ClientContextFilter 認可サーバ 認可コード
26.
26Copyright©2016 NTT corp.
All Rights Reserved. • 認可コードグラントによるリソースサーバへのアクセス の流れ • 再度,OAuth2RestTemplateを使いリソースサーバにアクセ スしようとする。 • 認可サーバからアクセストークンを取得する。 Spring Security OAuth クライアント リソースサーバOAuth2 RestTemplate Controller OAuth2 ClientContextFilter 認可サーバ 認可コード 認可コード アクセストークン
27.
27Copyright©2016 NTT corp.
All Rights Reserved. • 認可コードグラントによるリソースサーバへのアクセス の流れ • 再度,OAuth2RestTemplateを使いリソースサーバにアクセ スしようとする。 • 認可サーバからアクセストークンを取得する。 • リソースサーバにアクセスする。 Spring Security OAuth クライアント リソースサーバOAuth2 RestTemplate Controller OAuth2 ClientContextFilter 認可サーバ 認可コード 認可コード アクセストークン アクセストークン
28.
28Copyright©2016 NTT corp.
All Rights Reserved. • Spring BootやSpring Security OAuthを使った Microservicesなアプリケーションで,サービス(リ ソースサーバ)から他のサービスの呼び出しでも,エン ドユーザが認可した範囲に限定したアクセスを行う。 実現したいこと(1) クライアント エンドユーザが認可した範囲での限定したアクセス Microservicesでいうところのサービスを OAuthのリソースサーバとして実現
29.
29Copyright©2016 NTT corp.
All Rights Reserved. • リソースサーバ(A)(サービス)から他のリソースサーバ (B)へのアクセスにOAuthを使うには…。 リソースサーバ(A)から他のリソースサーバ(B)へのアクセス クライアント リソースサーバ (B) リソースサーバ (A) アクセストークン アクセストークン 認可サーバ
30.
30Copyright©2016 NTT corp.
All Rights Reserved. • リソースサーバ(A)(サービス)から他のリソースサーバ (B)へのアクセスにOAuthを使うには…。 • 認可コードグラント? • リソースサーバ(A)にアクセスしているのはクライアントや他のリ ソースサーバであって,エンドユーザではない。 • エンドユーザに認可を求めることができない。 リソースサーバ(A)から他のリソースサーバ(B)へのアクセス クライアント リソースサーバ (B) リソースサーバ (A) アクセストークン アクセストークン 認証・認可 認可サーバ
31.
31Copyright©2016 NTT corp.
All Rights Reserved. • リソースサーバ(A)(サービス)から他のリソースサーバ (B)へのアクセスにOAuthを使うには…。 • クライアントクレデンシャルグラントを使うのが普通(多分)。 • エンドユーザは介入しない。 • リソースサーバ(A)をクライアントとして認可サーバが認証でき る。 • リソースサーバ(A)に与えられたスコープで,リソースサーバ(B) にアクセスできる。 • つまり,エンドユーザの認可は反映されない。 リソースサーバ(A)から他のリソースサーバ(B)へのアクセス 認可サーバ リソースサーバ(A)の認証情報 アクセストークン リソースサーバ (B) リソースサーバ(B)へのアクセス リソースサーバ (A)
32.
32Copyright©2016 NTT corp.
All Rights Reserved. • リソースサーバ(A)(サービス)から他のリソースサーバ (B)へのアクセスにOAuthを使うには…。 • エンドユーザの認可を反映しつつ,リソースサーバ(A)からリ ソースサーバ(B)にアクセスしたい。 リソースサーバ(A)から他のリソースサーバ(B)へのアクセス
33.
33Copyright©2016 NTT corp.
All Rights Reserved. • リソースサーバ(A)(サービス)から他のリソースサーバ (B)へのアクセスにOAuthを使うには…。 • クライアントは,リソースサーバ(A)にアクセスするとき,認 可コードグラントで,ユーザの認可が反映されたアクセストー クンを受け取ることができる。 • リソースサーバ(A)はこのアクセストークンをクライアントか ら受け取る。 リソースサーバ(A)から他のリソースサーバ(B)へのアクセス クライアント リソースサーバ (B) リソースサーバ (A) アクセストークン アクセストークン 認可サーバ
34.
34Copyright©2016 NTT corp.
All Rights Reserved. • リソースサーバ(A)(サービス)から他のリソースサーバ (B)へのアクセスにOAuthを使うには…。 • リソースサーバ(A)がクライアントから受け取ったアクセス トークンをそのままリソースサーバ(B)へのアクセスに使えば …。 • JWT(JSON Web Token)なアクセストークンを使えば,改ざん防 止とリソースサーバ内での検証が可能。 リソースサーバ(A)から他のリソースサーバ(B)へのアクセス クライアント リソースサーバ (B) リソースサーバ (A) アクセストークン アクセストークン 認可サーバ アクセストークン
35.
35Copyright©2016 NTT corp.
All Rights Reserved. • リソースサーバ(A)(サービス)から他のリソースサーバ (B)へのアクセスにOAuthを使うには…。 • リソースサーバ(A)がクライアントから受け取ったアクセス トークンをそのままリソースサーバ(B)へのアクセスに使えば …。 リソースサーバから他のリソースサーバへのアクセス @RequestMapping("/") public String resource(OAuth2Authentication principal) { // 認証情報に含まれるアクセストークンを取得し, String tokenValue = ((OAuth2AuthenticationDetails)principal.getDetails()).getTokenValue(); // リソーサーバ(B)へのアクセスに使う // OAuth2RestTemplateのOAuth2ClientContextに埋め込む OAuth2ClientContext context = ((OAuth2RestTemplate)restTemplate).getOAuth2ClientContext(); context.setAccessToken(new DefaultOAuth2AccessToken(tokenValue)); return "resource server! -> " + restTemplate.getForObject(resourceUri, String.class); }
36.
36Copyright©2016 NTT corp.
All Rights Reserved. • リソースサーバ(A)(サービス)から他のリソースサーバ (B)へのアクセスにOAuthを使うには…。 • リソースサーバ(A)がクライアントから受け取ったアクセス トークンをそのままリソースサーバ(B)へのアクセスに使えば …。 • 期待通りにエンドユーザが認可した権限の範囲で,リソース サーバ(A)からリソースサーバ(B)へのアクセスが可能になる。 リソースサーバから他のリソースサーバへのアクセス
37.
37Copyright©2016 NTT corp.
All Rights Reserved. 認可サーバ 認可サーバ • Spring Security OAuthで作ったクライアントやリ ソースサーバが,Eurekaサーバに登録された,多重化 されたリソースサーバや認可サーバのうちのどれかを選 んでアクセスする。 実現したいこと(2) クライアント
38.
38Copyright©2016 NTT corp.
All Rights Reserved. • クライアントから多重化されたリソースサーバにアクセ スする。 EurekaとSpring Security OAuth 認可サーバ 認可サーバ クライアント
39.
39Copyright©2016 NTT corp.
All Rights Reserved. • クライアントから多重化されたリソースサーバにアクセ スする。 • クライアントから多重化された認可サーバにアクセスす る。 EurekaとSpring Security OAuth 認可サーバ 認可サーバ クライアント
40.
40Copyright©2016 NTT corp.
All Rights Reserved. • クライアントから多重化されたリソースサーバにアクセ スする。 • クライアントから多重化された認可サーバにアクセスす る。 • リソースサーバから多重化された認可サーバにアクセス する。 EurekaとSpring Security OAuth 認可サーバ 認可サーバ クライアント
41.
41Copyright©2016 NTT corp.
All Rights Reserved. • クライアントから多重化されたリソースサーバにアクセ スする。 EurekaとSpring Security OAuth 認可サーバ 認可サーバ クライアント
42.
42Copyright©2016 NTT corp.
All Rights Reserved. • クライアントから多重化されたリソースサーバにアクセ スする。 • Eurekaに登録されたサービスに普通にアクセスするときとほぼ 一緒。 EurekaとSpring Security OAuth @Autowired private OAuth2RestOperations restTemplate; @Autowired private LoadBalancerClient loadBalancer; @RequestMapping("/") public String home() { // resourceNameに該当するサービスを一つ選択しURIを構築する。 String uri = loadBalancer.choose(resourceName).getUri() + resourcePath; return restTemplate.getForObject(uri, String.class); }
43.
43Copyright©2016 NTT corp.
All Rights Reserved. • クライアントから多重化された認可サーバにアクセスす る。 EurekaとSpring Security OAuth 認可サーバ 認可サーバ クライアント
44.
44Copyright©2016 NTT corp.
All Rights Reserved. • クライアントから多重化された認可サーバにアクセスす る。 EurekaとSpring Security OAuth あらかじめ設定した内容に 基づいてSpring Security OAuthが勝手に認可サーバ にアクセスする。
45.
45Copyright©2016 NTT corp.
All Rights Reserved. • クライアントから多重化された認可サーバにアクセスす る。 EurekaとSpring Security OAuth Spring Security OAuth で提供されているクラス を拡張する必要がある。 あらかじめ設定した内容に 基づいてSpring Security OAuthが勝手に認可サーバ にアクセスする。
46.
46Copyright©2016 NTT corp.
All Rights Reserved. • リソースサーバから多重化された認可サーバにアクセス する。 EurekaとSpring Security OAuth 認可サーバ 認可サーバ クライアント
47.
47Copyright©2016 NTT corp.
All Rights Reserved. • リソースサーバから多重化された認可サーバにアクセス する。 • JWT使用時,リソースサーバから認可サーバにアクセスするの は,起動時の一度のみ。 • アクセストークン検証用の鍵を認可サーバに取りに行く。 • org.springframework.boot.autoconfigure.security.oauth2.r esource.ResourceServerTokenServicesConfigurationの中 • リソースサーバ起動時に,Eurekaで見つけた認可サーバに鍵を 取りに行くようにすればOK。 • そもそも,設定ファイル(e.g. application.yml)に鍵を書いて おけば,認可サーバにアクセスする必要はない…。 EurekaとSpring Security OAuth
48.
48Copyright©2016 NTT corp.
All Rights Reserved. • OAuthで,リソースサーバ(A)が他のリソースサーバ (B)にアクセスするときに必要となるアクセストークン は,リソースサーバ(A)がクライアントから受け取った アクセストークンを流用できる。 • OAuthで,クライアントから多重化されたリソース サーバへのアクセスは,多重化されたサービスに普通に アクセスするときとほぼ一緒。 • クライアントやリソースサーバから多重化された認可 サーバへのアクセスは,少し頑張れば可能。 まとめ
Download