Submit Search
Upload
Microservices /w Spring Security OAuth
•
7 likes
•
2,339 views
M
Makoto Kakuta
Follow
2016 JSUG勉強会 その2での発表で使用した資料です。
Read less
Read more
Software
Report
Share
Report
Share
1 of 48
Download now
Download to read offline
Recommended
API提供におけるOAuthの役割 #apijp
API提供におけるOAuthの役割 #apijp
Tatsuo Kudo
基礎からのOAuth 2.0とSpring Security 5.1による実装
基礎からのOAuth 2.0とSpring Security 5.1による実装
Masatoshi Tada
SAML / OpenID Connect / OAuth / SCIM 技術解説 - ID&IT 2014 #idit2014
SAML / OpenID Connect / OAuth / SCIM 技術解説 - ID&IT 2014 #idit2014
Nov Matake
OAuth 2.0の概要とセキュリティ
OAuth 2.0の概要とセキュリティ
Hiroshi Hayakawa
Azure ADとIdentity管理
Azure ADとIdentity管理
Naohiro Fujie
ID & IT 2013 - OpenID Connect Hands-on
ID & IT 2013 - OpenID Connect Hands-on
Nov Matake
なんとなくOAuth怖いって思ってるやつちょっと来い
なんとなくOAuth怖いって思ってるやつちょっと来い
Ryo Ito
最近のKeycloakのご紹介 ~クライアントポリシーとFAPI~
最近のKeycloakのご紹介 ~クライアントポリシーとFAPI~
Hitachi, Ltd. OSS Solution Center.
Recommended
API提供におけるOAuthの役割 #apijp
API提供におけるOAuthの役割 #apijp
Tatsuo Kudo
基礎からのOAuth 2.0とSpring Security 5.1による実装
基礎からのOAuth 2.0とSpring Security 5.1による実装
Masatoshi Tada
SAML / OpenID Connect / OAuth / SCIM 技術解説 - ID&IT 2014 #idit2014
SAML / OpenID Connect / OAuth / SCIM 技術解説 - ID&IT 2014 #idit2014
Nov Matake
OAuth 2.0の概要とセキュリティ
OAuth 2.0の概要とセキュリティ
Hiroshi Hayakawa
Azure ADとIdentity管理
Azure ADとIdentity管理
Naohiro Fujie
ID & IT 2013 - OpenID Connect Hands-on
ID & IT 2013 - OpenID Connect Hands-on
Nov Matake
なんとなくOAuth怖いって思ってるやつちょっと来い
なんとなくOAuth怖いって思ってるやつちょっと来い
Ryo Ito
最近のKeycloakのご紹介 ~クライアントポリシーとFAPI~
最近のKeycloakのご紹介 ~クライアントポリシーとFAPI~
Hitachi, Ltd. OSS Solution Center.
100121 Scis2010 Itoh
100121 Scis2010 Itoh
Hiroki Itoh
CSS2020 Client Policies on keycloak
CSS2020 Client Policies on keycloak
Hitachi, Ltd. OSS Solution Center.
OAuth2.0によるWeb APIの保護
OAuth2.0によるWeb APIの保護
Naohiro Fujie
[SC07] Azure AD と Ruby で学ぶ OpenID Connect!
[SC07] Azure AD と Ruby で学ぶ OpenID Connect!
de:code 2017
KeycloakのDevice Flow、CIBAについて
KeycloakのDevice Flow、CIBAについて
Hiroyuki Wada
Latest Status of Identity Federation
Latest Status of Identity Federation
Atsushi Kambara
Idcon11 implicit demo
Idcon11 implicit demo
Ryo Ito
LINEログインの最新アップデートとアプリ連携ウォークスルー
LINEログインの最新アップデートとアプリ連携ウォークスルー
Naohiro Fujie
OAuth認証について
OAuth認証について
Yoshifumi Sato
シングルサインオンの歴史とSAMLへの道のり
シングルサインオンの歴史とSAMLへの道のり
Shinichi Tomita
MicrosoftのDID/VC実装概要
MicrosoftのDID/VC実装概要
Naohiro Fujie
Share point における id管理と認証・認可
Share point における id管理と認証・認可
Naohiro Fujie
Microsoft Azure のセキュリティ
Microsoft Azure のセキュリティ
junichi anno
Azure AD によるリソースの保護 how to protect and govern resources under the Azure AD
Azure AD によるリソースの保護 how to protect and govern resources under the Azure AD
junichi anno
今更聞けないOAuth2.0
今更聞けないOAuth2.0
Takahiro Sato
プロトコルから見るID連携
プロトコルから見るID連携
Naohiro Fujie
V1.1 CD03 Azure Active Directory B2C/B2B コラボレーションによる Customer Identity and Ac...
V1.1 CD03 Azure Active Directory B2C/B2B コラボレーションによる Customer Identity and Ac...
junichi anno
未来のwebに欠かせないREST APIをApache Solr + Drupal8で実装しよう@PHPカンファレンス2016 東京
未来のwebに欠かせないREST APIをApache Solr + Drupal8で実装しよう@PHPカンファレンス2016 東京
Masayuki Abe
Azure ADとWindows 10によるドメイン環境の拡張
Azure ADとWindows 10によるドメイン環境の拡張
Naohiro Fujie
Spring bootでweb セキュリティ(ログイン認証)編
Spring bootでweb セキュリティ(ログイン認証)編
なべ
Spring Framework - Spring Security
Spring Framework - Spring Security
Dzmitry Naskou
Estrategia empresarial
Estrategia empresarial
Eduardo Hurtado
More Related Content
What's hot
100121 Scis2010 Itoh
100121 Scis2010 Itoh
Hiroki Itoh
CSS2020 Client Policies on keycloak
CSS2020 Client Policies on keycloak
Hitachi, Ltd. OSS Solution Center.
OAuth2.0によるWeb APIの保護
OAuth2.0によるWeb APIの保護
Naohiro Fujie
[SC07] Azure AD と Ruby で学ぶ OpenID Connect!
[SC07] Azure AD と Ruby で学ぶ OpenID Connect!
de:code 2017
KeycloakのDevice Flow、CIBAについて
KeycloakのDevice Flow、CIBAについて
Hiroyuki Wada
Latest Status of Identity Federation
Latest Status of Identity Federation
Atsushi Kambara
Idcon11 implicit demo
Idcon11 implicit demo
Ryo Ito
LINEログインの最新アップデートとアプリ連携ウォークスルー
LINEログインの最新アップデートとアプリ連携ウォークスルー
Naohiro Fujie
OAuth認証について
OAuth認証について
Yoshifumi Sato
シングルサインオンの歴史とSAMLへの道のり
シングルサインオンの歴史とSAMLへの道のり
Shinichi Tomita
MicrosoftのDID/VC実装概要
MicrosoftのDID/VC実装概要
Naohiro Fujie
Share point における id管理と認証・認可
Share point における id管理と認証・認可
Naohiro Fujie
Microsoft Azure のセキュリティ
Microsoft Azure のセキュリティ
junichi anno
Azure AD によるリソースの保護 how to protect and govern resources under the Azure AD
Azure AD によるリソースの保護 how to protect and govern resources under the Azure AD
junichi anno
今更聞けないOAuth2.0
今更聞けないOAuth2.0
Takahiro Sato
プロトコルから見るID連携
プロトコルから見るID連携
Naohiro Fujie
V1.1 CD03 Azure Active Directory B2C/B2B コラボレーションによる Customer Identity and Ac...
V1.1 CD03 Azure Active Directory B2C/B2B コラボレーションによる Customer Identity and Ac...
junichi anno
未来のwebに欠かせないREST APIをApache Solr + Drupal8で実装しよう@PHPカンファレンス2016 東京
未来のwebに欠かせないREST APIをApache Solr + Drupal8で実装しよう@PHPカンファレンス2016 東京
Masayuki Abe
Azure ADとWindows 10によるドメイン環境の拡張
Azure ADとWindows 10によるドメイン環境の拡張
Naohiro Fujie
Spring bootでweb セキュリティ(ログイン認証)編
Spring bootでweb セキュリティ(ログイン認証)編
なべ
What's hot
(20)
100121 Scis2010 Itoh
100121 Scis2010 Itoh
CSS2020 Client Policies on keycloak
CSS2020 Client Policies on keycloak
OAuth2.0によるWeb APIの保護
OAuth2.0によるWeb APIの保護
[SC07] Azure AD と Ruby で学ぶ OpenID Connect!
[SC07] Azure AD と Ruby で学ぶ OpenID Connect!
KeycloakのDevice Flow、CIBAについて
KeycloakのDevice Flow、CIBAについて
Latest Status of Identity Federation
Latest Status of Identity Federation
Idcon11 implicit demo
Idcon11 implicit demo
LINEログインの最新アップデートとアプリ連携ウォークスルー
LINEログインの最新アップデートとアプリ連携ウォークスルー
OAuth認証について
OAuth認証について
シングルサインオンの歴史とSAMLへの道のり
シングルサインオンの歴史とSAMLへの道のり
MicrosoftのDID/VC実装概要
MicrosoftのDID/VC実装概要
Share point における id管理と認証・認可
Share point における id管理と認証・認可
Microsoft Azure のセキュリティ
Microsoft Azure のセキュリティ
Azure AD によるリソースの保護 how to protect and govern resources under the Azure AD
Azure AD によるリソースの保護 how to protect and govern resources under the Azure AD
今更聞けないOAuth2.0
今更聞けないOAuth2.0
プロトコルから見るID連携
プロトコルから見るID連携
V1.1 CD03 Azure Active Directory B2C/B2B コラボレーションによる Customer Identity and Ac...
V1.1 CD03 Azure Active Directory B2C/B2B コラボレーションによる Customer Identity and Ac...
未来のwebに欠かせないREST APIをApache Solr + Drupal8で実装しよう@PHPカンファレンス2016 東京
未来のwebに欠かせないREST APIをApache Solr + Drupal8で実装しよう@PHPカンファレンス2016 東京
Azure ADとWindows 10によるドメイン環境の拡張
Azure ADとWindows 10によるドメイン環境の拡張
Spring bootでweb セキュリティ(ログイン認証)編
Spring bootでweb セキュリティ(ログイン認証)編
Viewers also liked
Spring Framework - Spring Security
Spring Framework - Spring Security
Dzmitry Naskou
Estrategia empresarial
Estrategia empresarial
Eduardo Hurtado
STUDY ON CUSTOMER EXPECTATION AND EXPERIENCE ON MOBILE NUMBER PORTABILITY
STUDY ON CUSTOMER EXPECTATION AND EXPERIENCE ON MOBILE NUMBER PORTABILITY
Mehul Rathod
Etude Métiers et Compétences du marketing et de la communication dans un cont...
Etude Métiers et Compétences du marketing et de la communication dans un cont...
Nicolas Bariteau
Go conference 2017 Lightning talk
Go conference 2017 Lightning talk
mokelab
〇〇なかった話
〇〇なかった話
h k
Alpaca EEF2017 slides
Alpaca EEF2017 slides
j14159
Balancing cost, quality and access with care in online education: the role of...
Balancing cost, quality and access with care in online education: the role of...
University of South Africa (Unisa)
New Directions for Digital Branding and Marketing
New Directions for Digital Branding and Marketing
Anandan Pillai
The Meaning of the Platform Organization
The Meaning of the Platform Organization
Simone Cicero
IoT Applications based on LoRaWan
IoT Applications based on LoRaWan
Daniel Koller
New base 1014 special 26 march 2017 energy news
New base 1014 special 26 march 2017 energy news
Khaled Al Awadi
Understanding deep learning requires rethinking generalization (2017) 2 2(2)
Understanding deep learning requires rethinking generalization (2017) 2 2(2)
정훈 서
Boostez votre carrière avec AXA ! - Épisode 1 : LinkedIn
Boostez votre carrière avec AXA ! - Épisode 1 : LinkedIn
AXA en France
Feeding Florida Together flyer
Feeding Florida Together flyer
Sheila Cassidy
2017 ITRC Databreach Summary Report 03212017
2017 ITRC Databreach Summary Report 03212017
CRUZ CERDA
What Makes Stanford Special
What Makes Stanford Special
Chris Yeh
Lic. Abel Jimenez, JMS Marketing SEO Tijuana, Resume
Lic. Abel Jimenez, JMS Marketing SEO Tijuana, Resume
Abel Cardenas
Event Report - SAP Ariba Live - The quest to make procurement awesome
Event Report - SAP Ariba Live - The quest to make procurement awesome
Holger Mueller
El trastorno mental del Omelette
El trastorno mental del Omelette
Alberto Levy
Viewers also liked
(20)
Spring Framework - Spring Security
Spring Framework - Spring Security
Estrategia empresarial
Estrategia empresarial
STUDY ON CUSTOMER EXPECTATION AND EXPERIENCE ON MOBILE NUMBER PORTABILITY
STUDY ON CUSTOMER EXPECTATION AND EXPERIENCE ON MOBILE NUMBER PORTABILITY
Etude Métiers et Compétences du marketing et de la communication dans un cont...
Etude Métiers et Compétences du marketing et de la communication dans un cont...
Go conference 2017 Lightning talk
Go conference 2017 Lightning talk
〇〇なかった話
〇〇なかった話
Alpaca EEF2017 slides
Alpaca EEF2017 slides
Balancing cost, quality and access with care in online education: the role of...
Balancing cost, quality and access with care in online education: the role of...
New Directions for Digital Branding and Marketing
New Directions for Digital Branding and Marketing
The Meaning of the Platform Organization
The Meaning of the Platform Organization
IoT Applications based on LoRaWan
IoT Applications based on LoRaWan
New base 1014 special 26 march 2017 energy news
New base 1014 special 26 march 2017 energy news
Understanding deep learning requires rethinking generalization (2017) 2 2(2)
Understanding deep learning requires rethinking generalization (2017) 2 2(2)
Boostez votre carrière avec AXA ! - Épisode 1 : LinkedIn
Boostez votre carrière avec AXA ! - Épisode 1 : LinkedIn
Feeding Florida Together flyer
Feeding Florida Together flyer
2017 ITRC Databreach Summary Report 03212017
2017 ITRC Databreach Summary Report 03212017
What Makes Stanford Special
What Makes Stanford Special
Lic. Abel Jimenez, JMS Marketing SEO Tijuana, Resume
Lic. Abel Jimenez, JMS Marketing SEO Tijuana, Resume
Event Report - SAP Ariba Live - The quest to make procurement awesome
Event Report - SAP Ariba Live - The quest to make procurement awesome
El trastorno mental del Omelette
El trastorno mental del Omelette
Similar to Microservices /w Spring Security OAuth
開発者におくるサーバーレスモニタリング
開発者におくるサーバーレスモニタリング
Amazon Web Services Japan
FIWARE の ID 管理、アクセス制御、API 管理
FIWARE の ID 管理、アクセス制御、API 管理
fisuda
Spring social の基礎
Spring social の基礎
Takuya Iwatsuka
App012 linux java_にも対応!_azure_service_fabric_を
App012 linux java_にも対応!_azure_service_fabric_を
Tech Summit 2016
App012 linux java_にも対応!_azure_service_fabric_を
App012 linux java_にも対応!_azure_service_fabric_を
Tech Summit 2016
AWSマネージドサービスをフル活用したヘルスケアIoTプラットフォーム
AWSマネージドサービスをフル活用したヘルスケアIoTプラットフォーム
Hiroki Takeda
OpenID Connect入門
OpenID Connect入門
土岐 孝平
Spring I/O 2015 報告
Spring I/O 2015 報告
Takuya Iwatsuka
Serverless AWS構成でセキュアなSPAを目指す
Serverless AWS構成でセキュアなSPAを目指す
Masayuki Kato
【AWS共催】"Hosted Rancher on AWS" オンラインミートアップ
【AWS共催】"Hosted Rancher on AWS" オンラインミートアップ
Junji Nishihara
Ietf95 http2
Ietf95 http2
Kaoru Maeda
最新Web 通信系API総まくり!WebRTC, Streams, Push api etc.
最新Web 通信系API総まくり!WebRTC, Streams, Push api etc.
Kensaku Komatsu
「金融API向けOAuth」にみるOAuthプロファイリングの実際 #secjaws #finsecjaws01 #oauth #oidc #api
「金融API向けOAuth」にみるOAuthプロファイリングの実際 #secjaws #finsecjaws01 #oauth #oidc #api
Tatsuo Kudo
サーバーレス時代の システム設計ワークショップ
サーバーレス時代の システム設計ワークショップ
Masahiro NAKAYAMA
Chromebook 「だけ」で WebRTCを動かそう
Chromebook 「だけ」で WebRTCを動かそう
mganeko
動画配信プラットフォームOn AWS
動画配信プラットフォームOn AWS
Kiyonori Kitasako
FAPI (Financial-grade API) and CIBA (Client Initiated Backchannel Authenticat...
FAPI (Financial-grade API) and CIBA (Client Initiated Backchannel Authenticat...
Tatsuo Kudo
「Swagger」によるAPI仕様の管理と標準化
「Swagger」によるAPI仕様の管理と標準化
Masatoshi Tsuchino
MicrosoftのOSSへの取り組み
MicrosoftのOSSへの取り組み
Shinichiro Arai
ストリーミング視聴解析の基本とその応用 IPv4・IPv6デュアルソース
ストリーミング視聴解析の基本とその応用 IPv4・IPv6デュアルソース
Masaaki Nabeshima
Similar to Microservices /w Spring Security OAuth
(20)
開発者におくるサーバーレスモニタリング
開発者におくるサーバーレスモニタリング
FIWARE の ID 管理、アクセス制御、API 管理
FIWARE の ID 管理、アクセス制御、API 管理
Spring social の基礎
Spring social の基礎
App012 linux java_にも対応!_azure_service_fabric_を
App012 linux java_にも対応!_azure_service_fabric_を
App012 linux java_にも対応!_azure_service_fabric_を
App012 linux java_にも対応!_azure_service_fabric_を
AWSマネージドサービスをフル活用したヘルスケアIoTプラットフォーム
AWSマネージドサービスをフル活用したヘルスケアIoTプラットフォーム
OpenID Connect入門
OpenID Connect入門
Spring I/O 2015 報告
Spring I/O 2015 報告
Serverless AWS構成でセキュアなSPAを目指す
Serverless AWS構成でセキュアなSPAを目指す
【AWS共催】"Hosted Rancher on AWS" オンラインミートアップ
【AWS共催】"Hosted Rancher on AWS" オンラインミートアップ
Ietf95 http2
Ietf95 http2
最新Web 通信系API総まくり!WebRTC, Streams, Push api etc.
最新Web 通信系API総まくり!WebRTC, Streams, Push api etc.
「金融API向けOAuth」にみるOAuthプロファイリングの実際 #secjaws #finsecjaws01 #oauth #oidc #api
「金融API向けOAuth」にみるOAuthプロファイリングの実際 #secjaws #finsecjaws01 #oauth #oidc #api
サーバーレス時代の システム設計ワークショップ
サーバーレス時代の システム設計ワークショップ
Chromebook 「だけ」で WebRTCを動かそう
Chromebook 「だけ」で WebRTCを動かそう
動画配信プラットフォームOn AWS
動画配信プラットフォームOn AWS
FAPI (Financial-grade API) and CIBA (Client Initiated Backchannel Authenticat...
FAPI (Financial-grade API) and CIBA (Client Initiated Backchannel Authenticat...
「Swagger」によるAPI仕様の管理と標準化
「Swagger」によるAPI仕様の管理と標準化
MicrosoftのOSSへの取り組み
MicrosoftのOSSへの取り組み
ストリーミング視聴解析の基本とその応用 IPv4・IPv6デュアルソース
ストリーミング視聴解析の基本とその応用 IPv4・IPv6デュアルソース
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 now