Spring Day 2016 - Web API アクセス制御の最適解

都元ダイスケ Miyamoto
都元ダイスケ MiyamotoSenior System Architect at Classmethod, Inc.
#springday
∼ Basic認証? APIキー? OAuth 2.0? OpenID Connect? ∼
Spring Security で作る
Web API アクセス制御の
最適解
クラスメソッド株式会社
都元ダイスケ
SPRING DAY 2016
グラントウキョウサウスタワー41F
ROOM3-5
2016/11/18 (Fri)
#springday
よく訓練されたアップル信者、都元です。
Webアプリ屋・AWS屋
AWS歴 5年強(2011夏頃∼)
Java歴 約10年(2006頃∼)
Twitter @daisuke_m
その他戦場

Spring, Gradle, OAuth, OpenID Connect
自己紹介 2
#springday
【 序 章 】
概要、お詫びと訂正、
そして怒涛の結論へ
3
#springday
マイクロサービスアーキテクチャが話題を集め、

コンポーネントのWeb API化が更なる急加速を見せる昨今。
とは言え「誰でも自由に叩いて良い」Web APIなんてのは事実上無く、

ほぼ全てのケースで何かしらのアクセス制御が必要になります。
今日する話 4
Spring Security もサポートする昔ながらの「Basic認証」。

        古い、ということは、悪いソリューションなのか?
最近のAPIのアクセス制御と言えば「OAuth 2.0」がトレンディ?

        Spring Security OAuth もあるし!
一方でAWSは「APIキー方式」を採用。なぜAWSはOAuth2ではないのか?
Spring Security はまだ公式にサポートしていない「OpenID Connect」とは一体…?
Webにおけるアクセス制御の歴史を振り返りつつ、様々なAPIの立ち位
置と共に、その最適解を探っていきたいと思います。
#springday
Springの話
Webブラウザによる通信の話
ステートフルなAPIの話
HTTP(not HTTPS)通信の話
もう2016年っすよ。HTTPS使おう。
今日しない話 5
#springday
スライドを書き進めても、

Springの話やJavaのコードが

ほとんど出てきませんでした(汗
無理やりひねり出しても仕方ないので

気楽な感じで開き直って、

イベント趣旨からズレた話します!
お詫び 6
#springday
結論(!?) 7
case by case
結局APIの認証は何を使えばいいの?
#springday
認証:通信相手が誰か、確認すること。

  (= なりすましでないことの証明)
認可:リクエストが許可されるかどうかを決
めること。
認証と認可は、本来、相互に独立した概念。
しかし多くの場合、認証した上で

  「その主体が権限を持つかどうか」

という視点で認可を行う。
認証と認可 8
#springday
クライアントは全てprivate networkに居る。

つまりAPI サーバへの通信経路は全てprivate。

牧歌的な世界。敵はいない。
そもそも認証(なりすましでないことの証明)要る?
SSLも要る? パフォーマンスを犠牲にしてまで。
まずは private network の世界 9
#springday
七人の敵どころじゃない。
アクセス制御の話を聞きに来てる時点で、

SSL/TLS必須。必須。必須。
天気予報とか郵便番号検索とか、

誰が見ても害がないような情報の

read-only アクセスでない限り。
それだって最近は認証するケースが多い。

OpenWeatherMap とか。
global network に晒した途端 10
#springday
WHAT YOU ARE (inherence factor)
顔貌、声、指紋、署名など、その人自身の提示。
WHAT YOU HAVE (possession factor)
身分証、携帯電話等、その人だけが持っているものの提示。
WHAT YOU KNOW (knowledge factor)
パスワード、秘密の質問等、その人だけが知っていることの提示。
認証の方法 11
#springday
静的・無期限のクレデンシャル

  例: パスワード
静的・有期限のクレデンシャル

  例: OAuth2 アクセストークン・セッションID
動的なクレデンシャル

  例: リクエスト署名 (HMAC)
クレデンシャルの分類 12
#springday
【 第 1 章 】
Basic認証
13
(と、Digest認証)
#springday
HTTPではパスワードが平文で流れるので論外。
ログアウトできない。
「パスワードを保存する」チェックボックス。
見た目かっこ悪い。
(ブラウザのHTTP-BASIC認証) 14
#springday
散々disられているが、決定的な否定理由が見つからない。
BASIC認証 over HTTPS は、OAuth 2.0(後述)及び
その周辺プロトコルにおける、1つの技術要素。
Access Token Request, Revocation, Introspection
API における BASIC認証 over HTTPS 15
Is HTTPS and Basic Authentication secure enough for banking webservices (RESTful)?
http://security.stackexchange.com/questions/44811/
#springday
HTTPSという前提条件の下、適切に運用すれば

直ちに安全に影響を及ぼすレベルではない。
ただ、敢えて勧めはしない。なぜなら…
API における BASIC認証 over HTTPS 16
#springday
Attack windowが大きい。
リクエスト毎に静的・無期限なクレデンシャルが

毎回流れる。
SSL/TLSとて万能ではない。
Heartbleed, POODLE, FREAK, etc.
BASIC認証 over HTTPS を否定するとすれば 17
#springday
静的なクレデンシャルが毎回流れるのが問題ならば、

nonceを利用したチャレンジ&レスポンスで、

動的なクレデンシャルにしてしまえば良いのでは?
チャレンジ&レスポンスなので、

HTTPリクエストが必ず2往復する。
結論:Web APIには向かない。
Digest認証 18
#springday
【 第 2 章 】
APIキー署名
19
#springday
AWSのAPIが採用している認証方式。
HMAC(ハッシュ関数に基づくメッセージ認証符号)
hash( secret + message ) の値は

secretを知らなければ計算できないでしょ?
リクエスト署名用 API キー 20
注:上記の式は、イメージです。素人が素朴に作ったオレオレHMACには脆弱性が発見されており、

  HMACの算出は、実際はもうちょっと複雑な式を使います。
#springday
message = リクエスト内容+現在時刻 等
secret = シークレット・アクセスキー
上記でHMACを計算、これを署名とする。
リクエストと共に、ヘッダで署名を送る。
署名は動的クレデンシャル。
HMACによるリクエスト署名 21
実は、OAuth 1.0a はこんな感じの仕組みでリクエストを行う。
つまり、リクエスト毎に面倒な計算が必要。
#springday
RFC的なスタンダードは存在しない。(欲しい)
署名算出にあたって、"aws4_request" という

文字列定数を利用するオレオレ感。
V1∼4までがあるが、V1は脆弱なので利用しない。
V4の利用を推奨。
AWS Signature Version 4 22
#springday
23
幕間
#springday
最近、都元がやってるお仕事です。
要するに、ECサイト等を作るためのAPIサービス
商品やカテゴリのマスメンや検索
顧客管理
注文や決済の処理
prismatix 24
ここで一旦、CMです。 25
#springday
prismatix の開発を取り巻く環境 26
#springday
都元、前職は某スタートアップ。
現職、クラスメソッド (ブログの会社?)
スタートアップとしての prismatix 27
#springday
prismatixは、UI は提供しません。APIだけ。
ECサイトの UI を持つフロントエンドシステムは、
prismatix API を利用する「クライアント」
「顧客」「クライアント」「prismatix」
3者のアイデンティティ(ID)を連携、コントロール
するアクセス制御機構。それが OAuth 2.0 。
prismatix API 28
#springday
【 第 3 章 】
OAuth 2.0
29
#springday
認証をするための仕組みじゃねェ。
認可をするための仕組みでさえねェ。
A があらかじめもっている認可を B に対して

部分的に委譲するための仕組み。
そもそも OAuth とは 30
認証:通信相手が誰か、確認すること。
認可:リクエストが許可されるかどうかを決めること。
#springday
3者(本当は4者だけけど)間のやり取りで、

エンドユーザの権限を、クライアントに委譲する手続き。
複雑。超複雑。
クライアントは、ユーザから委譲を受けた証として、

「ユーザのIDとpass」ではなく「アクセストークン」を
入手する。
アクセストークンは、静的だが有期限のクレデンシャル。
OAuth の概要 31
#springday
一般的な

API アクセス制御
OAuthによるアクセス制御の特徴 32
OAuth による

アクセス制御
#springday
#springday
通常は、クライアントが全権を握る。
クライアントに認証を受けたユーザが、

クライアントの監督の下に、

クライアントの権限を以って、APIアクセス。
OAuthは、エンドユーザが全権掌握。
神様であるエンドユーザ様の許しを得たクライアントが、

エンドユーザ様の名の下に、

委譲を受けた権限を行使することによる、APIアクセス。
強いのは、クライアントか、エンドユーザか。 33
#springday
エンドユーザは神様である前提のプロトコル。
つまり、エンドユーザに対する認可の仕組みは

定義していない。(スコープ外)
OAuth 2.0 におけるエンドユーザの権限管理 34
#springday
認証

Authentication userAuthentication;
エンドユーザが持つ権限(認可) 

Collection<GrantedAuthority> userAuthorities

= userAuthentication.getGrantedAuthorities();
OAuth2における認証(直接的にはクライアントの認証)

OAuth2Authentication oauth2AuthN; // (has-a userAuthentication)
OAuth2においてエンドユーザから委譲を受けた権限の範囲

Set<String> scopes

= oauth2AuthN.getOAuth2Request().getScope();
Client Credentials 認証においてクライアントが持つ権限(認可)

Collection<GrantedAuthority> clientAuthorities

= oauth2AuthN.getOAuth2Request().getAuthorities();
Spring security のモデル 35
#springday
【 第 4 章 】
OpenID Connect
36
#springday
むしろ OAuth 2.0 よりもシンプル。
個人的に、とっっっっても面白い技術。
でも実は Web API の認証には

あんまり関係が深くない。
というわけで、今日の話のスコープ外。
OpenID Connect 37
#springday
あるところに、とあるアプリがあり、それを操作しているエンドユーザがいました。
アプリはエンドユーザが誰なのか知りたくなりました。(ユーザを認証したい)
が、アプリ自身ではユーザのパスワードを管理したくありません。
そこでアプリは、第三者の「既にパスワードを管理しているシステム」(OpenID Provider) に、
エンドユーザを連れて行って(リダイレクト)、代わりに認証をしてもらいました。
OpenID ProviderはID/passを確認したら、「この人は都元さんだよ」というデータに電子署
名をつけて、アプリに渡します。
アプリは、OpenID Providerの公開 を使って署名を検証します。
検証が成功するということは、この人は確かに都元さんなんだ、と確認が持てます。
もし正しいID/passを示せないのであれば、OpenID Providerはこのデータに署名するわけが
ないのだから。
(OpenID Connect がしてくれること) 38
#springday
まとめ
39
#springday
認証と認可は複雑。
本当に仕組みが必要か、考える。
BASIC認証 over HTTPS は害悪ではない。
が、お勧めもしない。
クライアントを神に位置づけるのであれば、

APIキー署名方式は適切な選択肢。
ただし、仕様がオレオレ化するので、標準化が望まれる。
まとめ 40
#springday
OAuth は2つの主体間で認可を委譲する複雑なモデル。
オーバースペックの可能性があるので、要熟考。
OpenID Connect
Web API 認証には縁が深くない。
でも面白いヨ。
まとめ 41
#springday
42
絶賛エンジニア募集中
1 of 42

Recommended

ドメイン駆動設計 ( DDD ) をやってみよう by
ドメイン駆動設計 ( DDD ) をやってみようドメイン駆動設計 ( DDD ) をやってみよう
ドメイン駆動設計 ( DDD ) をやってみよう増田 亨
50.1K views45 slides
シリコンバレーの「何が」凄いのか by
シリコンバレーの「何が」凄いのかシリコンバレーの「何が」凄いのか
シリコンバレーの「何が」凄いのかAtsushi Nakada
183.9K views77 slides
SQL上級者こそ知って欲しい、なぜO/Rマッパーが重要か? by
SQL上級者こそ知って欲しい、なぜO/Rマッパーが重要か?SQL上級者こそ知って欲しい、なぜO/Rマッパーが重要か?
SQL上級者こそ知って欲しい、なぜO/Rマッパーが重要か?kwatch
59.8K views46 slides
Redisの特徴と活用方法について by
Redisの特徴と活用方法についてRedisの特徴と活用方法について
Redisの特徴と活用方法についてYuji Otani
101.5K views65 slides
さくっと理解するSpring bootの仕組み by
さくっと理解するSpring bootの仕組みさくっと理解するSpring bootの仕組み
さくっと理解するSpring bootの仕組みTakeshi Ogawa
65.2K views38 slides
マイクロサービス 4つの分割アプローチ by
マイクロサービス 4つの分割アプローチマイクロサービス 4つの分割アプローチ
マイクロサービス 4つの分割アプローチ増田 亨
41.4K views60 slides

More Related Content

What's hot

組織にテストを書く文化を根付かせる戦略と戦術 by
組織にテストを書く文化を根付かせる戦略と戦術組織にテストを書く文化を根付かせる戦略と戦術
組織にテストを書く文化を根付かせる戦略と戦術Takuto Wada
76.4K views33 slides
Spring Boot の Web アプリケーションを Docker に載せて AWS ECS で動かしている話 by
Spring Boot の Web アプリケーションを Docker に載せて AWS ECS で動かしている話Spring Boot の Web アプリケーションを Docker に載せて AWS ECS で動かしている話
Spring Boot の Web アプリケーションを Docker に載せて AWS ECS で動かしている話JustSystems Corporation
16.5K views54 slides
DDD x CQRS 更新系と参照系で異なるORMを併用して上手くいった話 by
DDD x CQRS   更新系と参照系で異なるORMを併用して上手くいった話DDD x CQRS   更新系と参照系で異なるORMを併用して上手くいった話
DDD x CQRS 更新系と参照系で異なるORMを併用して上手くいった話Koichiro Matsuoka
88K views89 slides
Node.js Native ESM への道 〜最終章: Babel / TypeScript Modules との闘い〜 by
Node.js Native ESM への道  〜最終章: Babel / TypeScript Modules との闘い〜Node.js Native ESM への道  〜最終章: Babel / TypeScript Modules との闘い〜
Node.js Native ESM への道 〜最終章: Babel / TypeScript Modules との闘い〜Teppei Sato
21.4K views30 slides
エンジニアの個人ブランディングと技術組織 by
エンジニアの個人ブランディングと技術組織エンジニアの個人ブランディングと技術組織
エンジニアの個人ブランディングと技術組織Takafumi ONAKA
23.3K views40 slides
ソーシャルゲーム案件におけるDB分割のPHP実装 by
ソーシャルゲーム案件におけるDB分割のPHP実装ソーシャルゲーム案件におけるDB分割のPHP実装
ソーシャルゲーム案件におけるDB分割のPHP実装infinite_loop
51.8K views51 slides

What's hot(20)

組織にテストを書く文化を根付かせる戦略と戦術 by Takuto Wada
組織にテストを書く文化を根付かせる戦略と戦術組織にテストを書く文化を根付かせる戦略と戦術
組織にテストを書く文化を根付かせる戦略と戦術
Takuto Wada76.4K views
Spring Boot の Web アプリケーションを Docker に載せて AWS ECS で動かしている話 by JustSystems Corporation
Spring Boot の Web アプリケーションを Docker に載せて AWS ECS で動かしている話Spring Boot の Web アプリケーションを Docker に載せて AWS ECS で動かしている話
Spring Boot の Web アプリケーションを Docker に載せて AWS ECS で動かしている話
DDD x CQRS 更新系と参照系で異なるORMを併用して上手くいった話 by Koichiro Matsuoka
DDD x CQRS   更新系と参照系で異なるORMを併用して上手くいった話DDD x CQRS   更新系と参照系で異なるORMを併用して上手くいった話
DDD x CQRS 更新系と参照系で異なるORMを併用して上手くいった話
Koichiro Matsuoka88K views
Node.js Native ESM への道 〜最終章: Babel / TypeScript Modules との闘い〜 by Teppei Sato
Node.js Native ESM への道  〜最終章: Babel / TypeScript Modules との闘い〜Node.js Native ESM への道  〜最終章: Babel / TypeScript Modules との闘い〜
Node.js Native ESM への道 〜最終章: Babel / TypeScript Modules との闘い〜
Teppei Sato21.4K views
エンジニアの個人ブランディングと技術組織 by Takafumi ONAKA
エンジニアの個人ブランディングと技術組織エンジニアの個人ブランディングと技術組織
エンジニアの個人ブランディングと技術組織
Takafumi ONAKA23.3K views
ソーシャルゲーム案件におけるDB分割のPHP実装 by infinite_loop
ソーシャルゲーム案件におけるDB分割のPHP実装ソーシャルゲーム案件におけるDB分割のPHP実装
ソーシャルゲーム案件におけるDB分割のPHP実装
infinite_loop51.8K views
「速」を落とさないコードレビュー by Takafumi ONAKA
「速」を落とさないコードレビュー「速」を落とさないコードレビュー
「速」を落とさないコードレビュー
Takafumi ONAKA55.5K views
RESTful Web アプリの設計レビューの話 by Takuto Wada
RESTful Web アプリの設計レビューの話RESTful Web アプリの設計レビューの話
RESTful Web アプリの設計レビューの話
Takuto Wada72.2K views
そんなトランザクションマネージャで大丈夫か? by takezoe
そんなトランザクションマネージャで大丈夫か?そんなトランザクションマネージャで大丈夫か?
そんなトランザクションマネージャで大丈夫か?
takezoe24.6K views
AWS Black Belt Online Seminar 2018 Amazon DynamoDB Advanced Design Pattern by Amazon Web Services Japan
AWS Black Belt Online Seminar 2018 Amazon DynamoDB Advanced Design PatternAWS Black Belt Online Seminar 2018 Amazon DynamoDB Advanced Design Pattern
AWS Black Belt Online Seminar 2018 Amazon DynamoDB Advanced Design Pattern
Java ORマッパー選定のポイント #jsug by Masatoshi Tada
Java ORマッパー選定のポイント #jsugJava ORマッパー選定のポイント #jsug
Java ORマッパー選定のポイント #jsug
Masatoshi Tada90.1K views
Mercari JPのモノリスサービスをKubernetesに移行した話 PHP Conference 2022 9/24 by Shin Ohno
Mercari JPのモノリスサービスをKubernetesに移行した話 PHP Conference 2022 9/24Mercari JPのモノリスサービスをKubernetesに移行した話 PHP Conference 2022 9/24
Mercari JPのモノリスサービスをKubernetesに移行した話 PHP Conference 2022 9/24
Shin Ohno2.6K views
SQLアンチパターン 幻の第26章「とりあえず削除フラグ」 by Takuto Wada
SQLアンチパターン 幻の第26章「とりあえず削除フラグ」SQLアンチパターン 幻の第26章「とりあえず削除フラグ」
SQLアンチパターン 幻の第26章「とりあえず削除フラグ」
Takuto Wada148.6K views
今さら聞けないDiとspring by 土岐 孝平
今さら聞けないDiとspring今さら聞けないDiとspring
今さら聞けないDiとspring
土岐 孝平24.8K views
SPAセキュリティ入門~PHP Conference Japan 2021 by Hiroshi Tokumaru
SPAセキュリティ入門~PHP Conference Japan 2021SPAセキュリティ入門~PHP Conference Japan 2021
SPAセキュリティ入門~PHP Conference Japan 2021
Hiroshi Tokumaru99.4K views
O/Rマッパーによるトラブルを未然に防ぐ by kwatch
O/Rマッパーによるトラブルを未然に防ぐO/Rマッパーによるトラブルを未然に防ぐ
O/Rマッパーによるトラブルを未然に防ぐ
kwatch48.4K views

Viewers also liked

Lineにおけるspring frameworkの活用 by
Lineにおけるspring frameworkの活用Lineにおけるspring frameworkの活用
Lineにおけるspring frameworkの活用Tokuhiro Matsuno
33.7K views54 slides
Spring Day 2016 springの現在過去未来 by
Spring Day 2016 springの現在過去未来Spring Day 2016 springの現在過去未来
Spring Day 2016 springの現在過去未来Yuichi Hasegawa
11.8K views44 slides
Spring bootで学ぶ初めてのwebアプリ開発 by
Spring bootで学ぶ初めてのwebアプリ開発Spring bootで学ぶ初めてのwebアプリ開発
Spring bootで学ぶ初めてのwebアプリ開発terahide
12.7K views43 slides
アメブロの大規模システム刷新と それを支えるSpring by
アメブロの大規模システム刷新と それを支えるSpringアメブロの大規模システム刷新と それを支えるSpring
アメブロの大規模システム刷新と それを支えるSpringTakuya Hattori
40.8K views136 slides
Data Microservices with Spring Cloud Stream, Task, and Data Flow #jsug #spri... by
Data Microservices with Spring Cloud Stream, Task,  and Data Flow #jsug #spri...Data Microservices with Spring Cloud Stream, Task,  and Data Flow #jsug #spri...
Data Microservices with Spring Cloud Stream, Task, and Data Flow #jsug #spri...Toshiaki Maki
22.3K views117 slides
Spring 5に備えるリアクティブプログラミング入門 by
Spring 5に備えるリアクティブプログラミング入門Spring 5に備えるリアクティブプログラミング入門
Spring 5に備えるリアクティブプログラミング入門Takuya Iwatsuka
31.9K views88 slides

Viewers also liked(20)

Lineにおけるspring frameworkの活用 by Tokuhiro Matsuno
Lineにおけるspring frameworkの活用Lineにおけるspring frameworkの活用
Lineにおけるspring frameworkの活用
Tokuhiro Matsuno33.7K views
Spring Day 2016 springの現在過去未来 by Yuichi Hasegawa
Spring Day 2016 springの現在過去未来Spring Day 2016 springの現在過去未来
Spring Day 2016 springの現在過去未来
Yuichi Hasegawa11.8K views
Spring bootで学ぶ初めてのwebアプリ開発 by terahide
Spring bootで学ぶ初めてのwebアプリ開発Spring bootで学ぶ初めてのwebアプリ開発
Spring bootで学ぶ初めてのwebアプリ開発
terahide12.7K views
アメブロの大規模システム刷新と それを支えるSpring by Takuya Hattori
アメブロの大規模システム刷新と それを支えるSpringアメブロの大規模システム刷新と それを支えるSpring
アメブロの大規模システム刷新と それを支えるSpring
Takuya Hattori40.8K views
Data Microservices with Spring Cloud Stream, Task, and Data Flow #jsug #spri... by Toshiaki Maki
Data Microservices with Spring Cloud Stream, Task,  and Data Flow #jsug #spri...Data Microservices with Spring Cloud Stream, Task,  and Data Flow #jsug #spri...
Data Microservices with Spring Cloud Stream, Task, and Data Flow #jsug #spri...
Toshiaki Maki22.3K views
Spring 5に備えるリアクティブプログラミング入門 by Takuya Iwatsuka
Spring 5に備えるリアクティブプログラミング入門Spring 5に備えるリアクティブプログラミング入門
Spring 5に備えるリアクティブプログラミング入門
Takuya Iwatsuka31.9K views
楽天トラベルとSpring(Spring Day 2016) by Rakuten Group, Inc.
楽天トラベルとSpring(Spring Day 2016)楽天トラベルとSpring(Spring Day 2016)
楽天トラベルとSpring(Spring Day 2016)
Rakuten Group, Inc.14.1K views
Application Re-Architecture Technology ~ StrutsからSpring MVCへ ~ by Yuichi Hasegawa
Application Re-Architecture Technology ~ StrutsからSpring MVCへ ~Application Re-Architecture Technology ~ StrutsからSpring MVCへ ~
Application Re-Architecture Technology ~ StrutsからSpring MVCへ ~
Yuichi Hasegawa9K views
Springを使ったwebアプリにリファクタリングしよう by 土岐 孝平
Springを使ったwebアプリにリファクタリングしようSpringを使ったwebアプリにリファクタリングしよう
Springを使ったwebアプリにリファクタリングしよう
土岐 孝平6.8K views
Grailsでドメイン駆動設計を実践する時の勘所 by Takuma Watabiki
Grailsでドメイン駆動設計を実践する時の勘所Grailsでドメイン駆動設計を実践する時の勘所
Grailsでドメイン駆動設計を実践する時の勘所
Takuma Watabiki8.7K views
Distributed Tracing Velocity2016 by Reshmi Krishna
Distributed Tracing Velocity2016Distributed Tracing Velocity2016
Distributed Tracing Velocity2016
Reshmi Krishna1.7K views
Distributed tracing - get a grasp on your production by nklmish
Distributed tracing - get a grasp on your productionDistributed tracing - get a grasp on your production
Distributed tracing - get a grasp on your production
nklmish2.2K views
Spring CloudとZipkinを利用した分散トレーシング by Rakuten Group, Inc.
Spring CloudとZipkinを利用した分散トレーシングSpring CloudとZipkinを利用した分散トレーシング
Spring CloudとZipkinを利用した分散トレーシング
Rakuten Group, Inc.7.3K views
Internetトラフィックエンジニアリングの現実 by J-Stream Inc.
Internetトラフィックエンジニアリングの現実Internetトラフィックエンジニアリングの現実
Internetトラフィックエンジニアリングの現実
J-Stream Inc.5.1K views
Business Process Modeling in Goldman Sachs @ JJUG CCC Fall 2017 by tty fky
Business Process Modeling in Goldman Sachs @ JJUG CCC Fall 2017Business Process Modeling in Goldman Sachs @ JJUG CCC Fall 2017
Business Process Modeling in Goldman Sachs @ JJUG CCC Fall 2017
tty fky4.3K views
Javaアプリケーションの モダナイゼーションアプローチ by CData Software Japan
Javaアプリケーションの モダナイゼーションアプローチJavaアプリケーションの モダナイゼーションアプローチ
Javaアプリケーションの モダナイゼーションアプローチ
高速なソートアルゴリズムを書こう!! by masakazu matsubara
高速なソートアルゴリズムを書こう!!高速なソートアルゴリズムを書こう!!
高速なソートアルゴリズムを書こう!!
Another compilation method in java - AOT (Ahead of Time) compilation by Logico
Another compilation method in java - AOT (Ahead of Time) compilationAnother compilation method in java - AOT (Ahead of Time) compilation
Another compilation method in java - AOT (Ahead of Time) compilation
Logico 3.6K views
データ履歴管理のためのテンポラルデータモデルとReladomoの紹介 #jjug_ccc #ccc_g3 by Hiroshi Ito
データ履歴管理のためのテンポラルデータモデルとReladomoの紹介 #jjug_ccc #ccc_g3 データ履歴管理のためのテンポラルデータモデルとReladomoの紹介 #jjug_ccc #ccc_g3
データ履歴管理のためのテンポラルデータモデルとReladomoの紹介 #jjug_ccc #ccc_g3
Hiroshi Ito58.9K views

Similar to Spring Day 2016 - Web API アクセス制御の最適解

APIモック3分クッキング by
APIモック3分クッキングAPIモック3分クッキング
APIモック3分クッキング政雄 金森
2.6K views48 slides
Swaggerで始めるモデルファーストなAPI開発 by
Swaggerで始めるモデルファーストなAPI開発Swaggerで始めるモデルファーストなAPI開発
Swaggerで始めるモデルファーストなAPI開発Takuro Sasaki
100.9K views63 slides
Service workerとwebプッシュ通知 by
Service workerとwebプッシュ通知Service workerとwebプッシュ通知
Service workerとwebプッシュ通知zaru sakuraba
3.7K views35 slides
Web Speech APIとWeb MIDI APIでいっこく堂をしてみる by
Web Speech APIとWeb MIDI APIでいっこく堂をしてみるWeb Speech APIとWeb MIDI APIでいっこく堂をしてみる
Web Speech APIとWeb MIDI APIでいっこく堂をしてみるTsuyoshi Seino
1.8K views35 slides
Data API + AWS = (CMS どうでしょう 札幌編) by
Data API + AWS =  (CMS どうでしょう 札幌編)Data API + AWS =  (CMS どうでしょう 札幌編)
Data API + AWS = (CMS どうでしょう 札幌編)Yuji Takayama
2.6K views40 slides
Bay Area Startup Report - IVS CTO Night & Day in Miyazaki by
Bay Area Startup Report - IVS CTO Night & Day in MiyazakiBay Area Startup Report - IVS CTO Night & Day in Miyazaki
Bay Area Startup Report - IVS CTO Night & Day in MiyazakiEiji Shinohara
3.7K views70 slides

Similar to Spring Day 2016 - Web API アクセス制御の最適解(20)

APIモック3分クッキング by 政雄 金森
APIモック3分クッキングAPIモック3分クッキング
APIモック3分クッキング
政雄 金森2.6K views
Swaggerで始めるモデルファーストなAPI開発 by Takuro Sasaki
Swaggerで始めるモデルファーストなAPI開発Swaggerで始めるモデルファーストなAPI開発
Swaggerで始めるモデルファーストなAPI開発
Takuro Sasaki100.9K views
Service workerとwebプッシュ通知 by zaru sakuraba
Service workerとwebプッシュ通知Service workerとwebプッシュ通知
Service workerとwebプッシュ通知
zaru sakuraba3.7K views
Web Speech APIとWeb MIDI APIでいっこく堂をしてみる by Tsuyoshi Seino
Web Speech APIとWeb MIDI APIでいっこく堂をしてみるWeb Speech APIとWeb MIDI APIでいっこく堂をしてみる
Web Speech APIとWeb MIDI APIでいっこく堂をしてみる
Tsuyoshi Seino1.8K views
Data API + AWS = (CMS どうでしょう 札幌編) by Yuji Takayama
Data API + AWS =  (CMS どうでしょう 札幌編)Data API + AWS =  (CMS どうでしょう 札幌編)
Data API + AWS = (CMS どうでしょう 札幌編)
Yuji Takayama2.6K views
Bay Area Startup Report - IVS CTO Night & Day in Miyazaki by Eiji Shinohara
Bay Area Startup Report - IVS CTO Night & Day in MiyazakiBay Area Startup Report - IVS CTO Night & Day in Miyazaki
Bay Area Startup Report - IVS CTO Night & Day in Miyazaki
Eiji Shinohara3.7K views
俺とサーバレスアーキテクチャ Aws cognito + aws api gateway 編 by Masayuki KaToH
俺とサーバレスアーキテクチャ Aws cognito + aws api gateway 編俺とサーバレスアーキテクチャ Aws cognito + aws api gateway 編
俺とサーバレスアーキテクチャ Aws cognito + aws api gateway 編
Masayuki KaToH2.6K views
ADO.NETでつながるクラウドデータ連携 by CData Software Japan
ADO.NETでつながるクラウドデータ連携ADO.NETでつながるクラウドデータ連携
ADO.NETでつながるクラウドデータ連携
AWS活用のいままでとこれから -東急ハンズの事例- by Taiji INOUE
AWS活用のいままでとこれから -東急ハンズの事例-AWS活用のいままでとこれから -東急ハンズの事例-
AWS活用のいままでとこれから -東急ハンズの事例-
Taiji INOUE19.1K views
AWSによるサーバーレスアーキテクチャ by 真吾 吉田
AWSによるサーバーレスアーキテクチャAWSによるサーバーレスアーキテクチャ
AWSによるサーバーレスアーキテクチャ
真吾 吉田3K views
20160624 JAWS-UG名古屋 第12回 API Gateway 事始め by Toshiaki Aoike
20160624 JAWS-UG名古屋 第12回 API Gateway 事始め20160624 JAWS-UG名古屋 第12回 API Gateway 事始め
20160624 JAWS-UG名古屋 第12回 API Gateway 事始め
Toshiaki Aoike1.1K views
Jawsug chiba API Gateway by Takuro Sasaki
Jawsug chiba API GatewayJawsug chiba API Gateway
Jawsug chiba API Gateway
Takuro Sasaki15K views
Running Java Apps with Amazon EC2, AWS Elastic Beanstalk or Serverless by Keisuke Nishitani
Running Java Apps with Amazon EC2, AWS Elastic Beanstalk or ServerlessRunning Java Apps with Amazon EC2, AWS Elastic Beanstalk or Serverless
Running Java Apps with Amazon EC2, AWS Elastic Beanstalk or Serverless
Keisuke Nishitani1.1K views
#decode19 #MW04 誰のための API? Azure デベロッパーにもエンド ユーザーにも嬉しいAPI エコシステム活用アプローチ by Kazuya Sugimoto
#decode19 #MW04 誰のための API? Azure デベロッパーにもエンド ユーザーにも嬉しいAPI エコシステム活用アプローチ#decode19 #MW04 誰のための API? Azure デベロッパーにもエンド ユーザーにも嬉しいAPI エコシステム活用アプローチ
#decode19 #MW04 誰のための API? Azure デベロッパーにもエンド ユーザーにも嬉しいAPI エコシステム活用アプローチ
Kazuya Sugimoto2.4K views
スタートアップならおさえておきたいAWS(Amazon Web Services)入門 ~メディア露出時のピーク対策編~ 先生:高山 博史・今井 雄太 by schoowebcampus
スタートアップならおさえておきたいAWS(Amazon Web Services)入門 ~メディア露出時のピーク対策編~ 先生:高山 博史・今井 雄太スタートアップならおさえておきたいAWS(Amazon Web Services)入門 ~メディア露出時のピーク対策編~ 先生:高山 博史・今井 雄太
スタートアップならおさえておきたいAWS(Amazon Web Services)入門 ~メディア露出時のピーク対策編~ 先生:高山 博史・今井 雄太
schoowebcampus31.1K views
Morning Session - AWS Serverless Ways by akitsukada
Morning Session - AWS Serverless WaysMorning Session - AWS Serverless Ways
Morning Session - AWS Serverless Ways
akitsukada984 views
JAWS-UG北陸第2回 AWSクラウド最新アップデート by SORACOM, INC
JAWS-UG北陸第2回 AWSクラウド最新アップデートJAWS-UG北陸第2回 AWSクラウド最新アップデート
JAWS-UG北陸第2回 AWSクラウド最新アップデート
SORACOM, INC3.1K views
only ip whitelist at cloudfront is ok? by Yuta Suzuki
only ip whitelist at cloudfront is ok?only ip whitelist at cloudfront is ok?
only ip whitelist at cloudfront is ok?
Yuta Suzuki2.1K views

More from 都元ダイスケ Miyamoto

認証の標準的な方法は分かった。では認可はどう管理するんだい? #cmdevio by
認証の標準的な方法は分かった。では認可はどう管理するんだい? #cmdevio認証の標準的な方法は分かった。では認可はどう管理するんだい? #cmdevio
認証の標準的な方法は分かった。では認可はどう管理するんだい? #cmdevio都元ダイスケ Miyamoto
6.8K views51 slides
アプリケーション動作ログ、
ERRORで出すか? WARNで出すか? #cmdevio2019 by
アプリケーション動作ログ、
ERRORで出すか? WARNで出すか? #cmdevio2019アプリケーション動作ログ、
ERRORで出すか? WARNで出すか? #cmdevio2019
アプリケーション動作ログ、
ERRORで出すか? WARNで出すか? #cmdevio2019都元ダイスケ Miyamoto
13.7K views36 slides
マイクロサービス時代の認証と認可 - AWS Dev Day Tokyo 2018 #AWSDevDay by
マイクロサービス時代の認証と認可 - AWS Dev Day Tokyo 2018 #AWSDevDayマイクロサービス時代の認証と認可 - AWS Dev Day Tokyo 2018 #AWSDevDay
マイクロサービス時代の認証と認可 - AWS Dev Day Tokyo 2018 #AWSDevDay都元ダイスケ Miyamoto
139.3K views58 slides
クラスメソッドにおける Web API エンジニアリングの基本的な考え方と標準定義 - Developers.IO 2018 (2018-10-05) by
クラスメソッドにおける Web API エンジニアリングの基本的な考え方と標準定義 - Developers.IO 2018 (2018-10-05)クラスメソッドにおける Web API エンジニアリングの基本的な考え方と標準定義 - Developers.IO 2018 (2018-10-05)
クラスメソッドにおける Web API エンジニアリングの基本的な考え方と標準定義 - Developers.IO 2018 (2018-10-05)都元ダイスケ Miyamoto
19.8K views43 slides
AWSクラウドデータストレージ総論 by
AWSクラウドデータストレージ総論AWSクラウドデータストレージ総論
AWSクラウドデータストレージ総論都元ダイスケ Miyamoto
2.3K views53 slides
20170312 F.K様向け ライフパートナーM.M様のご提案 by
20170312 F.K様向け ライフパートナーM.M様のご提案20170312 F.K様向け ライフパートナーM.M様のご提案
20170312 F.K様向け ライフパートナーM.M様のご提案都元ダイスケ Miyamoto
1.1K views6 slides

More from 都元ダイスケ Miyamoto(20)

認証の標準的な方法は分かった。では認可はどう管理するんだい? #cmdevio by 都元ダイスケ Miyamoto
認証の標準的な方法は分かった。では認可はどう管理するんだい? #cmdevio認証の標準的な方法は分かった。では認可はどう管理するんだい? #cmdevio
認証の標準的な方法は分かった。では認可はどう管理するんだい? #cmdevio
アプリケーション動作ログ、
ERRORで出すか? WARNで出すか? #cmdevio2019 by 都元ダイスケ Miyamoto
アプリケーション動作ログ、
ERRORで出すか? WARNで出すか? #cmdevio2019アプリケーション動作ログ、
ERRORで出すか? WARNで出すか? #cmdevio2019
アプリケーション動作ログ、
ERRORで出すか? WARNで出すか? #cmdevio2019
マイクロサービス時代の認証と認可 - AWS Dev Day Tokyo 2018 #AWSDevDay by 都元ダイスケ Miyamoto
マイクロサービス時代の認証と認可 - 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) by 都元ダイスケ Miyamoto
クラスメソッドにおける 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におけるバッチ処理の ベストプラクティス - Developers.IO Meetup 05 by 都元ダイスケ Miyamoto
AWSにおけるバッチ処理の ベストプラクティス - Developers.IO Meetup 05AWSにおけるバッチ処理の ベストプラクティス - Developers.IO Meetup 05
AWSにおけるバッチ処理の ベストプラクティス - Developers.IO Meetup 05
20131210 CM re:Growth - Infrastructure as Code から Full Reproducible Infrastru... by 都元ダイスケ 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...

Recently uploaded

The Things Stack説明資料 by The Things Industries by
The Things Stack説明資料 by The Things IndustriesThe Things Stack説明資料 by The Things Industries
The Things Stack説明資料 by The Things IndustriesCRI Japan, Inc.
41 views29 slides
Windows 11 information that can be used at the development site by
Windows 11 information that can be used at the development siteWindows 11 information that can be used at the development site
Windows 11 information that can be used at the development siteAtomu Hidaka
71 views41 slides
SSH応用編_20231129.pdf by
SSH応用編_20231129.pdfSSH応用編_20231129.pdf
SSH応用編_20231129.pdficebreaker4
172 views13 slides
さくらのひやおろし2023 by
さくらのひやおろし2023さくらのひやおろし2023
さくらのひやおろし2023法林浩之
91 views58 slides
01Booster Studio ご紹介資料 by
01Booster Studio ご紹介資料01Booster Studio ご紹介資料
01Booster Studio ご紹介資料ssusere7a2172
300 views19 slides
Web3 Career_クレデン資料 .pdf by
Web3 Career_クレデン資料 .pdfWeb3 Career_クレデン資料 .pdf
Web3 Career_クレデン資料 .pdfnanamatsuo
14 views9 slides

Recently uploaded(12)

The Things Stack説明資料 by The Things Industries by CRI Japan, Inc.
The Things Stack説明資料 by The Things IndustriesThe Things Stack説明資料 by The Things Industries
The Things Stack説明資料 by The Things Industries
CRI Japan, Inc.41 views
Windows 11 information that can be used at the development site by Atomu Hidaka
Windows 11 information that can be used at the development siteWindows 11 information that can be used at the development site
Windows 11 information that can be used at the development site
Atomu Hidaka71 views
SSH応用編_20231129.pdf by icebreaker4
SSH応用編_20231129.pdfSSH応用編_20231129.pdf
SSH応用編_20231129.pdf
icebreaker4172 views
さくらのひやおろし2023 by 法林浩之
さくらのひやおろし2023さくらのひやおろし2023
さくらのひやおろし2023
法林浩之91 views
01Booster Studio ご紹介資料 by ssusere7a2172
01Booster Studio ご紹介資料01Booster Studio ご紹介資料
01Booster Studio ご紹介資料
ssusere7a2172300 views
Web3 Career_クレデン資料 .pdf by nanamatsuo
Web3 Career_クレデン資料 .pdfWeb3 Career_クレデン資料 .pdf
Web3 Career_クレデン資料 .pdf
nanamatsuo14 views
「概念モデリング自動化に向けた第一歩」 ~ ChatGPT・Open AI 活用による開発対象のモデル化 by Knowledge & Experience
「概念モデリング自動化に向けた第一歩」 ~ ChatGPT・Open AI 活用による開発対象のモデル化「概念モデリング自動化に向けた第一歩」 ~ ChatGPT・Open AI 活用による開発対象のモデル化
「概念モデリング自動化に向けた第一歩」 ~ ChatGPT・Open AI 活用による開発対象のモデル化
pgvectorを使ってChatGPTとPostgreSQLを連携してみよう!(PostgreSQL Conference Japan 2023 発表資料) by NTT DATA Technology & Innovation
pgvectorを使ってChatGPTとPostgreSQLを連携してみよう!(PostgreSQL Conference Japan 2023 発表資料)pgvectorを使ってChatGPTとPostgreSQLを連携してみよう!(PostgreSQL Conference Japan 2023 発表資料)
pgvectorを使ってChatGPTとPostgreSQLを連携してみよう!(PostgreSQL Conference Japan 2023 発表資料)
SNMPセキュリティ超入門 by mkoda
SNMPセキュリティ超入門SNMPセキュリティ超入門
SNMPセキュリティ超入門
mkoda175 views
今、改めて考えるPostgreSQLプラットフォーム - マルチクラウドとポータビリティ -(PostgreSQL Conference Japan 20... by NTT DATA Technology & Innovation
今、改めて考えるPostgreSQLプラットフォーム - マルチクラウドとポータビリティ -(PostgreSQL Conference Japan 20...今、改めて考えるPostgreSQLプラットフォーム - マルチクラウドとポータビリティ -(PostgreSQL Conference Japan 20...
今、改めて考えるPostgreSQLプラットフォーム - マルチクラウドとポータビリティ -(PostgreSQL Conference Japan 20...
速習! PostgreSQL専用HAソフトウェア: Patroni(PostgreSQL Conference Japan 2023 発表資料) by NTT DATA Technology & Innovation
速習! PostgreSQL専用HAソフトウェア: Patroni(PostgreSQL Conference Japan 2023 発表資料)速習! PostgreSQL専用HAソフトウェア: Patroni(PostgreSQL Conference Japan 2023 発表資料)
速習! PostgreSQL専用HAソフトウェア: Patroni(PostgreSQL Conference Japan 2023 発表資料)

Spring Day 2016 - Web API アクセス制御の最適解