SlideShare ist ein Scribd-Unternehmen logo
1 von 54
Downloaden Sie, um offline zu lesen
Developers.IO 2016
#cmdevio2016 #A
A-3
都元ダイスケ
クラスメソッド株式会社
Ⓒ Classmethod, Inc.
2016年02月20日
マイクロWebアプリケーション

複数サブシステムを OpenID Connect で繋ぐアーキテクチャ
1
#cmdevio2016 #AⒸ Classmethod, Inc.
自己紹介
✦ よく訓練されたアップル信者、都元です。
✦ Webアプリ屋出身のAWS屋
✦ AWS歴4.5年(2011夏∼)
✦ Java歴約10年(2006頃∼)
✦ Twitter @daisuke_m
2
CloudFormation
DynamoDB
IAM
Beanstalk
OAuth
OpenID Connect
SpringDocker
主戦場・関心キーワード
Java
Gradle
#cmdevio2016 #A3Ⓒ Classmethod, Inc.
去年の都元セッション
#cmdevio2016 #AⒸ Classmethod, Inc.
去年の都元セッション
✦ 完全AWSネイティブ
✦ Multi-AZパターン
✦ Multi-AZジョブスケジューラ
✦ CloudFormation
✦ Java 8 + Spring
✦ Spring Data と DDD
✦ Spring Boot と Docker
✦ Spring Batch と SQS
✦ SingleCommandDeploy
✦ gradle-aws-plugin
Gradle と Beanstalk
✦ Flyway と RDS
✦ APIファースト
✦ HATEOAS と HAL
✦ Swagger (現 OpenAPI)
✦ aurl
4
CMP(クラスメソッド・メンバーズポータル)
#cmdevio2016 #AⒸ Classmethod, Inc.
CMPとは
✦ (1) 弊社サービス「メンバーズ」のお客様向けポータル
✦ AWSご利用料金の確認と分析
✦ CloudTrailの集計結果確認
✦ ライセンス期限管理
✦ etc
✦ (2) 社内向け業務システム
✦ コンサルティング資料
✦ 運用サポート情報管理
✦ 請求書発行
5
✦ (3) AWS実験場
✦ AWS実運用経験の場
✦ CloudFormation
✦ Elastic Beanstalk
✦ Elastic MapReduce
✦ IAM
#cmdevio2016 #AⒸ Classmethod, Inc.
モノリシックと分割統治
✦ 1つのサーバで、全てのソフトウェアをホスティング
✦ 1つのアプリで、UIからDBアクセスまで全てを制御
6
Monolith
(c) 2011 Maik Meid
https://flic.kr/p/ax2PX3
分割して統治することにより、個別のコンポーネントを独立したチームで開発でき、

独自のサイクルでリリースできるようになる。はず。(←やったことないw)
#cmdevio2016 #AⒸ Classmethod, Inc.
技術レイヤによる分割
✦ ユーザ I/F レイヤ
✦ Web API レイヤ
✦ Queue Worker レイヤ
✦ データストア レイヤ
7
これ以上分割しづらい。
スケールしない。
無理に分割してもメリットは…?
#cmdevio2016 #AⒸ Classmethod, Inc.
ビジネスによる分割
✦ AWSご利用料金集計・分析サービス
✦ CloudTrail 集計・分析サービス
✦ ライセンス期限管理サービス
✦ 請求書発行サービス
✦ 管理者用マスタメンテサービス(バックエンド用)
✦ 統合認証サービス
✦ etc...
✦ etc...
8
#cmdevio2016 #A
マイクロサービスアーキテクチャ (MSA)
9Ⓒ Classmethod, Inc.
#cmdevio2016 #A
今、モノリスを見た気がする
Monolith (c) 2012 Enrique Gutierrez
https://flic.kr/p/egU1k9
#cmdevio2016 #A
マイクロ
Webアプリケーション
(MWAとでも言っておきますか)
11
#cmdevio2016 #AⒸ Classmethod, Inc.
AWSはMSAの体現
✦ これはもう異論ないと思います。
✦ EC2、S3、RDS、ELB、
AutoScaling、Beanstalk…
✦ Beanstalkは裏でS3やCFnを利用。
✦ AutoScalingはEC2 APIを操作。
✦ RDSやELBの実体はEC2……?
✦ 恐らくこれらのサービスも、我々
には見えない、さらに小さなサー
ビスで構成されている。はず。
12
#cmdevio2016 #AⒸ Classmethod, Inc.
AWSマネジメントコンソール
✦ では、そのフロントエンドである
AWSマネジメントコンソールは

モノリシックなアプリケーション
だろうか?
✦ 恐らく、違う。
13
#cmdevio2016 #AⒸ Classmethod, Inc.
Webアプリケーションもマイクロに
✦ タブを切り替えてサービ
スを渡り歩くようなペー
ジ構成。
✦ これを一つのアプリケー
ションとして実装しなけ
ればならない、なんてい
う制約はない。
14
#cmdevio2016 #A
CMPもこうしたら良いのでは!?
15Ⓒ Classmethod, Inc.
#cmdevio2016 #A
#cmdevio2016 #AⒸ Classmethod, Inc.
MWAで社内円満
✦ before
✦ 「都元さーん」
✦ 「嫌です」
✦ 「いや、聞いてよw」
✦ 「聞くだけなら…」
✦ 「CMPにこんな機能が

  欲しいんだけど」
✦ 「誰がやるんすか」
✦ 「ですよねー。。。」
17
✦ after
✦ 「CMPにこんな機能が

  欲しいんだけど」
✦ 「勝手にサービスAPIと

 フロントエンドを

 デプロイして、

 リンク追加すれば

 いいじゃないすか。」
✦ 「ファッ!?」
(恥ずかしながら、実話です)
#cmdevio2016 #AⒸ Classmethod, Inc.
超えなければいけない問題
✦認証・認可(本セッションのメインテーマ)
✦ APIの権限管理とApp間でID統合とSSO (Single Sign-On) が必須。
✦ これからじっくり話します。
✦インフラコスト(MWAというよりMSAの宿命)
✦ モノリシックよりも大きくインフラを食ってしまう。
✦ 要するに、OSやフレームワークなど、本来共通化出来る部分が、

小さくに切り分けることによって冗長になる。
✦ 確保従量 (pay-as-you-provision) モデル(EC2やDynamoDB等)ではなく、

消費従量 (pay-as-you-consume) モデル(LambdaやS3等)の課金で、

アプリケーション( ファンクション)をデプロイしたいなー。
18
#cmdevio2016 #A
認証 (Authentication) と
認可 (Authorization)
19
#cmdevio2016 #AⒸ Classmethod, Inc.
みんな大好き、認証と認可
✦ ざっくりとした説明。
✦ 認証 Authentication (略して AuthN)
✦ 通信の相手が誰であるかを確認するプロセス。
✦ 認可 Authorization (略して AuthZ)
✦ 誰かに対して、リソースアクセスの権限を与えるプロセス。
20
#cmdevio2016 #AⒸ Classmethod, Inc.
認証と認可の密結合
✦ 素朴に捉えると
✦ 相手はAさんだから、アクセスが許可される。
✦ 相手はAさんではないから、アクセスは許可されない。
✦ アクセスが許可されるということは、相手はAさんだ。
✦ アクセスが許可されないということは、相手はAさんではない。
✦ モノリシックなシステムにおいては大抵、
✦ 「認証」しなければ「認可」できなかった。
✦ 誰だかを特定しないことにはアクセスを許可できなかった。
✦ 誰だかを確認することが、アクセス許可と等価だった。
21
#cmdevio2016 #AⒸ Classmethod, Inc.
認証と認可の分離
✦ 本来人間が持つ権限を、外部システムに委譲する

仕組みが勃興。OAuth。
✦ 例えばTwitterとTogetter
✦ Togetterは@daisuke_mに成り代わり(@daisuke_mの名の
下に)Twitterに対してリソースアクセスを要求する。
✦ Twitterにとって、通信の相手はTogetterであるが、
@daisuke_m相当のアクセス権を持っている。
✦ @daisuke_mの持つ権限を、別の主体であるTogetterに

「認可」している。
22
#cmdevio2016 #AⒸ Classmethod, Inc.
認証 Authentication
✦ メタファーは「証明書の確認」もっと具体的には住基カード。
✦ 証明書を検証して、通信の相手が誰であるかを確認する

プロセス。
✦ 純粋な認証は、完了したからといって

何かが許されるとは限らない。
✦ 認証されても、せいぜいシステムが

「こんにちはmiyamotoさん」

とか言い出す位だ、と認識すると良い。
23
Thumb Print Embroidery Wall Hanging
(c) 2011 Hey Paul Studios
https://flic.kr/p/a6vD7K
#cmdevio2016 #AⒸ Classmethod, Inc.
現実世界における認証の手段
✦ 現実世界における認証ファクター
✦ WHAT YOU ARE (inherence factor)
✦ 顔貌、声、指紋、署名など、その人自身の提示。
✦ WHAT YOU HAVE (possession factor)
✦ 身分証、携帯電話等、その人だけが持っているものの提示。
✦ 顔写真等、結果的にWYAに依存するものもある。
✦ WHAT YOU KNOW (knowledge factor)
✦ パスワード、秘密の質問等、その人だけが知っていることの提示。
✦ MFA (multi-factor authentication)
✦ ガチ攻めすると哲学ゾーンに入る話。我思う故に我あり?
✦ 顔が同じなら、アイデンティティを確認できるのか? 人の記憶とは?
✦ 「ばかもーん!そいつがルパンだ、追えー!」
24
#cmdevio2016 #AⒸ Classmethod, Inc.
認可 Authorization
✦ メタファーは「 や切符の発行」
✦ 誰かに対して、リソースアクセスの権限を与えるプロセス
✦ 認可にあたって相手の身元確認は必須ではない。(後述)
✦ 認可があるからといって、通信相手の身元が明らかにな
るとは限らない。
✦ 都元家の を持っている人はすべからく(当然)都元家の人間
とは限らない。信頼できる人に を預けている(委譲)かも?
✦ 「錠前」というシステムは、解錠にあたって「目の前に居る人
は誰か?」なんて考えていない。 を持っているから開けたの
だ。
25
Keys
(c) 2017 Moyan Brenn
https://flic.kr/p/5eLUnX
#cmdevio2016 #AⒸ Classmethod, Inc.
認証と認可の分離に関する疑問
✦ 認証せずに認可することなんてあるのか?
✦ 認可にあたってアイデンティティを確認する必要はない。
✦ 電車の切符売り場では、認証せずとも切符を発行(認可)してくれる。
✦ 「特定のIPアドレスからのアクセスはOK」なんてのも。(iptables)
✦ 認証したのに認可しないことなんてあるのか?
✦ モノリシックなスコープで考えると、まずない。
✦ しかし、マイクロサービスのような分散環境において、

「分散システムにおけるマクロなスコープでは認可はしていない。

 個々のサービス内で、ミクロなスコープでは認可しているかも

 しれない。まぁ、してないかもしれない。知らん。」

という視点がありうる。(後述)
26
#cmdevio2016 #AⒸ Classmethod, Inc.
非対称的な並列比較に注意 (1)
✦ 認証
1.証明書の発行
2.証明書の検証よるアイデンティティの確認(←ココが認証)
✦ 認可
1. の発行(←ココが認可)
2. の検証によるアクセス権の確認
27
アクセス制御処理は2段階に分けられ、第1段階は「ポリシー定義段階」、第2
段階は「ポリシー施行段階」である。認可はポリシー定義段階の機能であり、
その後ポリシー施行段階で事前に定義された認可に基づき、アクセス要求を受
け入れるか拒否するかを決定する。(wikipedia http://bit.ly/1Qqmxmu )
#cmdevio2016 #A
OpenID Connect 1.0 と
OAuth 2.0
28
#cmdevio2016 #AⒸ Classmethod, Inc.
まず、略称定義と概要。
✦ OpenID Connect 1.0
✦ 本スライドでは OIDC と書きます。
✦ ちなみに OpenID と OpenID Connect は別の仕様です。
✦ あるシステムが持つ「認証」の責務を外部システムに任せるため
の仕組みです。
✦ OAuth 2.0
✦ 本スライドでは OAuth と書きます。
✦ もちろん、OAuth 2.0 と OAuth 1.0a 等は別の仕様です。
✦ あるシステムが外部システムに対するAPIアクセスの「認可」を受
け取るための仕組みです。
29
#cmdevio2016 #AⒸ Classmethod, Inc.
OIDC と OAuth の関係
✦ ボトムアップ視点(技術的な視点)
✦ まず、OAuth という認可に関する仕組みがある。
✦ そこに認証に関する機能を持たせる拡張を行ったのが OIDC。
✦ つまり、OIDC は OAuth のスーパーセットである。
✦ OAuth を把握してから OIDC の理解に進みたい…?
✦ トップダウン視点(世間の要求と歴史経緯視点)
✦ OpenID という認証に関する仕組みがあった。
✦ OAuth という認可に関する仕組みもあった。
✦ 世間でOAuthがモテてたので、OpenIDがそれに乗っかった。
✦ 認証すれば、どうせ認可の機能も求められる。
✦ 実は OIDC を把握してから OAuth に話を繋いだ方が理解しや
すい…?(都元の主観です)
30
#cmdevio2016 #AⒸ Classmethod, Inc.
OIDCが実現してくれること
✦ OIDCの登場人物
✦ End-User (EU) と User-Agent (UA)
✦ Relying Party (RP)
✦ OpenID Provider (OP, IdP)
✦ ストーリー
✦ あなたはあるWebアプリ(=RP)を作っているとする。
✦ そのアプリでユーザ(=EU)の認証を行いたい。
✦ けど自システム内でパスワードを保持したくない。
✦ 願わくば、認証を外部システム(=OP)に丸投げしたい。
31
#cmdevio2016 #AⒸ Classmethod, Inc.
OIDCのしくみ
✦ OPがID/passを検証
✦ ID token を発行
✦ 「この人はmiyamotoさんで
す」という文書に、OPが電
子署名したもの。
✦ RPはOPを全面信頼
✦ 「OPがそう言うのだから信
じる。あなたはmiyamotoさ
んだ。」
✦ ただし、電子署名を検証して
改竄がないことを確認。
32
#cmdevio2016 #AⒸ Classmethod, Inc.
OIDCをよく考えてみる。
✦ OAuth って言うと、Web APIの話とか、そのAPIに
対するアクセス制御の話が浮かぶ。
✦ 今の話に、Web APIのアクセス制御、出てきた?
✦ そう、やはり OIDC は OAuth とは別の話なのです。
✦ マクロの視点では「認証」していない。
✦ 恐らくRPはその後、OPから受け取った認証に基づい
て、RP内部で独自に「認可」をしているであろう。
33
#cmdevio2016 #AⒸ Classmethod, Inc.
OAuthが実現してくれること
✦ OAuthの登場人物
✦ Resource Owner (RO) と User-Agent (UA)
✦ Client (CL)
✦ Authorization Server (AS)
✦ Resource Server (RS)
✦ ああ、なんか

さっきより登場人物が1人多い。
34
#cmdevio2016 #AⒸ Classmethod, Inc.
OAuthのストーリー
✦ ストーリー1
✦ あなたはあるアプリ(=CL)を作っているとする。
✦ そのアプリで別システム(=RS)の情報にアクセスしたい。
✦ けどその情報へのアクセス権は、自分のアプリが持っているものでは
なく、本来はこのアプリのユーザ(=RO)が持っているものである。
✦ 願わくば、ROの許可のもと、RSへのアクセス権をCが持ちたい。
✦ ストーリー2
✦ あなたはあるサービス(=RS)を作っているとする。
✦ このサービスが持つリソースを、広くサードパーティ(=CL)に公開
して、サービスのAPIエコシステムを広げたい。
✦ ただし、ユーザ(=RO)の許可のもと、適切なアクセス制御が必要。
35
#cmdevio2016 #AⒸ Classmethod, Inc.
OAuthのしくみ
✦ ASがROの認可意思を
確認
✦ Access token を発行
✦ RSにアクセスするための
✦ RSはASを全面信頼
✦ ASが「 は正しい」と
言っているのだから許可
する。
36
#cmdevio2016 #A
それにしても、似てない?
37Ⓒ Classmethod, Inc.
#cmdevio2016 #A
それにしても、似てない?
38Ⓒ Classmethod, Inc.
#cmdevio2016 #A
それにしても、似てない?
39Ⓒ Classmethod, Inc.
だいたい一緒、でいいよね?(雑
#cmdevio2016 #AⒸ Classmethod, Inc.
非対称的な並列比較に注意 (2)
✦ OIDC は「認証の委譲」プロトコル。
✦ OAuth は「認可の委譲」プロトコル。
40
RPが行うべき「認証」を
「OPに」委譲するのがOIDC
EUが持つ「認可」を
「CLに」委譲するのがOAuth
と言われます。
#cmdevio2016 #AⒸ Classmethod, Inc.
余談:OAuthで「認証」はできない?
✦ まぁ、出来ないわけではない。が問題点がある。
✦ 権限の最小化問題
✦ 要するに「この人は都元家に入る を持っているから都元さんとして認め
る」という認証方法。ただ認証したいだけなのに、家財への認可を渡して
しまうって、良いの? 権限大きすぎない?
✦ まぁ、適切に権限を絞ったAccess tokenを発行すれば大問題はない。
✦ トークン置換攻撃問題
✦ 素朴に作るとセキュリティ・ホールができる。
✦ まぁ、適切にaudの検証ができる仕組みを用意すれば、大問題はない。
✦ 非標準仕様問題
✦ 「OAuthによる認証」は標準化された仕組みではない。
✦ 誰もがオレオレ仕様を作り、実装することになる。
✦ OIDCが標準化されてるんだから、それ使えば?
41
#cmdevio2016 #AⒸ Classmethod, Inc.
ちょっと話戻すよ。
✦ そうです。CMPとかの話です。
✦ 各マイクロWebアプリケーションは、OIDCのRPに
なればいい。中央のOPに認証を委譲する。
✦ 各マイクロWebアプリケーションは、OAuthのCLに
なればいい。ROの意思表示に基づき、APIへのアク
セス認可を得る。
✦ 各マイクロサービスは、OAuthのRSになればいい。
ASの発行したアクセストークンを持っていればリ
ソースへのアクセスを許可する。
42
#cmdevio2016 #A
Single Sign-On (SSO)
43
#cmdevio2016 #AⒸ Classmethod, Inc.
まだ問題は残る
✦ 各マイクロWebアプリは共通のIDで認証できるよう
になった(ID統合)。
✦ だが、各アプリの認証は独立しているため、アプリが
切り替わる度にログインを要求してしまう。
✦ ID統合とSSOはまた別の話。
44
#cmdevio2016 #AⒸ Classmethod, Inc.
Single Sign-On
✦ 1回ログインしたら、別のシステムに遷移した時も、
再びログイン画面を出さないようにしたい。
✦ これにより、エンドユーザにマイクロWebアプリケー
ションを意識させず、1つのアプリケーションのよう
に使ってもらうことができる。
45
#cmdevio2016 #AⒸ Classmethod, Inc.
OIDCにおける「認証」の根っこ
✦ OIDCのOPは、結局は目の前にいるユーザを「認証」
しなければならない。委譲される立場なのだから。
✦ ただ、仕様においては、その「認証」の方法を具体的
には定めていない。実装に任せる。
✦ 別にBasic認証でも、クライアント証明書認証でも、生体認証
でも構わない。
✦ 現実的にはフォーム認証が一般的。ID / pass (WYK)
✦ つまり、session cookieによる認証でもOK。
46
#cmdevio2016 #AⒸ Classmethod, Inc.
認証とセッション
✦ HTTPとは元来statelessなプロトコル。
✦ ただ、人間が扱うシステムで毎回認証のための情報を
送らなきゃいけないのは話にならない。
✦ 一度認証したら、セッションIDをcookieに払い出し、
一定期間はこのcookieを確認することを以って認証
を代替する。
✦ セッションIDという名がついているが、identifierであると共
にcredentialである、いわゆる認証トークンの一種であるこ
とに注意。
47
#cmdevio2016 #AⒸ Classmethod, Inc.
OIDCにおけるSSO
✦ RPからのAuthZ Requestに対し
て毎回ログインフォームを出して認
証を行わない。
✦ OP上でのセッションが生きていれ
ば、それを認証とする。
✦ 結果、OP上でのセッションが生き
ている限り、どのOPから何回
AuthZ Requestが来ても、ログ
インフォームが現れない。
48
#cmdevio2016 #AⒸ Classmethod, Inc.
OIDCにおけるSSO
✦ RPからのAuthZ Requestに対し
て毎回ログインフォームを出して認
証を行わない。
✦ OP上でのセッションが生きていれ
ば、それを認証とする。
✦ 結果、OP上でのセッションが生き
ている限り、どのOPから何回
AuthZ Requestが来ても、ログ
インフォームが現れない。
49
↑セッションによって
EUとのインタラクションを
回避したフロー
#cmdevio2016 #A
Global Navigation Menu
Service
50
#cmdevio2016 #AⒸ Classmethod, Inc.
Look and Feel
✦ ここまでの施策を適用した上で、各マイクロWebア
プリケーション間で look & feel を合わせておけば、
全体を1つのアプリケーションだと錯覚する。
✦ ユーザは複数のWebアプリケーションを意識しない。
✦ 各Webアプリケーションの単位は、グローバルナビ
ゲーションメニューの単位にほぼ等しい?(仮説)
51
#cmdevio2016 #AⒸ Classmethod, Inc.
Global Navigation Menu Service
✦ 全てのWebアプリケーションが(概ね)共通して持つ、
グローバルナビゲーションがある。
✦ これを表示するためには、全てのWebアプリケーション
が、SSOの輪の中にあるWebアプリケーションを相互に
知っていなければならなくなる。
✦ それを解消するために、「SSOの輪の中にあるWebアプ
リケーション」を管理し、ナビゲーションメニューを構築
するために必要な情報を提供するサービスがあると良い。
52
#cmdevio2016 #A
まぁ、まだ、ない。
Developers.IO 2016
#cmdevio2016 #A54
A-3
Ⓒ Classmethod, Inc.
✦ マイクロサービス
✦ マイクロWebアプリケーション
✦ 認証と認可
✦ OpenID Connect 1.0 と OAuth 2.0
✦ Single Sign On
✦ Global Navigation Menu Service
本日のスライド
bit.ly/cm-microwebapp
マイクロWebアプリケーション

複数サブシステムを OpenID Connect で繋ぐアーキテクチャ

Weitere ähnliche Inhalte

Was ist angesagt?

YAPC::Tokyo 2013 ritou OpenID Connect
YAPC::Tokyo 2013 ritou OpenID ConnectYAPC::Tokyo 2013 ritou OpenID Connect
YAPC::Tokyo 2013 ritou OpenID Connect
Ryo Ito
 
ID & IT 2013 - OpenID Connect Hands-on
ID & IT 2013 - OpenID Connect Hands-onID & IT 2013 - OpenID Connect Hands-on
ID & IT 2013 - OpenID Connect Hands-on
Nov Matake
 
なんとなくOAuth怖いって思ってるやつちょっと来い
なんとなくOAuth怖いって思ってるやつちょっと来いなんとなくOAuth怖いって思ってるやつちょっと来い
なんとなくOAuth怖いって思ってるやつちょっと来い
Ryo Ito
 
JWT Translation #technight
JWT Translation #technightJWT Translation #technight
JWT Translation #technight
Nov Matake
 

Was ist angesagt? (20)

PDSを実現するにあたっての技術動向の紹介 (OAuth, OpenID Connect, UMAなど)
PDSを実現するにあたっての技術動向の紹介 (OAuth, OpenID Connect, UMAなど)PDSを実現するにあたっての技術動向の紹介 (OAuth, OpenID Connect, UMAなど)
PDSを実現するにあたっての技術動向の紹介 (OAuth, OpenID Connect, UMAなど)
 
俺が考えた最強のID連携デザインパターン
俺が考えた最強のID連携デザインパターン俺が考えた最強のID連携デザインパターン
俺が考えた最強のID連携デザインパターン
 
ID連携のあるとき~、ないとき~ #エンプラ編
ID連携のあるとき~、ないとき~ #エンプラ編ID連携のあるとき~、ないとき~ #エンプラ編
ID連携のあるとき~、ないとき~ #エンプラ編
 
安全なID連携のハウツー
安全なID連携のハウツー安全なID連携のハウツー
安全なID連携のハウツー
 
YAPC::Tokyo 2013 ritou OpenID Connect
YAPC::Tokyo 2013 ritou OpenID ConnectYAPC::Tokyo 2013 ritou OpenID Connect
YAPC::Tokyo 2013 ritou OpenID Connect
 
IETF94 M2M Authentication関連報告
IETF94 M2M Authentication関連報告IETF94 M2M Authentication関連報告
IETF94 M2M Authentication関連報告
 
ID & IT 2013 - OpenID Connect Hands-on
ID & IT 2013 - OpenID Connect Hands-onID & IT 2013 - OpenID Connect Hands-on
ID & IT 2013 - OpenID Connect Hands-on
 
なんとなくOAuth怖いって思ってるやつちょっと来い
なんとなくOAuth怖いって思ってるやつちょっと来いなんとなくOAuth怖いって思ってるやつちょっと来い
なんとなくOAuth怖いって思ってるやつちょっと来い
 
#idcon 15th ritou 2factor auth
#idcon 15th ritou 2factor auth#idcon 15th ritou 2factor auth
#idcon 15th ritou 2factor auth
 
[SC07] Azure AD と Ruby で学ぶ OpenID Connect!
[SC07] Azure AD と Ruby で学ぶ OpenID Connect![SC07] Azure AD と Ruby で学ぶ OpenID Connect!
[SC07] Azure AD と Ruby で学ぶ OpenID Connect!
 
サバフェス 2016 Yahoo! ID連携のご紹介 〜OpenID Connect入門〜
サバフェス 2016 Yahoo! ID連携のご紹介 〜OpenID Connect入門〜サバフェス 2016 Yahoo! ID連携のご紹介 〜OpenID Connect入門〜
サバフェス 2016 Yahoo! ID連携のご紹介 〜OpenID Connect入門〜
 
認証技術、デジタルアイデンティティ技術の最新動向
認証技術、デジタルアイデンティティ技術の最新動向認証技術、デジタルアイデンティティ技術の最新動向
認証技術、デジタルアイデンティティ技術の最新動向
 
OpenID Connect のビジネスチャンス
OpenID Connect のビジネスチャンスOpenID Connect のビジネスチャンス
OpenID Connect のビジネスチャンス
 
Standard-based Identity (1)
Standard-based Identity (1)Standard-based Identity (1)
Standard-based Identity (1)
 
『OpenID ConnectとSCIMのエンタープライズ実装ガイドライン』解説
『OpenID ConnectとSCIMのエンタープライズ実装ガイドライン』解説『OpenID ConnectとSCIMのエンタープライズ実装ガイドライン』解説
『OpenID ConnectとSCIMのエンタープライズ実装ガイドライン』解説
 
OAuth / OpenID Connectを中心とするAPIセキュリティについて #yuzawaws
OAuth / OpenID Connectを中心とするAPIセキュリティについて #yuzawawsOAuth / OpenID Connectを中心とするAPIセキュリティについて #yuzawaws
OAuth / OpenID Connectを中心とするAPIセキュリティについて #yuzawaws
 
実装して理解するLINE LoginとOpenID Connect入門
実装して理解するLINE LoginとOpenID Connect入門実装して理解するLINE LoginとOpenID Connect入門
実装して理解するLINE LoginとOpenID Connect入門
 
Yahoo! JAPANのOpenID Certified Mark取得について
Yahoo! JAPANのOpenID Certified Mark取得についてYahoo! JAPANのOpenID Certified Mark取得について
Yahoo! JAPANのOpenID Certified Mark取得について
 
JWT Translation #technight
JWT Translation #technightJWT Translation #technight
JWT Translation #technight
 
なぜOpenID Connectが必要となったのか、その歴史的背景
なぜOpenID Connectが必要となったのか、その歴史的背景なぜOpenID Connectが必要となったのか、その歴史的背景
なぜOpenID Connectが必要となったのか、その歴史的背景
 

Andere mochten auch

なんたって”DevQA” アジャイル開発とQAの合体が改善を生む - 永田 敦 氏 #postudy
なんたって”DevQA” アジャイル開発とQAの合体が改善を生む - 永田 敦 氏 #postudyなんたって”DevQA” アジャイル開発とQAの合体が改善を生む - 永田 敦 氏 #postudy
なんたって”DevQA” アジャイル開発とQAの合体が改善を生む - 永田 敦 氏 #postudy
POStudy
 
エンジニアだけどもっとユーザーに価値を届けたいからスクラムマスター始めました
エンジニアだけどもっとユーザーに価値を届けたいからスクラムマスター始めましたエンジニアだけどもっとユーザーに価値を届けたいからスクラムマスター始めました
エンジニアだけどもっとユーザーに価値を届けたいからスクラムマスター始めました
Yusuke Amano
 

Andere mochten auch (20)

ID連携概要 - OpenID TechNight vol.13
ID連携概要 - OpenID TechNight vol.13ID連携概要 - OpenID TechNight vol.13
ID連携概要 - OpenID TechNight vol.13
 
Amazon Aurora の活用 - Developers.IO in OSAKA
Amazon Aurora の活用 - Developers.IO in OSAKAAmazon Aurora の活用 - Developers.IO in OSAKA
Amazon Aurora の活用 - Developers.IO in OSAKA
 
kintoneエンジニアが紹介する品質向上のための取り組み
kintoneエンジニアが紹介する品質向上のための取り組みkintoneエンジニアが紹介する品質向上のための取り組み
kintoneエンジニアが紹介する品質向上のための取り組み
 
kintoneチームのKAIZEN文化
kintoneチームのKAIZEN文化kintoneチームのKAIZEN文化
kintoneチームのKAIZEN文化
 
アジャイルメトリクス実践ガイド
アジャイルメトリクス実践ガイドアジャイルメトリクス実践ガイド
アジャイルメトリクス実践ガイド
 
なんたって”DevQA” アジャイル開発とQAの合体が改善を生む - 永田 敦 氏 #postudy
なんたって”DevQA” アジャイル開発とQAの合体が改善を生む - 永田 敦 氏 #postudyなんたって”DevQA” アジャイル開発とQAの合体が改善を生む - 永田 敦 氏 #postudy
なんたって”DevQA” アジャイル開発とQAの合体が改善を生む - 永田 敦 氏 #postudy
 
[RSGT2017] つらい問題に出会ったら
[RSGT2017] つらい問題に出会ったら[RSGT2017] つらい問題に出会ったら
[RSGT2017] つらい問題に出会ったら
 
導入に困っているあなたに贈る スクラム導入コミュニケーション術
導入に困っているあなたに贈る スクラム導入コミュニケーション術導入に困っているあなたに贈る スクラム導入コミュニケーション術
導入に困っているあなたに贈る スクラム導入コミュニケーション術
 
エンジニアだけどもっとユーザーに価値を届けたいからスクラムマスター始めました
エンジニアだけどもっとユーザーに価値を届けたいからスクラムマスター始めましたエンジニアだけどもっとユーザーに価値を届けたいからスクラムマスター始めました
エンジニアだけどもっとユーザーに価値を届けたいからスクラムマスター始めました
 
共感する開発のことだけ考えた。
共感する開発のことだけ考えた。共感する開発のことだけ考えた。
共感する開発のことだけ考えた。
 
「実録!となりのJenkins2.0」 - 第7回大阪 / 第9回(東京)Jenkins勉強会 #jenkinsstudy
「実録!となりのJenkins2.0」 - 第7回大阪 / 第9回(東京)Jenkins勉強会 #jenkinsstudy「実録!となりのJenkins2.0」 - 第7回大阪 / 第9回(東京)Jenkins勉強会 #jenkinsstudy
「実録!となりのJenkins2.0」 - 第7回大阪 / 第9回(東京)Jenkins勉強会 #jenkinsstudy
 
世界と事例から学ぶ、プロダクトオーナーの「素養」としてのアジャイルメトリクス
世界と事例から学ぶ、プロダクトオーナーの「素養」としてのアジャイルメトリクス世界と事例から学ぶ、プロダクトオーナーの「素養」としてのアジャイルメトリクス
世界と事例から学ぶ、プロダクトオーナーの「素養」としてのアジャイルメトリクス
 
アジャイルコーチが現場で学んだプロダクトオーナーの実際と勘所 POの二番目に大事なことと
アジャイルコーチが現場で学んだプロダクトオーナーの実際と勘所 POの二番目に大事なこととアジャイルコーチが現場で学んだプロダクトオーナーの実際と勘所 POの二番目に大事なことと
アジャイルコーチが現場で学んだプロダクトオーナーの実際と勘所 POの二番目に大事なことと
 
FiNCとマイクロサービス
FiNCとマイクロサービスFiNCとマイクロサービス
FiNCとマイクロサービス
 
FiNC DDD第一回勉強会
FiNC DDD第一回勉強会FiNC DDD第一回勉強会
FiNC DDD第一回勉強会
 
マイクロサービスアーキテクチャの設計 - JUG2015
マイクロサービスアーキテクチャの設計 - JUG2015マイクロサービスアーキテクチャの設計 - JUG2015
マイクロサービスアーキテクチャの設計 - JUG2015
 
アクセシビリティはじめました
アクセシビリティはじめましたアクセシビリティはじめました
アクセシビリティはじめました
 
エンタープライズJava環境におけるマイクロサービス・アーキテクチャーの必要性 #natsumiB4
エンタープライズJava環境におけるマイクロサービス・アーキテクチャーの必要性 #natsumiB4エンタープライズJava環境におけるマイクロサービス・アーキテクチャーの必要性 #natsumiB4
エンタープライズJava環境におけるマイクロサービス・アーキテクチャーの必要性 #natsumiB4
 
Oauth2.0とか(認証と認可)_201403
Oauth2.0とか(認証と認可)_201403Oauth2.0とか(認証と認可)_201403
Oauth2.0とか(認証と認可)_201403
 
Cassandraのトランザクションサポート化 & web2pyによるcms用プラグイン開発
Cassandraのトランザクションサポート化 & web2pyによるcms用プラグイン開発Cassandraのトランザクションサポート化 & web2pyによるcms用プラグイン開発
Cassandraのトランザクションサポート化 & web2pyによるcms用プラグイン開発
 

Ähnlich wie マイクロWebアプリケーション - Developers.IO 2016

トラストレベルに応じた認証と認可のポリシー
トラストレベルに応じた認証と認可のポリシートラストレベルに応じた認証と認可のポリシー
トラストレベルに応じた認証と認可のポリシー
Yusuke Kondo
 

Ähnlich wie マイクロWebアプリケーション - Developers.IO 2016 (20)

Authlete: セキュアな金融 API 基盤の実現と Google Cloud の活用 #gc_inside
Authlete: セキュアな金融 API 基盤の実現と Google Cloud の活用 #gc_insideAuthlete: セキュアな金融 API 基盤の実現と Google Cloud の活用 #gc_inside
Authlete: セキュアな金融 API 基盤の実現と Google Cloud の活用 #gc_inside
 
20170415 mttokyo handson
20170415 mttokyo handson20170415 mttokyo handson
20170415 mttokyo handson
 
OpenID ConnectとSCIMによるエンタープライズでのID連携活用に向けて
OpenID ConnectとSCIMによるエンタープライズでのID連携活用に向けてOpenID ConnectとSCIMによるエンタープライズでのID連携活用に向けて
OpenID ConnectとSCIMによるエンタープライズでのID連携活用に向けて
 
20170324 html5j web_paltform_study
20170324 html5j web_paltform_study20170324 html5j web_paltform_study
20170324 html5j web_paltform_study
 
Anonymous OAuth Test
Anonymous OAuth TestAnonymous OAuth Test
Anonymous OAuth Test
 
PayPalとセキュリティの関係について
PayPalとセキュリティの関係についてPayPalとセキュリティの関係について
PayPalとセキュリティの関係について
 
Open ID Connect(OIDC)をスライド形式で理解する
Open ID Connect(OIDC)をスライド形式で理解するOpen ID Connect(OIDC)をスライド形式で理解する
Open ID Connect(OIDC)をスライド形式で理解する
 
Scale Your Business without Servers
Scale Your Business without ServersScale Your Business without Servers
Scale Your Business without Servers
 
Idcon25 FIDO2 の概要と YubiKey の実装
Idcon25 FIDO2 の概要と YubiKey の実装Idcon25 FIDO2 の概要と YubiKey の実装
Idcon25 FIDO2 の概要と YubiKey の実装
 
CIBA (Client Initiated Backchannel Authentication) の可能性 #authlete #api #oauth...
CIBA (Client Initiated Backchannel Authentication) の可能性 #authlete #api #oauth...CIBA (Client Initiated Backchannel Authentication) の可能性 #authlete #api #oauth...
CIBA (Client Initiated Backchannel Authentication) の可能性 #authlete #api #oauth...
 
.NET ラボ~開発者のためのアイデンティティテクノロジーw/ Windows Phone
.NET ラボ~開発者のためのアイデンティティテクノロジーw/ Windows Phone.NET ラボ~開発者のためのアイデンティティテクノロジーw/ Windows Phone
.NET ラボ~開発者のためのアイデンティティテクノロジーw/ Windows Phone
 
金融 API 時代のセキュリティ: OpenID Financial API (FAPI) WG
金融 API 時代のセキュリティ: OpenID Financial API (FAPI) WG金融 API 時代のセキュリティ: OpenID Financial API (FAPI) WG
金融 API 時代のセキュリティ: OpenID Financial API (FAPI) WG
 
オープン API と Authlete のソリューション
オープン API と Authlete のソリューションオープン API と Authlete のソリューション
オープン API と Authlete のソリューション
 
PPUG Kyoto #1
PPUG Kyoto #1PPUG Kyoto #1
PPUG Kyoto #1
 
OIDC(OpenID Connect)について解説①
OIDC(OpenID Connect)について解説①OIDC(OpenID Connect)について解説①
OIDC(OpenID Connect)について解説①
 
トラストレベルに応じた認証と認可のポリシー
トラストレベルに応じた認証と認可のポリシートラストレベルに応じた認証と認可のポリシー
トラストレベルに応じた認証と認可のポリシー
 
Mobage Connect と Identity 関連技術への取り組み - OpenID Summit Tokyo 2015
Mobage Connect と Identity 関連技術への取り組み - OpenID Summit Tokyo 2015Mobage Connect と Identity 関連技術への取り組み - OpenID Summit Tokyo 2015
Mobage Connect と Identity 関連技術への取り組み - OpenID Summit Tokyo 2015
 
GDG Shikoku 2013
GDG Shikoku 2013GDG Shikoku 2013
GDG Shikoku 2013
 
FAPI (Financial-grade API) and CIBA (Client Initiated Backchannel Authenticat...
FAPI (Financial-grade API) and CIBA (Client Initiated Backchannel Authenticat...FAPI (Financial-grade API) and CIBA (Client Initiated Backchannel Authenticat...
FAPI (Financial-grade API) and CIBA (Client Initiated Backchannel Authenticat...
 
LINEログインの最新アップデートとアプリ連携ウォークスルー
LINEログインの最新アップデートとアプリ連携ウォークスルーLINEログインの最新アップデートとアプリ連携ウォークスルー
LINEログインの最新アップデートとアプリ連携ウォークスルー
 

Mehr von 都元ダイスケ Miyamoto

AWSにおけるバッチ処理の ベストプラクティス - Developers.IO Meetup 05
AWSにおけるバッチ処理の ベストプラクティス - Developers.IO Meetup 05AWSにおけるバッチ処理の ベストプラクティス - Developers.IO Meetup 05
AWSにおけるバッチ処理の ベストプラクティス - Developers.IO Meetup 05
都元ダイスケ Miyamoto
 
20140315 JAWS DAYS 2014 ACEに聞け! CloudFormation編
20140315 JAWS DAYS 2014 ACEに聞け! CloudFormation編20140315 JAWS DAYS 2014 ACEに聞け! CloudFormation編
20140315 JAWS DAYS 2014 ACEに聞け! CloudFormation編
都元ダイスケ Miyamoto
 
20131210 CM re:Growth - Infrastructure as Code から Full Reproducible Infrastru...
20131210 CM re:Growth - Infrastructure as Code から Full Reproducible Infrastru...20131210 CM re:Growth - Infrastructure as Code から Full Reproducible Infrastru...
20131210 CM re:Growth - Infrastructure as Code から Full Reproducible Infrastru...
都元ダイスケ Miyamoto
 
20121206 VOYAGE LT - 名前重要って言うけどさ
20121206 VOYAGE LT - 名前重要って言うけどさ20121206 VOYAGE LT - 名前重要って言うけどさ
20121206 VOYAGE LT - 名前重要って言うけどさ
都元ダイスケ Miyamoto
 
20120830 DBリファクタリング読書会第三回
20120830 DBリファクタリング読書会第三回20120830 DBリファクタリング読書会第三回
20120830 DBリファクタリング読書会第三回
都元ダイスケ Miyamoto
 
java-ja 第1回 チキチキ『( ゜ェ゜)・;'.、ゴフッ』 - Strategy
java-ja 第1回 チキチキ『( ゜ェ゜)・;'.、ゴフッ』 - Strategyjava-ja 第1回 チキチキ『( ゜ェ゜)・;'.、ゴフッ』 - Strategy
java-ja 第1回 チキチキ『( ゜ェ゜)・;'.、ゴフッ』 - Strategy
都元ダイスケ Miyamoto
 
DevLOVE Beautiful Development - 第一幕 陽の巻
DevLOVE Beautiful Development - 第一幕 陽の巻DevLOVE Beautiful Development - 第一幕 陽の巻
DevLOVE Beautiful Development - 第一幕 陽の巻
都元ダイスケ Miyamoto
 
DevelopersSummit2011 【17-E-1】 DBも変化せよ - Jiemamy
DevelopersSummit2011 【17-E-1】 DBも変化せよ - JiemamyDevelopersSummit2011 【17-E-1】 DBも変化せよ - Jiemamy
DevelopersSummit2011 【17-E-1】 DBも変化せよ - Jiemamy
都元ダイスケ Miyamoto
 

Mehr von 都元ダイスケ Miyamoto (20)

認証の標準的な方法は分かった。では認可はどう管理するんだい? #cmdevio
認証の標準的な方法は分かった。では認可はどう管理するんだい? #cmdevio認証の標準的な方法は分かった。では認可はどう管理するんだい? #cmdevio
認証の標準的な方法は分かった。では認可はどう管理するんだい? #cmdevio
 
アプリケーション動作ログ、
ERRORで出すか? WARNで出すか? #cmdevio2019
アプリケーション動作ログ、
ERRORで出すか? WARNで出すか? #cmdevio2019アプリケーション動作ログ、
ERRORで出すか? WARNで出すか? #cmdevio2019
アプリケーション動作ログ、
ERRORで出すか? WARNで出すか? #cmdevio2019
 
マイクロサービス時代の認証と認可 - AWS Dev Day Tokyo 2018 #AWSDevDay
マイクロサービス時代の認証と認可 - AWS Dev Day Tokyo 2018 #AWSDevDayマイクロサービス時代の認証と認可 - AWS Dev Day Tokyo 2018 #AWSDevDay
マイクロサービス時代の認証と認可 - AWS Dev Day Tokyo 2018 #AWSDevDay
 
クラスメソッドにおける Web API エンジニアリングの基本的な考え方と標準定義 - Developers.IO 2018 (2018-10-05)
クラスメソッドにおける Web API エンジニアリングの基本的な考え方と標準定義 - Developers.IO 2018 (2018-10-05)クラスメソッドにおける Web API エンジニアリングの基本的な考え方と標準定義 - Developers.IO 2018 (2018-10-05)
クラスメソッドにおける Web API エンジニアリングの基本的な考え方と標準定義 - Developers.IO 2018 (2018-10-05)
 
AWSクラウドデータストレージ総論
AWSクラウドデータストレージ総論AWSクラウドデータストレージ総論
AWSクラウドデータストレージ総論
 
20170312 F.K様向け ライフパートナーM.M様のご提案
20170312 F.K様向け ライフパートナーM.M様のご提案20170312 F.K様向け ライフパートナーM.M様のご提案
20170312 F.K様向け ライフパートナーM.M様のご提案
 
Spring Day 2016 - Web API アクセス制御の最適解
Spring Day 2016 - Web API アクセス制御の最適解Spring Day 2016 - Web API アクセス制御の最適解
Spring Day 2016 - Web API アクセス制御の最適解
 
Single Command Deployのための gradle-aws-plugin講座
Single Command Deployのための gradle-aws-plugin講座Single Command Deployのための gradle-aws-plugin講座
Single Command Deployのための gradle-aws-plugin講座
 
20150908 ”時間の流れ” という無限リストを扱うAWS Lambda
20150908 ”時間の流れ” という無限リストを扱うAWS Lambda20150908 ”時間の流れ” という無限リストを扱うAWS Lambda
20150908 ”時間の流れ” という無限リストを扱うAWS Lambda
 
体で覚えるSQS! DEVIO-MTUP11-TOKYO-007
体で覚えるSQS! DEVIO-MTUP11-TOKYO-007体で覚えるSQS! DEVIO-MTUP11-TOKYO-007
体で覚えるSQS! DEVIO-MTUP11-TOKYO-007
 
AWSにおけるバッチ処理の ベストプラクティス - Developers.IO Meetup 05
AWSにおけるバッチ処理の ベストプラクティス - Developers.IO Meetup 05AWSにおけるバッチ処理の ベストプラクティス - Developers.IO Meetup 05
AWSにおけるバッチ処理の ベストプラクティス - Developers.IO Meetup 05
 
20140315 JAWS DAYS 2014 ACEに聞け! CloudFormation編
20140315 JAWS DAYS 2014 ACEに聞け! CloudFormation編20140315 JAWS DAYS 2014 ACEに聞け! CloudFormation編
20140315 JAWS DAYS 2014 ACEに聞け! CloudFormation編
 
20131210 CM re:Growth - Infrastructure as Code から Full Reproducible Infrastru...
20131210 CM re:Growth - Infrastructure as Code から Full Reproducible Infrastru...20131210 CM re:Growth - Infrastructure as Code から Full Reproducible Infrastru...
20131210 CM re:Growth - Infrastructure as Code から Full Reproducible Infrastru...
 
20130516 cm課外授業8-aws
20130516 cm課外授業8-aws20130516 cm課外授業8-aws
20130516 cm課外授業8-aws
 
20121215 DevLOVE2012 Mahout on AWS
20121215 DevLOVE2012 Mahout on AWS20121215 DevLOVE2012 Mahout on AWS
20121215 DevLOVE2012 Mahout on AWS
 
20121206 VOYAGE LT - 名前重要って言うけどさ
20121206 VOYAGE LT - 名前重要って言うけどさ20121206 VOYAGE LT - 名前重要って言うけどさ
20121206 VOYAGE LT - 名前重要って言うけどさ
 
20120830 DBリファクタリング読書会第三回
20120830 DBリファクタリング読書会第三回20120830 DBリファクタリング読書会第三回
20120830 DBリファクタリング読書会第三回
 
java-ja 第1回 チキチキ『( ゜ェ゜)・;'.、ゴフッ』 - Strategy
java-ja 第1回 チキチキ『( ゜ェ゜)・;'.、ゴフッ』 - Strategyjava-ja 第1回 チキチキ『( ゜ェ゜)・;'.、ゴフッ』 - Strategy
java-ja 第1回 チキチキ『( ゜ェ゜)・;'.、ゴフッ』 - Strategy
 
DevLOVE Beautiful Development - 第一幕 陽の巻
DevLOVE Beautiful Development - 第一幕 陽の巻DevLOVE Beautiful Development - 第一幕 陽の巻
DevLOVE Beautiful Development - 第一幕 陽の巻
 
DevelopersSummit2011 【17-E-1】 DBも変化せよ - Jiemamy
DevelopersSummit2011 【17-E-1】 DBも変化せよ - JiemamyDevelopersSummit2011 【17-E-1】 DBも変化せよ - Jiemamy
DevelopersSummit2011 【17-E-1】 DBも変化せよ - Jiemamy
 

Kürzlich hochgeladen

Kürzlich hochgeladen (11)

業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)
業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)
業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)
 
論文紹介: The Surprising Effectiveness of PPO in Cooperative Multi-Agent Games
論文紹介: The Surprising Effectiveness of PPO in Cooperative Multi-Agent Games論文紹介: The Surprising Effectiveness of PPO in Cooperative Multi-Agent Games
論文紹介: The Surprising Effectiveness of PPO in Cooperative Multi-Agent Games
 
Observabilityは従来型の監視と何が違うのか(キンドリルジャパン社内勉強会:2022年10月27日発表)
Observabilityは従来型の監視と何が違うのか(キンドリルジャパン社内勉強会:2022年10月27日発表)Observabilityは従来型の監視と何が違うのか(キンドリルジャパン社内勉強会:2022年10月27日発表)
Observabilityは従来型の監視と何が違うのか(キンドリルジャパン社内勉強会:2022年10月27日発表)
 
LoRaWANスマート距離検出センサー DS20L カタログ LiDARデバイス
LoRaWANスマート距離検出センサー  DS20L  カタログ  LiDARデバイスLoRaWANスマート距離検出センサー  DS20L  カタログ  LiDARデバイス
LoRaWANスマート距離検出センサー DS20L カタログ LiDARデバイス
 
LoRaWAN スマート距離検出デバイスDS20L日本語マニュアル
LoRaWAN スマート距離検出デバイスDS20L日本語マニュアルLoRaWAN スマート距離検出デバイスDS20L日本語マニュアル
LoRaWAN スマート距離検出デバイスDS20L日本語マニュアル
 
論文紹介:Video-GroundingDINO: Towards Open-Vocabulary Spatio-Temporal Video Groun...
論文紹介:Video-GroundingDINO: Towards Open-Vocabulary Spatio-Temporal Video Groun...論文紹介:Video-GroundingDINO: Towards Open-Vocabulary Spatio-Temporal Video Groun...
論文紹介:Video-GroundingDINO: Towards Open-Vocabulary Spatio-Temporal Video Groun...
 
NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)
NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)
NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)
 
論文紹介:Selective Structured State-Spaces for Long-Form Video Understanding
論文紹介:Selective Structured State-Spaces for Long-Form Video Understanding論文紹介:Selective Structured State-Spaces for Long-Form Video Understanding
論文紹介:Selective Structured State-Spaces for Long-Form Video Understanding
 
Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。
 
新人研修 後半 2024/04/26の勉強会で発表されたものです。
新人研修 後半        2024/04/26の勉強会で発表されたものです。新人研修 後半        2024/04/26の勉強会で発表されたものです。
新人研修 後半 2024/04/26の勉強会で発表されたものです。
 
Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。
 

マイクロWebアプリケーション - Developers.IO 2016

  • 1. Developers.IO 2016 #cmdevio2016 #A A-3 都元ダイスケ クラスメソッド株式会社 Ⓒ Classmethod, Inc. 2016年02月20日 マイクロWebアプリケーション
 複数サブシステムを OpenID Connect で繋ぐアーキテクチャ 1
  • 2. #cmdevio2016 #AⒸ Classmethod, Inc. 自己紹介 ✦ よく訓練されたアップル信者、都元です。 ✦ Webアプリ屋出身のAWS屋 ✦ AWS歴4.5年(2011夏∼) ✦ Java歴約10年(2006頃∼) ✦ Twitter @daisuke_m 2 CloudFormation DynamoDB IAM Beanstalk OAuth OpenID Connect SpringDocker 主戦場・関心キーワード Java Gradle
  • 3. #cmdevio2016 #A3Ⓒ Classmethod, Inc. 去年の都元セッション
  • 4. #cmdevio2016 #AⒸ Classmethod, Inc. 去年の都元セッション ✦ 完全AWSネイティブ ✦ Multi-AZパターン ✦ Multi-AZジョブスケジューラ ✦ CloudFormation ✦ Java 8 + Spring ✦ Spring Data と DDD ✦ Spring Boot と Docker ✦ Spring Batch と SQS ✦ SingleCommandDeploy ✦ gradle-aws-plugin Gradle と Beanstalk ✦ Flyway と RDS ✦ APIファースト ✦ HATEOAS と HAL ✦ Swagger (現 OpenAPI) ✦ aurl 4 CMP(クラスメソッド・メンバーズポータル)
  • 5. #cmdevio2016 #AⒸ Classmethod, Inc. CMPとは ✦ (1) 弊社サービス「メンバーズ」のお客様向けポータル ✦ AWSご利用料金の確認と分析 ✦ CloudTrailの集計結果確認 ✦ ライセンス期限管理 ✦ etc ✦ (2) 社内向け業務システム ✦ コンサルティング資料 ✦ 運用サポート情報管理 ✦ 請求書発行 5 ✦ (3) AWS実験場 ✦ AWS実運用経験の場 ✦ CloudFormation ✦ Elastic Beanstalk ✦ Elastic MapReduce ✦ IAM
  • 6. #cmdevio2016 #AⒸ Classmethod, Inc. モノリシックと分割統治 ✦ 1つのサーバで、全てのソフトウェアをホスティング ✦ 1つのアプリで、UIからDBアクセスまで全てを制御 6 Monolith (c) 2011 Maik Meid https://flic.kr/p/ax2PX3 分割して統治することにより、個別のコンポーネントを独立したチームで開発でき、
 独自のサイクルでリリースできるようになる。はず。(←やったことないw)
  • 7. #cmdevio2016 #AⒸ Classmethod, Inc. 技術レイヤによる分割 ✦ ユーザ I/F レイヤ ✦ Web API レイヤ ✦ Queue Worker レイヤ ✦ データストア レイヤ 7 これ以上分割しづらい。 スケールしない。 無理に分割してもメリットは…?
  • 8. #cmdevio2016 #AⒸ Classmethod, Inc. ビジネスによる分割 ✦ AWSご利用料金集計・分析サービス ✦ CloudTrail 集計・分析サービス ✦ ライセンス期限管理サービス ✦ 請求書発行サービス ✦ 管理者用マスタメンテサービス(バックエンド用) ✦ 統合認証サービス ✦ etc... ✦ etc... 8
  • 10. #cmdevio2016 #A 今、モノリスを見た気がする Monolith (c) 2012 Enrique Gutierrez https://flic.kr/p/egU1k9
  • 12. #cmdevio2016 #AⒸ Classmethod, Inc. AWSはMSAの体現 ✦ これはもう異論ないと思います。 ✦ EC2、S3、RDS、ELB、 AutoScaling、Beanstalk… ✦ Beanstalkは裏でS3やCFnを利用。 ✦ AutoScalingはEC2 APIを操作。 ✦ RDSやELBの実体はEC2……? ✦ 恐らくこれらのサービスも、我々 には見えない、さらに小さなサー ビスで構成されている。はず。 12
  • 13. #cmdevio2016 #AⒸ Classmethod, Inc. AWSマネジメントコンソール ✦ では、そのフロントエンドである AWSマネジメントコンソールは
 モノリシックなアプリケーション だろうか? ✦ 恐らく、違う。 13
  • 14. #cmdevio2016 #AⒸ Classmethod, Inc. Webアプリケーションもマイクロに ✦ タブを切り替えてサービ スを渡り歩くようなペー ジ構成。 ✦ これを一つのアプリケー ションとして実装しなけ ればならない、なんてい う制約はない。 14
  • 17. #cmdevio2016 #AⒸ Classmethod, Inc. MWAで社内円満 ✦ before ✦ 「都元さーん」 ✦ 「嫌です」 ✦ 「いや、聞いてよw」 ✦ 「聞くだけなら…」 ✦ 「CMPにこんな機能が
   欲しいんだけど」 ✦ 「誰がやるんすか」 ✦ 「ですよねー。。。」 17 ✦ after ✦ 「CMPにこんな機能が
   欲しいんだけど」 ✦ 「勝手にサービスAPIと
  フロントエンドを
  デプロイして、
  リンク追加すれば
  いいじゃないすか。」 ✦ 「ファッ!?」 (恥ずかしながら、実話です)
  • 18. #cmdevio2016 #AⒸ Classmethod, Inc. 超えなければいけない問題 ✦認証・認可(本セッションのメインテーマ) ✦ APIの権限管理とApp間でID統合とSSO (Single Sign-On) が必須。 ✦ これからじっくり話します。 ✦インフラコスト(MWAというよりMSAの宿命) ✦ モノリシックよりも大きくインフラを食ってしまう。 ✦ 要するに、OSやフレームワークなど、本来共通化出来る部分が、
 小さくに切り分けることによって冗長になる。 ✦ 確保従量 (pay-as-you-provision) モデル(EC2やDynamoDB等)ではなく、
 消費従量 (pay-as-you-consume) モデル(LambdaやS3等)の課金で、
 アプリケーション( ファンクション)をデプロイしたいなー。 18
  • 19. #cmdevio2016 #A 認証 (Authentication) と 認可 (Authorization) 19
  • 20. #cmdevio2016 #AⒸ Classmethod, Inc. みんな大好き、認証と認可 ✦ ざっくりとした説明。 ✦ 認証 Authentication (略して AuthN) ✦ 通信の相手が誰であるかを確認するプロセス。 ✦ 認可 Authorization (略して AuthZ) ✦ 誰かに対して、リソースアクセスの権限を与えるプロセス。 20
  • 21. #cmdevio2016 #AⒸ Classmethod, Inc. 認証と認可の密結合 ✦ 素朴に捉えると ✦ 相手はAさんだから、アクセスが許可される。 ✦ 相手はAさんではないから、アクセスは許可されない。 ✦ アクセスが許可されるということは、相手はAさんだ。 ✦ アクセスが許可されないということは、相手はAさんではない。 ✦ モノリシックなシステムにおいては大抵、 ✦ 「認証」しなければ「認可」できなかった。 ✦ 誰だかを特定しないことにはアクセスを許可できなかった。 ✦ 誰だかを確認することが、アクセス許可と等価だった。 21
  • 22. #cmdevio2016 #AⒸ Classmethod, Inc. 認証と認可の分離 ✦ 本来人間が持つ権限を、外部システムに委譲する
 仕組みが勃興。OAuth。 ✦ 例えばTwitterとTogetter ✦ Togetterは@daisuke_mに成り代わり(@daisuke_mの名の 下に)Twitterに対してリソースアクセスを要求する。 ✦ Twitterにとって、通信の相手はTogetterであるが、 @daisuke_m相当のアクセス権を持っている。 ✦ @daisuke_mの持つ権限を、別の主体であるTogetterに
 「認可」している。 22
  • 23. #cmdevio2016 #AⒸ Classmethod, Inc. 認証 Authentication ✦ メタファーは「証明書の確認」もっと具体的には住基カード。 ✦ 証明書を検証して、通信の相手が誰であるかを確認する
 プロセス。 ✦ 純粋な認証は、完了したからといって
 何かが許されるとは限らない。 ✦ 認証されても、せいぜいシステムが
 「こんにちはmiyamotoさん」
 とか言い出す位だ、と認識すると良い。 23 Thumb Print Embroidery Wall Hanging (c) 2011 Hey Paul Studios https://flic.kr/p/a6vD7K
  • 24. #cmdevio2016 #AⒸ Classmethod, Inc. 現実世界における認証の手段 ✦ 現実世界における認証ファクター ✦ WHAT YOU ARE (inherence factor) ✦ 顔貌、声、指紋、署名など、その人自身の提示。 ✦ WHAT YOU HAVE (possession factor) ✦ 身分証、携帯電話等、その人だけが持っているものの提示。 ✦ 顔写真等、結果的にWYAに依存するものもある。 ✦ WHAT YOU KNOW (knowledge factor) ✦ パスワード、秘密の質問等、その人だけが知っていることの提示。 ✦ MFA (multi-factor authentication) ✦ ガチ攻めすると哲学ゾーンに入る話。我思う故に我あり? ✦ 顔が同じなら、アイデンティティを確認できるのか? 人の記憶とは? ✦ 「ばかもーん!そいつがルパンだ、追えー!」 24
  • 25. #cmdevio2016 #AⒸ Classmethod, Inc. 認可 Authorization ✦ メタファーは「 や切符の発行」 ✦ 誰かに対して、リソースアクセスの権限を与えるプロセス ✦ 認可にあたって相手の身元確認は必須ではない。(後述) ✦ 認可があるからといって、通信相手の身元が明らかにな るとは限らない。 ✦ 都元家の を持っている人はすべからく(当然)都元家の人間 とは限らない。信頼できる人に を預けている(委譲)かも? ✦ 「錠前」というシステムは、解錠にあたって「目の前に居る人 は誰か?」なんて考えていない。 を持っているから開けたの だ。 25 Keys (c) 2017 Moyan Brenn https://flic.kr/p/5eLUnX
  • 26. #cmdevio2016 #AⒸ Classmethod, Inc. 認証と認可の分離に関する疑問 ✦ 認証せずに認可することなんてあるのか? ✦ 認可にあたってアイデンティティを確認する必要はない。 ✦ 電車の切符売り場では、認証せずとも切符を発行(認可)してくれる。 ✦ 「特定のIPアドレスからのアクセスはOK」なんてのも。(iptables) ✦ 認証したのに認可しないことなんてあるのか? ✦ モノリシックなスコープで考えると、まずない。 ✦ しかし、マイクロサービスのような分散環境において、
 「分散システムにおけるマクロなスコープでは認可はしていない。
  個々のサービス内で、ミクロなスコープでは認可しているかも
  しれない。まぁ、してないかもしれない。知らん。」
 という視点がありうる。(後述) 26
  • 27. #cmdevio2016 #AⒸ Classmethod, Inc. 非対称的な並列比較に注意 (1) ✦ 認証 1.証明書の発行 2.証明書の検証よるアイデンティティの確認(←ココが認証) ✦ 認可 1. の発行(←ココが認可) 2. の検証によるアクセス権の確認 27 アクセス制御処理は2段階に分けられ、第1段階は「ポリシー定義段階」、第2 段階は「ポリシー施行段階」である。認可はポリシー定義段階の機能であり、 その後ポリシー施行段階で事前に定義された認可に基づき、アクセス要求を受 け入れるか拒否するかを決定する。(wikipedia http://bit.ly/1Qqmxmu )
  • 28. #cmdevio2016 #A OpenID Connect 1.0 と OAuth 2.0 28
  • 29. #cmdevio2016 #AⒸ Classmethod, Inc. まず、略称定義と概要。 ✦ OpenID Connect 1.0 ✦ 本スライドでは OIDC と書きます。 ✦ ちなみに OpenID と OpenID Connect は別の仕様です。 ✦ あるシステムが持つ「認証」の責務を外部システムに任せるため の仕組みです。 ✦ OAuth 2.0 ✦ 本スライドでは OAuth と書きます。 ✦ もちろん、OAuth 2.0 と OAuth 1.0a 等は別の仕様です。 ✦ あるシステムが外部システムに対するAPIアクセスの「認可」を受 け取るための仕組みです。 29
  • 30. #cmdevio2016 #AⒸ Classmethod, Inc. OIDC と OAuth の関係 ✦ ボトムアップ視点(技術的な視点) ✦ まず、OAuth という認可に関する仕組みがある。 ✦ そこに認証に関する機能を持たせる拡張を行ったのが OIDC。 ✦ つまり、OIDC は OAuth のスーパーセットである。 ✦ OAuth を把握してから OIDC の理解に進みたい…? ✦ トップダウン視点(世間の要求と歴史経緯視点) ✦ OpenID という認証に関する仕組みがあった。 ✦ OAuth という認可に関する仕組みもあった。 ✦ 世間でOAuthがモテてたので、OpenIDがそれに乗っかった。 ✦ 認証すれば、どうせ認可の機能も求められる。 ✦ 実は OIDC を把握してから OAuth に話を繋いだ方が理解しや すい…?(都元の主観です) 30
  • 31. #cmdevio2016 #AⒸ Classmethod, Inc. OIDCが実現してくれること ✦ OIDCの登場人物 ✦ End-User (EU) と User-Agent (UA) ✦ Relying Party (RP) ✦ OpenID Provider (OP, IdP) ✦ ストーリー ✦ あなたはあるWebアプリ(=RP)を作っているとする。 ✦ そのアプリでユーザ(=EU)の認証を行いたい。 ✦ けど自システム内でパスワードを保持したくない。 ✦ 願わくば、認証を外部システム(=OP)に丸投げしたい。 31
  • 32. #cmdevio2016 #AⒸ Classmethod, Inc. OIDCのしくみ ✦ OPがID/passを検証 ✦ ID token を発行 ✦ 「この人はmiyamotoさんで す」という文書に、OPが電 子署名したもの。 ✦ RPはOPを全面信頼 ✦ 「OPがそう言うのだから信 じる。あなたはmiyamotoさ んだ。」 ✦ ただし、電子署名を検証して 改竄がないことを確認。 32
  • 33. #cmdevio2016 #AⒸ Classmethod, Inc. OIDCをよく考えてみる。 ✦ OAuth って言うと、Web APIの話とか、そのAPIに 対するアクセス制御の話が浮かぶ。 ✦ 今の話に、Web APIのアクセス制御、出てきた? ✦ そう、やはり OIDC は OAuth とは別の話なのです。 ✦ マクロの視点では「認証」していない。 ✦ 恐らくRPはその後、OPから受け取った認証に基づい て、RP内部で独自に「認可」をしているであろう。 33
  • 34. #cmdevio2016 #AⒸ Classmethod, Inc. OAuthが実現してくれること ✦ OAuthの登場人物 ✦ Resource Owner (RO) と User-Agent (UA) ✦ Client (CL) ✦ Authorization Server (AS) ✦ Resource Server (RS) ✦ ああ、なんか
 さっきより登場人物が1人多い。 34
  • 35. #cmdevio2016 #AⒸ Classmethod, Inc. OAuthのストーリー ✦ ストーリー1 ✦ あなたはあるアプリ(=CL)を作っているとする。 ✦ そのアプリで別システム(=RS)の情報にアクセスしたい。 ✦ けどその情報へのアクセス権は、自分のアプリが持っているものでは なく、本来はこのアプリのユーザ(=RO)が持っているものである。 ✦ 願わくば、ROの許可のもと、RSへのアクセス権をCが持ちたい。 ✦ ストーリー2 ✦ あなたはあるサービス(=RS)を作っているとする。 ✦ このサービスが持つリソースを、広くサードパーティ(=CL)に公開 して、サービスのAPIエコシステムを広げたい。 ✦ ただし、ユーザ(=RO)の許可のもと、適切なアクセス制御が必要。 35
  • 36. #cmdevio2016 #AⒸ Classmethod, Inc. OAuthのしくみ ✦ ASがROの認可意思を 確認 ✦ Access token を発行 ✦ RSにアクセスするための ✦ RSはASを全面信頼 ✦ ASが「 は正しい」と 言っているのだから許可 する。 36
  • 39. #cmdevio2016 #A それにしても、似てない? 39Ⓒ Classmethod, Inc. だいたい一緒、でいいよね?(雑
  • 40. #cmdevio2016 #AⒸ Classmethod, Inc. 非対称的な並列比較に注意 (2) ✦ OIDC は「認証の委譲」プロトコル。 ✦ OAuth は「認可の委譲」プロトコル。 40 RPが行うべき「認証」を 「OPに」委譲するのがOIDC EUが持つ「認可」を 「CLに」委譲するのがOAuth と言われます。
  • 41. #cmdevio2016 #AⒸ Classmethod, Inc. 余談:OAuthで「認証」はできない? ✦ まぁ、出来ないわけではない。が問題点がある。 ✦ 権限の最小化問題 ✦ 要するに「この人は都元家に入る を持っているから都元さんとして認め る」という認証方法。ただ認証したいだけなのに、家財への認可を渡して しまうって、良いの? 権限大きすぎない? ✦ まぁ、適切に権限を絞ったAccess tokenを発行すれば大問題はない。 ✦ トークン置換攻撃問題 ✦ 素朴に作るとセキュリティ・ホールができる。 ✦ まぁ、適切にaudの検証ができる仕組みを用意すれば、大問題はない。 ✦ 非標準仕様問題 ✦ 「OAuthによる認証」は標準化された仕組みではない。 ✦ 誰もがオレオレ仕様を作り、実装することになる。 ✦ OIDCが標準化されてるんだから、それ使えば? 41
  • 42. #cmdevio2016 #AⒸ Classmethod, Inc. ちょっと話戻すよ。 ✦ そうです。CMPとかの話です。 ✦ 各マイクロWebアプリケーションは、OIDCのRPに なればいい。中央のOPに認証を委譲する。 ✦ 各マイクロWebアプリケーションは、OAuthのCLに なればいい。ROの意思表示に基づき、APIへのアク セス認可を得る。 ✦ 各マイクロサービスは、OAuthのRSになればいい。 ASの発行したアクセストークンを持っていればリ ソースへのアクセスを許可する。 42
  • 44. #cmdevio2016 #AⒸ Classmethod, Inc. まだ問題は残る ✦ 各マイクロWebアプリは共通のIDで認証できるよう になった(ID統合)。 ✦ だが、各アプリの認証は独立しているため、アプリが 切り替わる度にログインを要求してしまう。 ✦ ID統合とSSOはまた別の話。 44
  • 45. #cmdevio2016 #AⒸ Classmethod, Inc. Single Sign-On ✦ 1回ログインしたら、別のシステムに遷移した時も、 再びログイン画面を出さないようにしたい。 ✦ これにより、エンドユーザにマイクロWebアプリケー ションを意識させず、1つのアプリケーションのよう に使ってもらうことができる。 45
  • 46. #cmdevio2016 #AⒸ Classmethod, Inc. OIDCにおける「認証」の根っこ ✦ OIDCのOPは、結局は目の前にいるユーザを「認証」 しなければならない。委譲される立場なのだから。 ✦ ただ、仕様においては、その「認証」の方法を具体的 には定めていない。実装に任せる。 ✦ 別にBasic認証でも、クライアント証明書認証でも、生体認証 でも構わない。 ✦ 現実的にはフォーム認証が一般的。ID / pass (WYK) ✦ つまり、session cookieによる認証でもOK。 46
  • 47. #cmdevio2016 #AⒸ Classmethod, Inc. 認証とセッション ✦ HTTPとは元来statelessなプロトコル。 ✦ ただ、人間が扱うシステムで毎回認証のための情報を 送らなきゃいけないのは話にならない。 ✦ 一度認証したら、セッションIDをcookieに払い出し、 一定期間はこのcookieを確認することを以って認証 を代替する。 ✦ セッションIDという名がついているが、identifierであると共 にcredentialである、いわゆる認証トークンの一種であるこ とに注意。 47
  • 48. #cmdevio2016 #AⒸ Classmethod, Inc. OIDCにおけるSSO ✦ RPからのAuthZ Requestに対し て毎回ログインフォームを出して認 証を行わない。 ✦ OP上でのセッションが生きていれ ば、それを認証とする。 ✦ 結果、OP上でのセッションが生き ている限り、どのOPから何回 AuthZ Requestが来ても、ログ インフォームが現れない。 48
  • 49. #cmdevio2016 #AⒸ Classmethod, Inc. OIDCにおけるSSO ✦ RPからのAuthZ Requestに対し て毎回ログインフォームを出して認 証を行わない。 ✦ OP上でのセッションが生きていれ ば、それを認証とする。 ✦ 結果、OP上でのセッションが生き ている限り、どのOPから何回 AuthZ Requestが来ても、ログ インフォームが現れない。 49 ↑セッションによって EUとのインタラクションを 回避したフロー
  • 51. #cmdevio2016 #AⒸ Classmethod, Inc. Look and Feel ✦ ここまでの施策を適用した上で、各マイクロWebア プリケーション間で look & feel を合わせておけば、 全体を1つのアプリケーションだと錯覚する。 ✦ ユーザは複数のWebアプリケーションを意識しない。 ✦ 各Webアプリケーションの単位は、グローバルナビ ゲーションメニューの単位にほぼ等しい?(仮説) 51
  • 52. #cmdevio2016 #AⒸ Classmethod, Inc. Global Navigation Menu Service ✦ 全てのWebアプリケーションが(概ね)共通して持つ、 グローバルナビゲーションがある。 ✦ これを表示するためには、全てのWebアプリケーション が、SSOの輪の中にあるWebアプリケーションを相互に 知っていなければならなくなる。 ✦ それを解消するために、「SSOの輪の中にあるWebアプ リケーション」を管理し、ナビゲーションメニューを構築 するために必要な情報を提供するサービスがあると良い。 52
  • 54. Developers.IO 2016 #cmdevio2016 #A54 A-3 Ⓒ Classmethod, Inc. ✦ マイクロサービス ✦ マイクロWebアプリケーション ✦ 認証と認可 ✦ OpenID Connect 1.0 と OAuth 2.0 ✦ Single Sign On ✦ Global Navigation Menu Service 本日のスライド bit.ly/cm-microwebapp マイクロWebアプリケーション
 複数サブシステムを OpenID Connect で繋ぐアーキテクチャ