SlideShare una empresa de Scribd logo
1 de 29
Descargar para leer sin conexión
Copyright	
  (C)	
  DeNA	
  Co.,Ltd.	
  All	
  Rights	
  Reserved.	
  
Mobage Connect と
Identity 関連技術への
取り組み
OpenID Summit 2015
November	
  10,	
  2015	
  
Toru	
  Yamaguchi	
  
Senior	
  Architect	
  	
  
Sub	
  Business	
  Unit	
  Head	
  
Open	
  Pla=orm	
  Business	
  Unit	
  
DeNA	
  Co.,	
  Ltd.	
  	
  
Copyright	
  (C)	
  DeNA	
  Co.,Ltd.	
  All	
  Rights	
  Reserved.	
  
講演者紹介	
  
!  ⽒氏名	
  
⁃  ⼭山⼝口	
  徹	
  (やまぐち	
  とおる)	
  
!  HN	
  
⁃  @zigorou	
  
!  会社	
  
⁃  株式会社ディー・エヌ・エー	
  
!  部署	
  
⁃  オープンプラットフォーム事業本部	
  
!  役職	
  
⁃  副事業本部⻑⾧長	
  シニアアーキテクト	
  
!  仕事	
  
⁃  Mobage	
  やその他協業案件などにおける
システム設計がメイン	
  
2	
  
Copyright	
  (C)	
  DeNA	
  Co.,Ltd.	
  All	
  Rights	
  Reserved.	
  
本⽇日の概要	
  
!  Mobage	
  Connect	
  (OpenID	
  Server)	
  の構築経験で、⼯工夫した点とし
て以下の話をしていきます	
  
⁃  CSRF	
  Token	
  への	
  JWT	
  の利利⽤用	
  
⁃  Access	
  Token	
  への	
  JWT	
  の利利⽤用と	
  Microservices	
  
⁃  Intent	
  URI	
  Scheme	
  と	
  Browser	
  –	
  Native	
  App	
  連携	
  
!  実践的な話につき	
  JWT	
  などの	
  Identity	
  技術の基本的な話はあまりし
ません	
  
3	
  
Copyright	
  (C)	
  DeNA	
  Co.,Ltd.	
  All	
  Rights	
  Reserved.	
  
CSRF	
  Token	
  への	
  JWT	
  の利利⽤用	
  
Mobage	
  Connect	
  と	
  Identity	
  関連技術への取り組み	
  
4	
  
Copyright	
  (C)	
  DeNA	
  Co.,Ltd.	
  All	
  Rights	
  Reserved.	
  
CSRF	
  (Cross	
  Site	
  Request	
  Forgery)	
  
!  CSRF	
  とは上記のような攻撃⼿手法です	
  
⁃  例例えば、ログイン状態で所定の⼿手続きを経ないと本来出来ない⾏行行
為を強制的に⾏行行わせるといった事に使われます	
  
!  このような攻撃が成⽴立立させない為に⾏行行う対策の⼀一つとして	
  CSRF	
  Token
	
  の発⾏行行と検証があります	
  
5	
  
事前の信頼関係	
  
(セッションの確⽴立立)	
  
1.	
  	
  
2.	
  
3.	
  
良良くある	
  CSRF	
  の例例として、	
  
1.  何らかの悪意のある	
  URL	
  を踏ませる	
  
2.  正規の	
  Web	
  サーバーに対する不不正な
リクエストを送出させるようなコンテ
ンツを返却する	
  
3.  ユーザーが意図しないうちに、不不正な
リクエストが送信される	
  
正規のWeb	
  サーバー	
  
悪意のある	
  Web	
  サーバー	
  
Copyright	
  (C)	
  DeNA	
  Co.,Ltd.	
  All	
  Rights	
  Reserved.	
  
良良くある	
  CSRF	
  Token	
  の仕組み	
  
!  Page	
  A	
  で	
  Page	
  Token	
  を発⾏行行し、それを	
  Cache	
  Server	
  (例例えば	
  
memcached	
  や	
  Redis	
  のようなサーバー)	
  に保存し、Page	
  Token	
  が
無いと	
  Page	
  B	
  が⾒見見れないようにする	
  
⁃  消費するたびに	
  Cache	
  から削除すればワンタイム性が得られる	
  
6	
  
hIp://goo.gl/Wfvcz0	
  
Copyright	
  (C)	
  DeNA	
  Co.,Ltd.	
  All	
  Rights	
  Reserved.	
  
良良くある	
  CSRF	
  Token	
  の課題点	
  
!  普段使う分には⼤大した問題ではないのですが、⼤大規模サービスだとあ
ながちバカに出来ない課題があります	
  
⁃  CSRF	
  Token	
  の発⾏行行・検証時に	
  Cache	
  Server	
  とのラウンドトリ
ップが必ず発⽣生してしまうこと	
  
⁃  また	
  CSRF	
  Token	
  の有効期限内、必ず	
  Cache	
  Server	
  に	
  CSRF	
  
Token	
  が存在するようにしておかなければならない	
  
•  Cache	
  Server	
  はしばしば	
  eviction	
  によってデータがロストする	
  
⁃  どのページで発⾏行行された	
  CSRF	
  Token	
  かをあまり検証していない
ケースが多い	
  
•  不不正に	
  CSRF	
  Token	
  が⼊入⼿手されると、クリティカルなページへのリクエ
ストに利利⽤用され兼ねない	
  
!  そこで	
  JWT	
  を利利⽤用します!	
  
7	
  
Copyright	
  (C)	
  DeNA	
  Co.,Ltd.	
  All	
  Rights	
  Reserved.	
  
CSRF	
  Token	
  の	
  JWT	
  Claims	
  表現	
  
!  /typ	
  に	
  csrf_̲token	
  と明記し、/_̲ext	
  に拡張データを⼊入れています	
  
⁃  /_̲ext/a	
  は	
  Page	
  Token	
  の発⾏行行ページの	
  id	
  
⁃  /_̲ext/t	
  は	
  Tracking	
  Cookie	
  の	
  Hash	
  値	
  
⁃  /_̲ext/p	
  は	
  hidden	
  パラメータ等の埋め込み	
  (改ざん防⽌止)	
  
8	
  
(注意)	
  実際の	
  Mobage	
  Connect	
  の	
  CSRF	
  Token	
  と⼀一部フォーマットが異異なります	
  
Copyright	
  (C)	
  DeNA	
  Co.,Ltd.	
  All	
  Rights	
  Reserved.	
  
Cache	
  サーバーは利利⽤用された際に使う	
  (まだ構想段階)	
  
!  基本的には	
  JWT	
  の	
  iat	
  +	
  有効期限に収まっているかをチェックする	
  
⁃  アルゴリズムでの評価	
  
!  有効期限内の場合は	
  Cache	
  に	
  invalidate	
  情報が無い場合は未利利⽤用なので	
  
verified	
  とする	
  
⁃  ある場合は利利⽤用済みなので	
  not	
  verified	
  とする	
  
9	
  
CSRF	
  Token	
  (JWT)	
  の有効期限	
  
(受け⼊入れページごとに定義)	
  
Cache	
  に	
  invalidate	
  された	
  
JWT	
  の	
  jU	
  値を格納する	
  
発⾏行行	
   検証	
  
有効期限	
  
Copyright	
  (C)	
  DeNA	
  Co.,Ltd.	
  All	
  Rights	
  Reserved.	
  
Source	
  AcMon	
  と	
  DesMnaMon	
  AcMon	
  (1)	
  
!  CSRF	
  Token	
  の	
  /_̲ext/a	
  に埋め込まれた値	
  sa1	
  に対して	
  
⁃  da1	
  では	
  sa1	
  で発⾏行行された	
  CSRF	
  Token	
  を受け付ける	
  
⁃  da2,	
  da3	
  では	
  Reject	
  される	
  
10	
  
Source	
  (sa1)	
   Source	
  (sa2)	
  
Source	
  (sa3)	
  
Dest	
  (da1)	
  
accept	
  (sa1)	
  
Dest	
  (da2)	
  
accept	
  (sa2)	
  
Dest	
  (da3)	
  
accept	
  (sa2,	
  sa3)	
  
Reject	
   Reject	
  
Copyright	
  (C)	
  DeNA	
  Co.,Ltd.	
  All	
  Rights	
  Reserved.	
  
Source	
  AcMon	
  と	
  DesMnaMon	
  AcMon	
  (2)	
  
!  アクセス可能な関係値は上記のようになります	
  
⁃  受け⼊入れる	
  Action	
  のホワイトリストを	
  WAF	
  の	
  Router	
  設定に
記述しています	
  
11	
  
Source	
  (sa1)	
   Source	
  (sa2)	
  
Source	
  (sa3)	
  
Dest	
  (da1)	
  
accept	
  (sa1)	
  
Dest	
  (da2)	
  
accept	
  (sa2)	
  
Dest	
  (da3)	
  
accept	
  (sa2,	
  sa3)	
  
Copyright	
  (C)	
  DeNA	
  Co.,Ltd.	
  All	
  Rights	
  Reserved.	
  
その他の拡張ポイント	
  
!  Tracking	
  Cookie	
  検証	
  
⁃  CSRF	
  Token	
  が仮に他者に奪われても	
  Tracking	
  Cookie	
  のハッ
シュ値が⼀一致しない限りは	
  Reject	
  されます	
  
!  埋め込みパラメータの検証	
  
⁃  特に	
  submit	
  前の	
  form	
  には	
  input[@type=“hidden”]	
  のような
埋め込みパラメータが良良く使われます	
  
⁃  これらの値が改ざんされないように、JWT	
  中に	
  object	
  として埋
め込み、実際に送信されたデータと⽐比較して、内容が改ざんされ
ていれば	
  Reject	
  します	
  
12	
  
Copyright	
  (C)	
  DeNA	
  Co.,Ltd.	
  All	
  Rights	
  Reserved.	
  
Access	
  Token	
  への	
  JWT	
  の利利⽤用と	
  Microservices	
  
Mobage	
  Connect	
  と	
  Identity	
  関連技術への取り組み	
  
13	
  
Copyright	
  (C)	
  DeNA	
  Co.,Ltd.	
  All	
  Rights	
  Reserved.	
  
Microservices	
  と	
  Access	
  Token	
  の相性が悪い件	
  
!  Microservices	
  はサービスごとに独⽴立立したインスタンスや	
  DB	
  を持ち、
API	
  をインターフェースとして結合する	
  Thin	
  なやり⽅方	
  
⁃  そのようなケースで	
  Token	
  DB	
  をどう参照するのか?	
  
14	
  
AuthZ	
  Server	
   Token	
  DB	
  
Client	
   Resource	
  Server	
  
Token	
  	
  
Endpoint	
  
1.	
  Token	
  Request	
  
3.	
  Token	
  Response	
  
2.	
  Store	
  Token	
  
4.	
  Request	
  to	
  	
  
Resource	
  Server	
  
異異なるネットワークにある	
  
Token	
  DB	
  をどう参照するか?	
  
Copyright	
  (C)	
  DeNA	
  Co.,Ltd.	
  All	
  Rights	
  Reserved.	
  
OAuth	
  2.0	
  Token	
  IntrospecMon	
  (RFC	
  7662)	
  
!  Introspection	
  Endpoint	
  で	
  Access	
  Token	
  の検証を	
  AuthZ	
  Server	
  
に依頼する事が出来る	
  
⁃  これで⼀一応	
  Microservices	
  にも対応出来るようになる	
  
15	
  
AuthZ	
  Server	
   Token	
  DB	
  
Client	
   Resource	
  Server	
  
Token	
  	
  
Endpoint	
  
1.	
  Token	
  Request	
  
3.	
  Token	
  Response	
  
2.	
  Store	
  Token	
  
6.	
  Lookup	
  Token	
  
4.	
  Request	
  to	
  	
  
Resource	
  Server	
  
IntrospecUon	
  
Endpoint	
  
5.	
  IntrospecUon	
  Request	
  
7.	
  IntrospecUon	
  Response	
  
Copyright	
  (C)	
  DeNA	
  Co.,Ltd.	
  All	
  Rights	
  Reserved.	
  
IntrospecMon	
  API	
  の課題点	
  
!  アーキテクチャにも依るが、API	
  Gateway	
  以下でも	
  Access	
  Token	
  をその
まま通過させて、各	
  Service	
  へのリクエストにした場合、厳密には	
  Service
	
  ごとに	
  Access	
  Token	
  の検証が必要であろう	
  
⁃  速度度重視の	
  API	
  に不不要なラウンドトリップが発⽣生する	
  
⁃  つまり⼤大規模な	
  Microservices	
  に対して、採⽤用を躊躇わざるを得ない	
  
!  ⼀一つの解決策として	
  API	
  Gateway	
  のみ	
  Introspection	
  Endpoint	
  を使うと
なりそう	
  
16	
  
Client	
   API	
  Gateway	
  
API	
  (1)	
  
API	
  (3)	
  
API	
  (2)	
  
1.	
  API	
  Request	
   2.	
  	
  
3.	
  	
  
4.	
  	
  
5.	
  	
  
Copyright	
  (C)	
  DeNA	
  Co.,Ltd.	
  All	
  Rights	
  Reserved.	
  
Access	
  Token	
  に	
  JWT	
  を使う	
  
!  Access	
  Token	
  は	
  exp	
  を迎える前に	
  revoke	
  さえされければ、
Resource	
  Server	
  でのアルゴリズム的な検証のみで良良い	
  
⁃  また	
  /_̲ext/st	
  は	
  Scope	
  Token	
  (どんな権限があるか)	
  
17	
  
(注意)	
  実際の	
  Mobage	
  Connect	
  の	
  Access	
  Token	
  と⼀一部フォーマットが異異なります	
  
Copyright	
  (C)	
  DeNA	
  Co.,Ltd.	
  All	
  Rights	
  Reserved.	
  
18	
  
以降降、構想段階のお話です	
  
Copyright	
  (C)	
  DeNA	
  Co.,Ltd.	
  All	
  Rights	
  Reserved.	
  
Subscribe	
  Endpoint	
  
!  Access	
  Token	
  が	
  revoke	
  された場合に	
  Resource	
  Server	
  側に通知出来る
仕組みを作れば良良い	
  
⁃  他にも	
  AuthZ	
  Server	
  のログインセッションが切切れたら	
  session_̲state
	
  を伝搬させるなど汎⽤用的な	
  PubSub	
  があったら便便利利だと思われる	
  
19	
  
AuthZ	
  Server	
   Token	
  DB	
  
Client	
   Resource	
  Server	
  
Revoke	
  
Endpoint	
  
1.	
  Revoke	
  Request	
  
4.	
  Revoke	
  Response	
  
2.	
  Remove	
  Token	
  
Subscribe	
  
Endpoint	
  
Revoke	
  Token	
  	
  
Subscriber	
  
Endpoint	
  
3.	
  Publish	
  Revoke	
  Event	
  
事前に	
  Subscribe	
  Endpoint	
  で	
  
Revoke	
  Event	
  を	
  subscribe	
  するための	
  	
  
URL	
  を登録しておく	
  	
  
Copyright	
  (C)	
  DeNA	
  Co.,Ltd.	
  All	
  Rights	
  Reserved.	
  
Revoke	
  Event	
  の伝搬	
  
!  上記のようなシステムを組む事で	
  Revoke	
  された	
  Access	
  Token	
  の	
  jti
	
  値などを伝搬させて、Revoke	
  情報のみを各	
  Service	
  に伝える	
  
⁃  そうする事により、API	
  は	
  local	
  通信で	
  revoke	
  された	
  Access	
  
Token	
  かどうかを確認出来るようになる	
  
20	
  
API	
  
Revoked	
  
Token	
  DB	
  
(Redis)	
  
Service	
  
API	
  
Revoked	
  
Token	
  DB	
  
(Redis)	
  
Service	
  
Revoked	
  
Token	
  Publisher	
  
(Redis)	
  
Revoke	
  Token	
  
Subscriber	
  
Endpoint	
  
AuthZ	
  Server	
  
1.	
  Publish	
  Token	
  
Revoked	
  Event	
  
2.	
  Publish	
  to	
  
channel	
   Subscribe	
  
channel	
  
Lookup	
  token	
  
(localhost)	
  
Lookup	
  token	
  
(localhost)	
  
Copyright	
  (C)	
  DeNA	
  Co.,Ltd.	
  All	
  Rights	
  Reserved.	
  
Revoke	
  された	
  Token	
  情報の保持期間	
  
!  基本的には	
  CSRF	
  Token	
  と同じコンセプトでやる	
  
!  つまり、revoke	
  された	
  jti	
  だけ有効期限を迎えるまで、各	
  Service	
  の	
  
Redis	
  で持てば良良い	
  
⁃  それ以降降は	
  exp	
  ⾒見見るだけで判断が付くため	
  
21	
  
Access	
  Token	
  (JWT)	
  の有効期限	
  
Cache	
  に	
  revoke	
  された	
  
JWT	
  の	
  jU	
  値を格納する	
  
発⾏行行	
   Revoke	
  
iat	
   exp	
  
Copyright	
  (C)	
  DeNA	
  Co.,Ltd.	
  All	
  Rights	
  Reserved.	
  
Intent	
  URI	
  Scheme	
  と	
  Browser	
  –	
  NaMve	
  App	
  連携	
  
Mobage	
  Connect	
  と	
  Identity	
  関連技術への取り組み	
  
22	
  
Copyright	
  (C)	
  DeNA	
  Co.,Ltd.	
  All	
  Rights	
  Reserved.	
  
NaMve	
  App	
  に対する	
  OAuth	
  2/OIDC	
  1.0	
  は魔物	
  
!  挙げれば切切りがない位、課題がある	
  
⁃  以下	
  AuthZ	
  Server	
  は	
  Browser	
  や別の	
  App	
  として開くと仮定	
  
!  Native	
  App	
  にどのように	
  access	
  token	
  を渡すか	
  
⁃  Implicit	
  or	
  Authorization	
  Code	
  
⁃  Implicit	
  でやると	
  Custom	
  URI	
  の	
  interception	
  が出来てしまう	
  
(後述)	
  
⁃  でも	
  Native	
  App	
  は	
  public	
  client	
  なので	
  client	
  secret	
  は持てな
いので	
  Authorization	
  Code	
  は無理理では?	
  
!  Native	
  App	
  が継続的に	
  access	
  token	
  を得る為の仕組みをどう実現する
か	
  
⁃  Browser	
  なら定期的に	
  immediate	
  login	
  相当の	
  implicit	
  を続け
れば良良い	
  
⁃  AuthZ	
  Server	
  が	
  Browser	
  や	
  Native	
  App	
  だと定期的にアプリ間
連携する⽻羽⽬目になる	
  	
  
23	
  
Copyright	
  (C)	
  DeNA	
  Co.,Ltd.	
  All	
  Rights	
  Reserved.	
  
Custom	
  URI	
  の中間者攻撃	
  
!  同じ	
  Custom	
  URI	
  を持つ	
  App	
  が複数あったらどうなるか	
  
⁃  先勝ちになる	
  
⁃  つまり、不不正な	
  App	
  に取られると	
  Redirect	
  URI	
  に渡した情報が
盗まれる	
  	
  
24	
  
hIp://tools.ie=.org/html/rfc7636	
  
Copyright	
  (C)	
  DeNA	
  Co.,Ltd.	
  All	
  Rights	
  Reserved.	
  
Custom	
  URI	
  の中間者攻撃への対策	
  
!  Mobage	
  Connect	
  とそれを利利⽤用した	
  Native	
  SDK	
  でも対策が⼊入っていま
す	
  
⁃  但しセンシティブな話なので今⽇日はプロトコルの話はしません	
  
!  今回話すのは、この中間者攻撃を成⽴立立させないようにする⽐比較的簡単
な対策についてお話します	
  
25	
  
Copyright	
  (C)	
  DeNA	
  Co.,Ltd.	
  All	
  Rights	
  Reserved.	
  
Intent	
  URI	
  Scheme	
  (Chrome)	
  
!  Chrome	
  for	
  Android	
  の機能です	
  
⁃  https://developer.chrome.com/multidevice/android/intents	
  
!  Android	
  の	
  Intent	
  Filter	
  の機能を詳細に指定して	
  Native	
  App	
  を起動
させる事が出来ます	
  
26	
  
intent:{origin}{/path}{?queries*}#Intent	
  
	
  	
  	
  	
  {;package,action,category,component,scheme}	
  
	
  	
  	
  	
  ;end	
  
intent:appId/callback?	
  
	
  	
  	
  	
  access_token=xyz123&state=abcd1234	
  
	
  	
  	
  	
  #Intent;package=jp.or.openid;	
  
	
  	
  	
  	
  scheme=custom-­‐scheme;end	
  
URI	
  
Template	
  
URI	
  
Copyright	
  (C)	
  DeNA	
  Co.,Ltd.	
  All	
  Rights	
  Reserved.	
  
Intent	
  URI	
  Scheme	
  (Chrome)	
  
!  上記のように	
  Original	
  URI	
  を	
  Intent	
  URI	
  Scheme	
  形式に書き直します	
  
!  さらに⾚赤字の部分の	
  package	
  を明確に指定します	
  
⁃  この	
  package	
  は	
  AuthZ	
  Server	
  で事前に	
  Redirect	
  URI	
  のホワイトリ
スト登録時に⼀一緒に登録しておきます	
  
!  このようにする事で、不不正な	
  package	
  に対してそもそも	
  AuthZ	
  Response
	
  を返さないようにする事が出来ます	
  
27	
  
custom-­‐scheme:appId/callback?	
  
	
  	
  	
  	
  access_token=xyz123&state=abcd1234	
  
intent:appId/callback?	
  
	
  	
  	
  	
  access_token=xyz123&state=abcd1234	
  
	
  	
  	
  	
  #Intent;package=jp.or.openid;	
  
	
  	
  	
  	
  scheme=custom-­‐scheme;end	
  
Original	
  
URI	
  
Intent	
  	
  
URI	
  
Copyright	
  (C)	
  DeNA	
  Co.,Ltd.	
  All	
  Rights	
  Reserved.	
  
諸注意	
  
!  この仕組みは前述の通り	
  Chrome	
  for	
  Android	
  独⾃自の物なので、iOS	
  の	
  
Mobile	
  Safari	
  では適⽤用出来ない	
  
⁃  Android/iOS	
  共に、もっと確かな別の仕組みの導⼊入が⼤大前提	
  
28	
  
Copyright	
  (C)	
  DeNA	
  Co.,Ltd.	
  All	
  Rights	
  Reserved.	
  
ご清聴ありがとうございました	
  
!  時間があれば質疑応答	
  
29	
  

Más contenido relacionado

La actualidad más candente

Latest Status of Identity Federation
Latest Status of Identity FederationLatest Status of Identity Federation
Latest Status of Identity FederationAtsushi Kambara
 
API提供におけるOAuthの役割 #apijp
API提供におけるOAuthの役割 #apijpAPI提供におけるOAuthの役割 #apijp
API提供におけるOAuthの役割 #apijpTatsuo Kudo
 
ID連携のあるとき~、ないとき~ #エンプラ編
ID連携のあるとき~、ないとき~ #エンプラ編ID連携のあるとき~、ないとき~ #エンプラ編
ID連携のあるとき~、ないとき~ #エンプラ編Takashi Yahata
 
OpenID ConnectとAndroidアプリのログインサイクル
OpenID ConnectとAndroidアプリのログインサイクルOpenID ConnectとAndroidアプリのログインサイクル
OpenID ConnectとAndroidアプリのログインサイクルMasaru Kurahayashi
 
マイクロWebアプリケーション - Developers.IO 2016
マイクロWebアプリケーション - Developers.IO 2016マイクロWebアプリケーション - Developers.IO 2016
マイクロWebアプリケーション - Developers.IO 2016都元ダイスケ Miyamoto
 
認証の課題とID連携の実装 〜ハンズオン〜
認証の課題とID連携の実装 〜ハンズオン〜認証の課題とID連携の実装 〜ハンズオン〜
認証の課題とID連携の実装 〜ハンズオン〜Masaru Kurahayashi
 
#idcon 15th ritou 2factor auth
#idcon 15th ritou 2factor auth#idcon 15th ritou 2factor auth
#idcon 15th ritou 2factor authRyo Ito
 
IETF90 Web関連WG報告 #isocjp
IETF90 Web関連WG報告 #isocjpIETF90 Web関連WG報告 #isocjp
IETF90 Web関連WG報告 #isocjpKaoru Maeda
 
OpenID ConnectとSCIMによるエンタープライズでのID連携活用に向けて
OpenID ConnectとSCIMによるエンタープライズでのID連携活用に向けてOpenID ConnectとSCIMによるエンタープライズでのID連携活用に向けて
OpenID ConnectとSCIMによるエンタープライズでのID連携活用に向けてTakashi Yahata
 
PlayFramework1.2.4におけるWebSocket
PlayFramework1.2.4におけるWebSocketPlayFramework1.2.4におけるWebSocket
PlayFramework1.2.4におけるWebSocketKazuhiro Hara
 
認証技術、デジタルアイデンティティ技術の最新動向
認証技術、デジタルアイデンティティ技術の最新動向認証技術、デジタルアイデンティティ技術の最新動向
認証技術、デジタルアイデンティティ技術の最新動向Tatsuo Kudo
 
Microservices /w Spring Security OAuth
Microservices /w Spring Security OAuthMicroservices /w Spring Security OAuth
Microservices /w Spring Security OAuthMakoto Kakuta
 
なぜOpenID Connectが必要となったのか、その歴史的背景
なぜOpenID Connectが必要となったのか、その歴史的背景なぜOpenID Connectが必要となったのか、その歴史的背景
なぜOpenID Connectが必要となったのか、その歴史的背景Tatsuo Kudo
 
OAuth認証再考からのOpenID Connect #devlove
OAuth認証再考からのOpenID Connect #devloveOAuth認証再考からのOpenID Connect #devlove
OAuth認証再考からのOpenID Connect #devloveNov Matake
 
俺が考えた最強のID連携デザインパターン
俺が考えた最強のID連携デザインパターン俺が考えた最強のID連携デザインパターン
俺が考えた最強のID連携デザインパターンMasaru Kurahayashi
 
OpenID Connect 入門 〜コンシューマーにおけるID連携のトレンド〜
OpenID Connect 入門 〜コンシューマーにおけるID連携のトレンド〜OpenID Connect 入門 〜コンシューマーにおけるID連携のトレンド〜
OpenID Connect 入門 〜コンシューマーにおけるID連携のトレンド〜Masaru Kurahayashi
 
DeNA private cloudのその後 #denatechcon
DeNA private cloudのその後 #denatechconDeNA private cloudのその後 #denatechcon
DeNA private cloudのその後 #denatechconDeNA
 
[デブサミ2012]趣味と実益の脆弱性発見
[デブサミ2012]趣味と実益の脆弱性発見[デブサミ2012]趣味と実益の脆弱性発見
[デブサミ2012]趣味と実益の脆弱性発見Yosuke HASEGAWA
 
SAML / OpenID Connect / OAuth / SCIM 技術解説 - ID&IT 2014 #idit2014
SAML / OpenID Connect / OAuth / SCIM 技術解説  - ID&IT 2014 #idit2014SAML / OpenID Connect / OAuth / SCIM 技術解説  - ID&IT 2014 #idit2014
SAML / OpenID Connect / OAuth / SCIM 技術解説 - ID&IT 2014 #idit2014Nov Matake
 
安全なID連携のハウツー
安全なID連携のハウツー安全なID連携のハウツー
安全なID連携のハウツーMasaru Kurahayashi
 

La actualidad más candente (20)

Latest Status of Identity Federation
Latest Status of Identity FederationLatest Status of Identity Federation
Latest Status of Identity Federation
 
API提供におけるOAuthの役割 #apijp
API提供におけるOAuthの役割 #apijpAPI提供におけるOAuthの役割 #apijp
API提供におけるOAuthの役割 #apijp
 
ID連携のあるとき~、ないとき~ #エンプラ編
ID連携のあるとき~、ないとき~ #エンプラ編ID連携のあるとき~、ないとき~ #エンプラ編
ID連携のあるとき~、ないとき~ #エンプラ編
 
OpenID ConnectとAndroidアプリのログインサイクル
OpenID ConnectとAndroidアプリのログインサイクルOpenID ConnectとAndroidアプリのログインサイクル
OpenID ConnectとAndroidアプリのログインサイクル
 
マイクロWebアプリケーション - Developers.IO 2016
マイクロWebアプリケーション - Developers.IO 2016マイクロWebアプリケーション - Developers.IO 2016
マイクロWebアプリケーション - Developers.IO 2016
 
認証の課題とID連携の実装 〜ハンズオン〜
認証の課題とID連携の実装 〜ハンズオン〜認証の課題とID連携の実装 〜ハンズオン〜
認証の課題とID連携の実装 〜ハンズオン〜
 
#idcon 15th ritou 2factor auth
#idcon 15th ritou 2factor auth#idcon 15th ritou 2factor auth
#idcon 15th ritou 2factor auth
 
IETF90 Web関連WG報告 #isocjp
IETF90 Web関連WG報告 #isocjpIETF90 Web関連WG報告 #isocjp
IETF90 Web関連WG報告 #isocjp
 
OpenID ConnectとSCIMによるエンタープライズでのID連携活用に向けて
OpenID ConnectとSCIMによるエンタープライズでのID連携活用に向けてOpenID ConnectとSCIMによるエンタープライズでのID連携活用に向けて
OpenID ConnectとSCIMによるエンタープライズでのID連携活用に向けて
 
PlayFramework1.2.4におけるWebSocket
PlayFramework1.2.4におけるWebSocketPlayFramework1.2.4におけるWebSocket
PlayFramework1.2.4におけるWebSocket
 
認証技術、デジタルアイデンティティ技術の最新動向
認証技術、デジタルアイデンティティ技術の最新動向認証技術、デジタルアイデンティティ技術の最新動向
認証技術、デジタルアイデンティティ技術の最新動向
 
Microservices /w Spring Security OAuth
Microservices /w Spring Security OAuthMicroservices /w Spring Security OAuth
Microservices /w Spring Security OAuth
 
なぜOpenID Connectが必要となったのか、その歴史的背景
なぜOpenID Connectが必要となったのか、その歴史的背景なぜOpenID Connectが必要となったのか、その歴史的背景
なぜOpenID Connectが必要となったのか、その歴史的背景
 
OAuth認証再考からのOpenID Connect #devlove
OAuth認証再考からのOpenID Connect #devloveOAuth認証再考からのOpenID Connect #devlove
OAuth認証再考からのOpenID Connect #devlove
 
俺が考えた最強のID連携デザインパターン
俺が考えた最強のID連携デザインパターン俺が考えた最強のID連携デザインパターン
俺が考えた最強のID連携デザインパターン
 
OpenID Connect 入門 〜コンシューマーにおけるID連携のトレンド〜
OpenID Connect 入門 〜コンシューマーにおけるID連携のトレンド〜OpenID Connect 入門 〜コンシューマーにおけるID連携のトレンド〜
OpenID Connect 入門 〜コンシューマーにおけるID連携のトレンド〜
 
DeNA private cloudのその後 #denatechcon
DeNA private cloudのその後 #denatechconDeNA private cloudのその後 #denatechcon
DeNA private cloudのその後 #denatechcon
 
[デブサミ2012]趣味と実益の脆弱性発見
[デブサミ2012]趣味と実益の脆弱性発見[デブサミ2012]趣味と実益の脆弱性発見
[デブサミ2012]趣味と実益の脆弱性発見
 
SAML / OpenID Connect / OAuth / SCIM 技術解説 - ID&IT 2014 #idit2014
SAML / OpenID Connect / OAuth / SCIM 技術解説  - ID&IT 2014 #idit2014SAML / OpenID Connect / OAuth / SCIM 技術解説  - ID&IT 2014 #idit2014
SAML / OpenID Connect / OAuth / SCIM 技術解説 - ID&IT 2014 #idit2014
 
安全なID連携のハウツー
安全なID連携のハウツー安全なID連携のハウツー
安全なID連携のハウツー
 

Similar a Mobage Connect と Identity 関連技術への取り組み - OpenID Summit Tokyo 2015

脆弱性事例に学ぶセキュアコーディング「SSL/TLS証明書検証」編 (KOF2014)
脆弱性事例に学ぶセキュアコーディング「SSL/TLS証明書検証」編 (KOF2014)脆弱性事例に学ぶセキュアコーディング「SSL/TLS証明書検証」編 (KOF2014)
脆弱性事例に学ぶセキュアコーディング「SSL/TLS証明書検証」編 (KOF2014)JPCERT Coordination Center
 
サーバーレスで ガチ本番運用までやってるお話し
サーバーレスで ガチ本番運用までやってるお話しサーバーレスで ガチ本番運用までやってるお話し
サーバーレスで ガチ本番運用までやってるお話しAkira Nagata
 
認証/認可が実現する安全で高速分析可能な分析処理基盤
認証/認可が実現する安全で高速分析可能な分析処理基盤認証/認可が実現する安全で高速分析可能な分析処理基盤
認証/認可が実現する安全で高速分析可能な分析処理基盤Masahiro Kiura
 
FAPI and Beyond: From an specification author's point of view #fapisum - Japa...
FAPI and Beyond: From an specification author's point of view #fapisum - Japa...FAPI and Beyond: From an specification author's point of view #fapisum - Japa...
FAPI and Beyond: From an specification author's point of view #fapisum - Japa...FinTechLabs.io
 
FAPI and beyond - よりよいセキュリティのために
FAPI and beyond - よりよいセキュリティのためにFAPI and beyond - よりよいセキュリティのために
FAPI and beyond - よりよいセキュリティのためにNat Sakimura
 
巨大ポータルを支えるプライベート・クラウド構築事例から学べ!~攻める情シスのためのインフラ構築、その極意とは?~
巨大ポータルを支えるプライベート・クラウド構築事例から学べ!~攻める情シスのためのインフラ構築、その極意とは?~巨大ポータルを支えるプライベート・クラウド構築事例から学べ!~攻める情シスのためのインフラ構築、その極意とは?~
巨大ポータルを支えるプライベート・クラウド構築事例から学べ!~攻める情シスのためのインフラ構築、その極意とは?~Brocade
 
ネットワーク通信入門
ネットワーク通信入門ネットワーク通信入門
ネットワーク通信入門Yuki Suga
 
AWSオンリーで実現するIoTクラウド基盤
AWSオンリーで実現するIoTクラウド基盤AWSオンリーで実現するIoTクラウド基盤
AWSオンリーで実現するIoTクラウド基盤Godai Nakamura
 
JNSA Bitcoin 勉強会 佐藤 20140602
JNSA Bitcoin 勉強会 佐藤 20140602JNSA Bitcoin 勉強会 佐藤 20140602
JNSA Bitcoin 勉強会 佐藤 20140602Masashi Sato
 
情熱Smalltalker SmalltalkとAWSでクラウドサービスを実現するための挑戦
情熱Smalltalker SmalltalkとAWSでクラウドサービスを実現するための挑戦情熱Smalltalker SmalltalkとAWSでクラウドサービスを実現するための挑戦
情熱Smalltalker SmalltalkとAWSでクラウドサービスを実現するための挑戦Sho Yoshida
 
泥臭い運用から、プログラマブルインフラ構築(に行きたい)
泥臭い運用から、プログラマブルインフラ構築(に行きたい) 泥臭い運用から、プログラマブルインフラ構築(に行きたい)
泥臭い運用から、プログラマブルインフラ構築(に行きたい) Akihiro Kuwano
 
20211209 lt runtime_field
20211209 lt runtime_field20211209 lt runtime_field
20211209 lt runtime_fieldNomura Yuta
 
ServiceMesh と仲間たち 〜Istio & Conduit & Linkerd〜 @Cloud Native Meetup Tokyo #1
ServiceMesh と仲間たち 〜Istio & Conduit & Linkerd〜 @Cloud Native Meetup Tokyo #1ServiceMesh と仲間たち 〜Istio & Conduit & Linkerd〜 @Cloud Native Meetup Tokyo #1
ServiceMesh と仲間たち 〜Istio & Conduit & Linkerd〜 @Cloud Native Meetup Tokyo #1Masaya Aoyama
 
ServerlessConf Tokyo2018 サーバーレスなシステムのがんばらない運用監視
ServerlessConf Tokyo2018 サーバーレスなシステムのがんばらない運用監視ServerlessConf Tokyo2018 サーバーレスなシステムのがんばらない運用監視
ServerlessConf Tokyo2018 サーバーレスなシステムのがんばらない運用監視Takanori Suzuki
 
技術選択とアーキテクトの役割
技術選択とアーキテクトの役割技術選択とアーキテクトの役割
技術選択とアーキテクトの役割Toru Yamaguchi
 

Similar a Mobage Connect と Identity 関連技術への取り組み - OpenID Summit Tokyo 2015 (20)

脆弱性事例に学ぶセキュアコーディング「SSL/TLS証明書検証」編 (KOF2014)
脆弱性事例に学ぶセキュアコーディング「SSL/TLS証明書検証」編 (KOF2014)脆弱性事例に学ぶセキュアコーディング「SSL/TLS証明書検証」編 (KOF2014)
脆弱性事例に学ぶセキュアコーディング「SSL/TLS証明書検証」編 (KOF2014)
 
サーバーレスで ガチ本番運用までやってるお話し
サーバーレスで ガチ本番運用までやってるお話しサーバーレスで ガチ本番運用までやってるお話し
サーバーレスで ガチ本番運用までやってるお話し
 
認証/認可が実現する安全で高速分析可能な分析処理基盤
認証/認可が実現する安全で高速分析可能な分析処理基盤認証/認可が実現する安全で高速分析可能な分析処理基盤
認証/認可が実現する安全で高速分析可能な分析処理基盤
 
FAPI and Beyond: From an specification author's point of view #fapisum - Japa...
FAPI and Beyond: From an specification author's point of view #fapisum - Japa...FAPI and Beyond: From an specification author's point of view #fapisum - Japa...
FAPI and Beyond: From an specification author's point of view #fapisum - Japa...
 
FAPI and beyond - よりよいセキュリティのために
FAPI and beyond - よりよいセキュリティのためにFAPI and beyond - よりよいセキュリティのために
FAPI and beyond - よりよいセキュリティのために
 
Keycloakのステップアップ認証について
Keycloakのステップアップ認証についてKeycloakのステップアップ認証について
Keycloakのステップアップ認証について
 
巨大ポータルを支えるプライベート・クラウド構築事例から学べ!~攻める情シスのためのインフラ構築、その極意とは?~
巨大ポータルを支えるプライベート・クラウド構築事例から学べ!~攻める情シスのためのインフラ構築、その極意とは?~巨大ポータルを支えるプライベート・クラウド構築事例から学べ!~攻める情シスのためのインフラ構築、その極意とは?~
巨大ポータルを支えるプライベート・クラウド構築事例から学べ!~攻める情シスのためのインフラ構築、その極意とは?~
 
ネットワーク通信入門
ネットワーク通信入門ネットワーク通信入門
ネットワーク通信入門
 
AWSオンリーで実現するIoTクラウド基盤
AWSオンリーで実現するIoTクラウド基盤AWSオンリーで実現するIoTクラウド基盤
AWSオンリーで実現するIoTクラウド基盤
 
[Japan Tech summit 2017] DEP 005
[Japan Tech summit 2017] DEP 005[Japan Tech summit 2017] DEP 005
[Japan Tech summit 2017] DEP 005
 
JNSA Bitcoin 勉強会 佐藤 20140602
JNSA Bitcoin 勉強会 佐藤 20140602JNSA Bitcoin 勉強会 佐藤 20140602
JNSA Bitcoin 勉強会 佐藤 20140602
 
情熱Smalltalker SmalltalkとAWSでクラウドサービスを実現するための挑戦
情熱Smalltalker SmalltalkとAWSでクラウドサービスを実現するための挑戦情熱Smalltalker SmalltalkとAWSでクラウドサービスを実現するための挑戦
情熱Smalltalker SmalltalkとAWSでクラウドサービスを実現するための挑戦
 
泥臭い運用から、プログラマブルインフラ構築(に行きたい)
泥臭い運用から、プログラマブルインフラ構築(に行きたい) 泥臭い運用から、プログラマブルインフラ構築(に行きたい)
泥臭い運用から、プログラマブルインフラ構築(に行きたい)
 
5jCup WebRTC賞
5jCup WebRTC賞5jCup WebRTC賞
5jCup WebRTC賞
 
20211209 lt runtime_field
20211209 lt runtime_field20211209 lt runtime_field
20211209 lt runtime_field
 
ServiceMesh と仲間たち 〜Istio & Conduit & Linkerd〜 @Cloud Native Meetup Tokyo #1
ServiceMesh と仲間たち 〜Istio & Conduit & Linkerd〜 @Cloud Native Meetup Tokyo #1ServiceMesh と仲間たち 〜Istio & Conduit & Linkerd〜 @Cloud Native Meetup Tokyo #1
ServiceMesh と仲間たち 〜Istio & Conduit & Linkerd〜 @Cloud Native Meetup Tokyo #1
 
Bpstudy20180725
Bpstudy20180725Bpstudy20180725
Bpstudy20180725
 
ServerlessConf Tokyo2018 サーバーレスなシステムのがんばらない運用監視
ServerlessConf Tokyo2018 サーバーレスなシステムのがんばらない運用監視ServerlessConf Tokyo2018 サーバーレスなシステムのがんばらない運用監視
ServerlessConf Tokyo2018 サーバーレスなシステムのがんばらない運用監視
 
P2Pって何?
P2Pって何?P2Pって何?
P2Pって何?
 
技術選択とアーキテクトの役割
技術選択とアーキテクトの役割技術選択とアーキテクトの役割
技術選択とアーキテクトの役割
 

Más de Toru Yamaguchi

これからの Microservices
これからの Microservicesこれからの Microservices
これからの MicroservicesToru Yamaguchi
 
革新的ブラウザゲームを支えるプラットフォーム技術
革新的ブラウザゲームを支えるプラットフォーム技術革新的ブラウザゲームを支えるプラットフォーム技術
革新的ブラウザゲームを支えるプラットフォーム技術Toru Yamaguchi
 
技術選択とアーキテクトの役割 (要約版)
技術選択とアーキテクトの役割 (要約版)技術選択とアーキテクトの役割 (要約版)
技術選択とアーキテクトの役割 (要約版)Toru Yamaguchi
 
How to bake delicious cookie (RESTful Meetup #03)
How to bake delicious cookie (RESTful Meetup #03)How to bake delicious cookie (RESTful Meetup #03)
How to bake delicious cookie (RESTful Meetup #03)Toru Yamaguchi
 
JSON Based Web Services
JSON Based Web ServicesJSON Based Web Services
JSON Based Web ServicesToru Yamaguchi
 
Yapc asia 2011_zigorou
Yapc asia 2011_zigorouYapc asia 2011_zigorou
Yapc asia 2011_zigorouToru Yamaguchi
 
ngCore engine for mobage platform
ngCore engine for mobage platformngCore engine for mobage platform
ngCore engine for mobage platformToru Yamaguchi
 
mbga Open Platform and Perl
mbga Open Platform and Perlmbga Open Platform and Perl
mbga Open Platform and PerlToru Yamaguchi
 
Inside mbga Open Platform API architecture
Inside mbga Open Platform API architectureInside mbga Open Platform API architecture
Inside mbga Open Platform API architectureToru Yamaguchi
 
Introduction OpenID Authentication 2.0 Revival
Introduction OpenID Authentication 2.0 RevivalIntroduction OpenID Authentication 2.0 Revival
Introduction OpenID Authentication 2.0 RevivalToru Yamaguchi
 
Introduction OpenID Authentication 2.0
Introduction OpenID Authentication 2.0Introduction OpenID Authentication 2.0
Introduction OpenID Authentication 2.0Toru Yamaguchi
 
The Security of OpenID Authentication 2.0
The Security of OpenID Authentication 2.0The Security of OpenID Authentication 2.0
The Security of OpenID Authentication 2.0Toru Yamaguchi
 
Customization of DBIC::Schema::Loader
Customization of DBIC::Schema::LoaderCustomization of DBIC::Schema::Loader
Customization of DBIC::Schema::LoaderToru Yamaguchi
 

Más de Toru Yamaguchi (19)

これからの Microservices
これからの Microservicesこれからの Microservices
これからの Microservices
 
革新的ブラウザゲームを支えるプラットフォーム技術
革新的ブラウザゲームを支えるプラットフォーム技術革新的ブラウザゲームを支えるプラットフォーム技術
革新的ブラウザゲームを支えるプラットフォーム技術
 
技術選択とアーキテクトの役割 (要約版)
技術選択とアーキテクトの役割 (要約版)技術選択とアーキテクトの役割 (要約版)
技術選択とアーキテクトの役割 (要約版)
 
How to bake delicious cookie (RESTful Meetup #03)
How to bake delicious cookie (RESTful Meetup #03)How to bake delicious cookie (RESTful Meetup #03)
How to bake delicious cookie (RESTful Meetup #03)
 
JSON Based Web Services
JSON Based Web ServicesJSON Based Web Services
JSON Based Web Services
 
Yapc asia 2011_zigorou
Yapc asia 2011_zigorouYapc asia 2011_zigorou
Yapc asia 2011_zigorou
 
ngCore engine for mobage platform
ngCore engine for mobage platformngCore engine for mobage platform
ngCore engine for mobage platform
 
mbga Open Platform and Perl
mbga Open Platform and Perlmbga Open Platform and Perl
mbga Open Platform and Perl
 
Inside mbga Open Platform API architecture
Inside mbga Open Platform API architectureInside mbga Open Platform API architecture
Inside mbga Open Platform API architecture
 
Introduction OpenID Authentication 2.0 Revival
Introduction OpenID Authentication 2.0 RevivalIntroduction OpenID Authentication 2.0 Revival
Introduction OpenID Authentication 2.0 Revival
 
OpenID Mobile Profile
OpenID Mobile ProfileOpenID Mobile Profile
OpenID Mobile Profile
 
Introduction OpenID Authentication 2.0
Introduction OpenID Authentication 2.0Introduction OpenID Authentication 2.0
Introduction OpenID Authentication 2.0
 
OpenID 2009
OpenID 2009OpenID 2009
OpenID 2009
 
Mobile Openid
Mobile OpenidMobile Openid
Mobile Openid
 
Client Side Cache
Client Side CacheClient Side Cache
Client Side Cache
 
The Security of OpenID Authentication 2.0
The Security of OpenID Authentication 2.0The Security of OpenID Authentication 2.0
The Security of OpenID Authentication 2.0
 
Customization of DBIC::Schema::Loader
Customization of DBIC::Schema::LoaderCustomization of DBIC::Schema::Loader
Customization of DBIC::Schema::Loader
 
Yadis/XRI and OpenID
Yadis/XRI and OpenIDYadis/XRI and OpenID
Yadis/XRI and OpenID
 
OpenID 2.0 Quick Note
OpenID 2.0 Quick NoteOpenID 2.0 Quick Note
OpenID 2.0 Quick Note
 

Último

【早稲田AI研究会 講義資料】3DスキャンとTextTo3Dのツールを知ろう!(Vol.1)
【早稲田AI研究会 講義資料】3DスキャンとTextTo3Dのツールを知ろう!(Vol.1)【早稲田AI研究会 講義資料】3DスキャンとTextTo3Dのツールを知ろう!(Vol.1)
【早稲田AI研究会 講義資料】3DスキャンとTextTo3Dのツールを知ろう!(Vol.1)Hiroki Ichikura
 
論文紹介:Content-Aware Token Sharing for Efficient Semantic Segmentation With Vis...
論文紹介:Content-Aware Token Sharing for Efficient Semantic Segmentation With Vis...論文紹介:Content-Aware Token Sharing for Efficient Semantic Segmentation With Vis...
論文紹介:Content-Aware Token Sharing for Efficient Semantic Segmentation With Vis...Toru Tamaki
 
[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略
[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略
[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略Ryo Sasaki
 
論文紹介:Semantic segmentation using Vision Transformers: A survey
論文紹介:Semantic segmentation using Vision Transformers: A survey論文紹介:Semantic segmentation using Vision Transformers: A survey
論文紹介:Semantic segmentation using Vision Transformers: A surveyToru Tamaki
 
スマートフォンを用いた新生児あやし動作の教示システム
スマートフォンを用いた新生児あやし動作の教示システムスマートフォンを用いた新生児あやし動作の教示システム
スマートフォンを用いた新生児あやし動作の教示システムsugiuralab
 
論文紹介:Automated Classification of Model Errors on ImageNet
論文紹介:Automated Classification of Model Errors on ImageNet論文紹介:Automated Classification of Model Errors on ImageNet
論文紹介:Automated Classification of Model Errors on ImageNetToru Tamaki
 
SOPを理解する 2024/04/19 の勉強会で発表されたものです
SOPを理解する       2024/04/19 の勉強会で発表されたものですSOPを理解する       2024/04/19 の勉強会で発表されたものです
SOPを理解する 2024/04/19 の勉強会で発表されたものですiPride Co., Ltd.
 
Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介
Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介
Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介Yuma Ohgami
 
TSAL operation mechanism and circuit diagram.pdf
TSAL operation mechanism and circuit diagram.pdfTSAL operation mechanism and circuit diagram.pdf
TSAL operation mechanism and circuit diagram.pdftaisei2219
 
Postman LT Fukuoka_Quick Prototype_By Daniel
Postman LT Fukuoka_Quick Prototype_By DanielPostman LT Fukuoka_Quick Prototype_By Daniel
Postman LT Fukuoka_Quick Prototype_By Danieldanielhu54
 

Último (10)

【早稲田AI研究会 講義資料】3DスキャンとTextTo3Dのツールを知ろう!(Vol.1)
【早稲田AI研究会 講義資料】3DスキャンとTextTo3Dのツールを知ろう!(Vol.1)【早稲田AI研究会 講義資料】3DスキャンとTextTo3Dのツールを知ろう!(Vol.1)
【早稲田AI研究会 講義資料】3DスキャンとTextTo3Dのツールを知ろう!(Vol.1)
 
論文紹介:Content-Aware Token Sharing for Efficient Semantic Segmentation With Vis...
論文紹介:Content-Aware Token Sharing for Efficient Semantic Segmentation With Vis...論文紹介:Content-Aware Token Sharing for Efficient Semantic Segmentation With Vis...
論文紹介:Content-Aware Token Sharing for Efficient Semantic Segmentation With Vis...
 
[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略
[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略
[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略
 
論文紹介:Semantic segmentation using Vision Transformers: A survey
論文紹介:Semantic segmentation using Vision Transformers: A survey論文紹介:Semantic segmentation using Vision Transformers: A survey
論文紹介:Semantic segmentation using Vision Transformers: A survey
 
スマートフォンを用いた新生児あやし動作の教示システム
スマートフォンを用いた新生児あやし動作の教示システムスマートフォンを用いた新生児あやし動作の教示システム
スマートフォンを用いた新生児あやし動作の教示システム
 
論文紹介:Automated Classification of Model Errors on ImageNet
論文紹介:Automated Classification of Model Errors on ImageNet論文紹介:Automated Classification of Model Errors on ImageNet
論文紹介:Automated Classification of Model Errors on ImageNet
 
SOPを理解する 2024/04/19 の勉強会で発表されたものです
SOPを理解する       2024/04/19 の勉強会で発表されたものですSOPを理解する       2024/04/19 の勉強会で発表されたものです
SOPを理解する 2024/04/19 の勉強会で発表されたものです
 
Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介
Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介
Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介
 
TSAL operation mechanism and circuit diagram.pdf
TSAL operation mechanism and circuit diagram.pdfTSAL operation mechanism and circuit diagram.pdf
TSAL operation mechanism and circuit diagram.pdf
 
Postman LT Fukuoka_Quick Prototype_By Daniel
Postman LT Fukuoka_Quick Prototype_By DanielPostman LT Fukuoka_Quick Prototype_By Daniel
Postman LT Fukuoka_Quick Prototype_By Daniel
 

Mobage Connect と Identity 関連技術への取り組み - OpenID Summit Tokyo 2015

  • 1. Copyright  (C)  DeNA  Co.,Ltd.  All  Rights  Reserved.   Mobage Connect と Identity 関連技術への 取り組み OpenID Summit 2015 November  10,  2015   Toru  Yamaguchi   Senior  Architect     Sub  Business  Unit  Head   Open  Pla=orm  Business  Unit   DeNA  Co.,  Ltd.    
  • 2. Copyright  (C)  DeNA  Co.,Ltd.  All  Rights  Reserved.   講演者紹介   !  ⽒氏名   ⁃  ⼭山⼝口  徹  (やまぐち  とおる)   !  HN   ⁃  @zigorou   !  会社   ⁃  株式会社ディー・エヌ・エー   !  部署   ⁃  オープンプラットフォーム事業本部   !  役職   ⁃  副事業本部⻑⾧長  シニアアーキテクト   !  仕事   ⁃  Mobage  やその他協業案件などにおける システム設計がメイン   2  
  • 3. Copyright  (C)  DeNA  Co.,Ltd.  All  Rights  Reserved.   本⽇日の概要   !  Mobage  Connect  (OpenID  Server)  の構築経験で、⼯工夫した点とし て以下の話をしていきます   ⁃  CSRF  Token  への  JWT  の利利⽤用   ⁃  Access  Token  への  JWT  の利利⽤用と  Microservices   ⁃  Intent  URI  Scheme  と  Browser  –  Native  App  連携   !  実践的な話につき  JWT  などの  Identity  技術の基本的な話はあまりし ません   3  
  • 4. Copyright  (C)  DeNA  Co.,Ltd.  All  Rights  Reserved.   CSRF  Token  への  JWT  の利利⽤用   Mobage  Connect  と  Identity  関連技術への取り組み   4  
  • 5. Copyright  (C)  DeNA  Co.,Ltd.  All  Rights  Reserved.   CSRF  (Cross  Site  Request  Forgery)   !  CSRF  とは上記のような攻撃⼿手法です   ⁃  例例えば、ログイン状態で所定の⼿手続きを経ないと本来出来ない⾏行行 為を強制的に⾏行行わせるといった事に使われます   !  このような攻撃が成⽴立立させない為に⾏行行う対策の⼀一つとして  CSRF  Token  の発⾏行行と検証があります   5   事前の信頼関係   (セッションの確⽴立立)   1.     2.   3.   良良くある  CSRF  の例例として、   1.  何らかの悪意のある  URL  を踏ませる   2.  正規の  Web  サーバーに対する不不正な リクエストを送出させるようなコンテ ンツを返却する   3.  ユーザーが意図しないうちに、不不正な リクエストが送信される   正規のWeb  サーバー   悪意のある  Web  サーバー  
  • 6. Copyright  (C)  DeNA  Co.,Ltd.  All  Rights  Reserved.   良良くある  CSRF  Token  の仕組み   !  Page  A  で  Page  Token  を発⾏行行し、それを  Cache  Server  (例例えば   memcached  や  Redis  のようなサーバー)  に保存し、Page  Token  が 無いと  Page  B  が⾒見見れないようにする   ⁃  消費するたびに  Cache  から削除すればワンタイム性が得られる   6   hIp://goo.gl/Wfvcz0  
  • 7. Copyright  (C)  DeNA  Co.,Ltd.  All  Rights  Reserved.   良良くある  CSRF  Token  の課題点   !  普段使う分には⼤大した問題ではないのですが、⼤大規模サービスだとあ ながちバカに出来ない課題があります   ⁃  CSRF  Token  の発⾏行行・検証時に  Cache  Server  とのラウンドトリ ップが必ず発⽣生してしまうこと   ⁃  また  CSRF  Token  の有効期限内、必ず  Cache  Server  に  CSRF   Token  が存在するようにしておかなければならない   •  Cache  Server  はしばしば  eviction  によってデータがロストする   ⁃  どのページで発⾏行行された  CSRF  Token  かをあまり検証していない ケースが多い   •  不不正に  CSRF  Token  が⼊入⼿手されると、クリティカルなページへのリクエ ストに利利⽤用され兼ねない   !  そこで  JWT  を利利⽤用します!   7  
  • 8. Copyright  (C)  DeNA  Co.,Ltd.  All  Rights  Reserved.   CSRF  Token  の  JWT  Claims  表現   !  /typ  に  csrf_̲token  と明記し、/_̲ext  に拡張データを⼊入れています   ⁃  /_̲ext/a  は  Page  Token  の発⾏行行ページの  id   ⁃  /_̲ext/t  は  Tracking  Cookie  の  Hash  値   ⁃  /_̲ext/p  は  hidden  パラメータ等の埋め込み  (改ざん防⽌止)   8   (注意)  実際の  Mobage  Connect  の  CSRF  Token  と⼀一部フォーマットが異異なります  
  • 9. Copyright  (C)  DeNA  Co.,Ltd.  All  Rights  Reserved.   Cache  サーバーは利利⽤用された際に使う  (まだ構想段階)   !  基本的には  JWT  の  iat  +  有効期限に収まっているかをチェックする   ⁃  アルゴリズムでの評価   !  有効期限内の場合は  Cache  に  invalidate  情報が無い場合は未利利⽤用なので   verified  とする   ⁃  ある場合は利利⽤用済みなので  not  verified  とする   9   CSRF  Token  (JWT)  の有効期限   (受け⼊入れページごとに定義)   Cache  に  invalidate  された   JWT  の  jU  値を格納する   発⾏行行   検証   有効期限  
  • 10. Copyright  (C)  DeNA  Co.,Ltd.  All  Rights  Reserved.   Source  AcMon  と  DesMnaMon  AcMon  (1)   !  CSRF  Token  の  /_̲ext/a  に埋め込まれた値  sa1  に対して   ⁃  da1  では  sa1  で発⾏行行された  CSRF  Token  を受け付ける   ⁃  da2,  da3  では  Reject  される   10   Source  (sa1)   Source  (sa2)   Source  (sa3)   Dest  (da1)   accept  (sa1)   Dest  (da2)   accept  (sa2)   Dest  (da3)   accept  (sa2,  sa3)   Reject   Reject  
  • 11. Copyright  (C)  DeNA  Co.,Ltd.  All  Rights  Reserved.   Source  AcMon  と  DesMnaMon  AcMon  (2)   !  アクセス可能な関係値は上記のようになります   ⁃  受け⼊入れる  Action  のホワイトリストを  WAF  の  Router  設定に 記述しています   11   Source  (sa1)   Source  (sa2)   Source  (sa3)   Dest  (da1)   accept  (sa1)   Dest  (da2)   accept  (sa2)   Dest  (da3)   accept  (sa2,  sa3)  
  • 12. Copyright  (C)  DeNA  Co.,Ltd.  All  Rights  Reserved.   その他の拡張ポイント   !  Tracking  Cookie  検証   ⁃  CSRF  Token  が仮に他者に奪われても  Tracking  Cookie  のハッ シュ値が⼀一致しない限りは  Reject  されます   !  埋め込みパラメータの検証   ⁃  特に  submit  前の  form  には  input[@type=“hidden”]  のような 埋め込みパラメータが良良く使われます   ⁃  これらの値が改ざんされないように、JWT  中に  object  として埋 め込み、実際に送信されたデータと⽐比較して、内容が改ざんされ ていれば  Reject  します   12  
  • 13. Copyright  (C)  DeNA  Co.,Ltd.  All  Rights  Reserved.   Access  Token  への  JWT  の利利⽤用と  Microservices   Mobage  Connect  と  Identity  関連技術への取り組み   13  
  • 14. Copyright  (C)  DeNA  Co.,Ltd.  All  Rights  Reserved.   Microservices  と  Access  Token  の相性が悪い件   !  Microservices  はサービスごとに独⽴立立したインスタンスや  DB  を持ち、 API  をインターフェースとして結合する  Thin  なやり⽅方   ⁃  そのようなケースで  Token  DB  をどう参照するのか?   14   AuthZ  Server   Token  DB   Client   Resource  Server   Token     Endpoint   1.  Token  Request   3.  Token  Response   2.  Store  Token   4.  Request  to     Resource  Server   異異なるネットワークにある   Token  DB  をどう参照するか?  
  • 15. Copyright  (C)  DeNA  Co.,Ltd.  All  Rights  Reserved.   OAuth  2.0  Token  IntrospecMon  (RFC  7662)   !  Introspection  Endpoint  で  Access  Token  の検証を  AuthZ  Server   に依頼する事が出来る   ⁃  これで⼀一応  Microservices  にも対応出来るようになる   15   AuthZ  Server   Token  DB   Client   Resource  Server   Token     Endpoint   1.  Token  Request   3.  Token  Response   2.  Store  Token   6.  Lookup  Token   4.  Request  to     Resource  Server   IntrospecUon   Endpoint   5.  IntrospecUon  Request   7.  IntrospecUon  Response  
  • 16. Copyright  (C)  DeNA  Co.,Ltd.  All  Rights  Reserved.   IntrospecMon  API  の課題点   !  アーキテクチャにも依るが、API  Gateway  以下でも  Access  Token  をその まま通過させて、各  Service  へのリクエストにした場合、厳密には  Service  ごとに  Access  Token  の検証が必要であろう   ⁃  速度度重視の  API  に不不要なラウンドトリップが発⽣生する   ⁃  つまり⼤大規模な  Microservices  に対して、採⽤用を躊躇わざるを得ない   !  ⼀一つの解決策として  API  Gateway  のみ  Introspection  Endpoint  を使うと なりそう   16   Client   API  Gateway   API  (1)   API  (3)   API  (2)   1.  API  Request   2.     3.     4.     5.    
  • 17. Copyright  (C)  DeNA  Co.,Ltd.  All  Rights  Reserved.   Access  Token  に  JWT  を使う   !  Access  Token  は  exp  を迎える前に  revoke  さえされければ、 Resource  Server  でのアルゴリズム的な検証のみで良良い   ⁃  また  /_̲ext/st  は  Scope  Token  (どんな権限があるか)   17   (注意)  実際の  Mobage  Connect  の  Access  Token  と⼀一部フォーマットが異異なります  
  • 18. Copyright  (C)  DeNA  Co.,Ltd.  All  Rights  Reserved.   18   以降降、構想段階のお話です  
  • 19. Copyright  (C)  DeNA  Co.,Ltd.  All  Rights  Reserved.   Subscribe  Endpoint   !  Access  Token  が  revoke  された場合に  Resource  Server  側に通知出来る 仕組みを作れば良良い   ⁃  他にも  AuthZ  Server  のログインセッションが切切れたら  session_̲state  を伝搬させるなど汎⽤用的な  PubSub  があったら便便利利だと思われる   19   AuthZ  Server   Token  DB   Client   Resource  Server   Revoke   Endpoint   1.  Revoke  Request   4.  Revoke  Response   2.  Remove  Token   Subscribe   Endpoint   Revoke  Token     Subscriber   Endpoint   3.  Publish  Revoke  Event   事前に  Subscribe  Endpoint  で   Revoke  Event  を  subscribe  するための     URL  を登録しておく    
  • 20. Copyright  (C)  DeNA  Co.,Ltd.  All  Rights  Reserved.   Revoke  Event  の伝搬   !  上記のようなシステムを組む事で  Revoke  された  Access  Token  の  jti  値などを伝搬させて、Revoke  情報のみを各  Service  に伝える   ⁃  そうする事により、API  は  local  通信で  revoke  された  Access   Token  かどうかを確認出来るようになる   20   API   Revoked   Token  DB   (Redis)   Service   API   Revoked   Token  DB   (Redis)   Service   Revoked   Token  Publisher   (Redis)   Revoke  Token   Subscriber   Endpoint   AuthZ  Server   1.  Publish  Token   Revoked  Event   2.  Publish  to   channel   Subscribe   channel   Lookup  token   (localhost)   Lookup  token   (localhost)  
  • 21. Copyright  (C)  DeNA  Co.,Ltd.  All  Rights  Reserved.   Revoke  された  Token  情報の保持期間   !  基本的には  CSRF  Token  と同じコンセプトでやる   !  つまり、revoke  された  jti  だけ有効期限を迎えるまで、各  Service  の   Redis  で持てば良良い   ⁃  それ以降降は  exp  ⾒見見るだけで判断が付くため   21   Access  Token  (JWT)  の有効期限   Cache  に  revoke  された   JWT  の  jU  値を格納する   発⾏行行   Revoke   iat   exp  
  • 22. Copyright  (C)  DeNA  Co.,Ltd.  All  Rights  Reserved.   Intent  URI  Scheme  と  Browser  –  NaMve  App  連携   Mobage  Connect  と  Identity  関連技術への取り組み   22  
  • 23. Copyright  (C)  DeNA  Co.,Ltd.  All  Rights  Reserved.   NaMve  App  に対する  OAuth  2/OIDC  1.0  は魔物   !  挙げれば切切りがない位、課題がある   ⁃  以下  AuthZ  Server  は  Browser  や別の  App  として開くと仮定   !  Native  App  にどのように  access  token  を渡すか   ⁃  Implicit  or  Authorization  Code   ⁃  Implicit  でやると  Custom  URI  の  interception  が出来てしまう   (後述)   ⁃  でも  Native  App  は  public  client  なので  client  secret  は持てな いので  Authorization  Code  は無理理では?   !  Native  App  が継続的に  access  token  を得る為の仕組みをどう実現する か   ⁃  Browser  なら定期的に  immediate  login  相当の  implicit  を続け れば良良い   ⁃  AuthZ  Server  が  Browser  や  Native  App  だと定期的にアプリ間 連携する⽻羽⽬目になる     23  
  • 24. Copyright  (C)  DeNA  Co.,Ltd.  All  Rights  Reserved.   Custom  URI  の中間者攻撃   !  同じ  Custom  URI  を持つ  App  が複数あったらどうなるか   ⁃  先勝ちになる   ⁃  つまり、不不正な  App  に取られると  Redirect  URI  に渡した情報が 盗まれる     24   hIp://tools.ie=.org/html/rfc7636  
  • 25. Copyright  (C)  DeNA  Co.,Ltd.  All  Rights  Reserved.   Custom  URI  の中間者攻撃への対策   !  Mobage  Connect  とそれを利利⽤用した  Native  SDK  でも対策が⼊入っていま す   ⁃  但しセンシティブな話なので今⽇日はプロトコルの話はしません   !  今回話すのは、この中間者攻撃を成⽴立立させないようにする⽐比較的簡単 な対策についてお話します   25  
  • 26. Copyright  (C)  DeNA  Co.,Ltd.  All  Rights  Reserved.   Intent  URI  Scheme  (Chrome)   !  Chrome  for  Android  の機能です   ⁃  https://developer.chrome.com/multidevice/android/intents   !  Android  の  Intent  Filter  の機能を詳細に指定して  Native  App  を起動 させる事が出来ます   26   intent:{origin}{/path}{?queries*}#Intent          {;package,action,category,component,scheme}          ;end   intent:appId/callback?          access_token=xyz123&state=abcd1234          #Intent;package=jp.or.openid;          scheme=custom-­‐scheme;end   URI   Template   URI  
  • 27. Copyright  (C)  DeNA  Co.,Ltd.  All  Rights  Reserved.   Intent  URI  Scheme  (Chrome)   !  上記のように  Original  URI  を  Intent  URI  Scheme  形式に書き直します   !  さらに⾚赤字の部分の  package  を明確に指定します   ⁃  この  package  は  AuthZ  Server  で事前に  Redirect  URI  のホワイトリ スト登録時に⼀一緒に登録しておきます   !  このようにする事で、不不正な  package  に対してそもそも  AuthZ  Response  を返さないようにする事が出来ます   27   custom-­‐scheme:appId/callback?          access_token=xyz123&state=abcd1234   intent:appId/callback?          access_token=xyz123&state=abcd1234          #Intent;package=jp.or.openid;          scheme=custom-­‐scheme;end   Original   URI   Intent     URI  
  • 28. Copyright  (C)  DeNA  Co.,Ltd.  All  Rights  Reserved.   諸注意   !  この仕組みは前述の通り  Chrome  for  Android  独⾃自の物なので、iOS  の   Mobile  Safari  では適⽤用出来ない   ⁃  Android/iOS  共に、もっと確かな別の仕組みの導⼊入が⼤大前提   28  
  • 29. Copyright  (C)  DeNA  Co.,Ltd.  All  Rights  Reserved.   ご清聴ありがとうございました   !  時間があれば質疑応答   29