Auth in a Serverless world
-
Upload
hideya-furuta -
Category
Technology
-
view
413 -
download
0
Transcript of Auth in a Serverless world
Auth in a serverless world古⽥ 秀哉, CISSP
Serverless Meetup Tokyo #307/12/2017
⾃⼰紹介Auth0 セールスエンジニア古⽥ 秀哉, CISSP
セキュリティの中の⼈。外資系ソフトウェア企業でIdentity Management
とか、セキュリティとかAPI Managementのコンサルティングを携わってます。
会社概要• 設⽴ 2013年• 本社所在地ワシントン州ベルビュー
ü ⽶国各地の他、ロンドン、ベルギー、シドニー、ブエノスアイレス、等
• 直近までマイクロソフト社に在籍していた創業メンバーü ジョン ゲルシー (Jon Gelsey, CEO)
ü ユージニオ ペース (Eugenio Pace, VP, Customer Success)
ü マティアス ウォロスキー (Matias Woloski, CTO)
• その他の創業メンバーü ジェアード ハンスン (Jared Hanson)
- 最も⼈気ある Node.js の認証フレームワーク ”Passport”の開発者
ü ユージン コーガン (Eugen Kogan)- AT&T、Amazon.com、国防総省での勤務経験のあるセキュリティ部⾨⻑
* Eugenio Pace と Matias Woloskiは、右の本の共著者
AuthN/AuthZって?Authentication (AuthN) = 認証
アクセスしてきたのが誰で、正しいかどうかを識別して確認することFactor: password, Matrix表, OTP, PKI, 指紋, 静脈, etc…
(What you know, what you have, What you are)
Authorization (AuthZ) = 認可リクエストが許可されるかどうかを決めること
認証・認可⽅式
Authentication (認証):OpenID Connect • ⾃前で認証システムを構築したくないので外部の認証システムを利⽤したい。
facebookのアカウントを使って、⾃分で作ったアプリにログインさせたい
Authorization (認可 ):OAuth2.0 • ユーザの許可を得た上で、外部システムにアクセスしたい
facebookやlinkedInに登録されている属性情報を⼊⼿したいユーザーに成り代わって、ツイートしたい
Federation: SAML, WS-Federation
認証機能を組み込みたいけど・・・。
実装するの面倒だし大変そう
セキュリティとか認証は外でやってくれると嬉しい
Developerは提供する機能に集中し
たい
APIに認証・認可フローを入れる?
なんのためのマイクロサービス?
セキュリティのリスクや脆弱性対策どうするの?
認可フロー種類たくさんあるけど、どれが最適なの?
いちいちRFC読み解いて実装する?
Auth0, Identity as a Service platform (IDaaS)
ユーザ認証・認可社内外Webリソースの利⽤
パートナーとのコラボレーション
ソーシャルアカウント連携
APIのセキュアなアクセス
SaaS/PaaSへのシームレスなアクセス
SAML/WS-Fed
SAML
AD/LDAP
Oauth 2.0OIDC
Oauth 2.0OIDC
Oauth 2.0OIDC
JWT
Oauth 2.0OIDC Oauth 2.0
OIDC
ということで Auth0 (Fanctional SaaS)
認証・認可機能をSaaS (IDaaS)で提供している会社 https://auth0.com/
Node.jsベース。Microservicesでソリューションができており、機能拡張がしやすい-OAuth2.0/OpenID ConnectとかSAML, AD/LDAP, DBなどに対応-Identity ManagementやSocial Sign-inの導⼊が⾮常に簡単に⾏える-RESTful API (Authentication, Management API)を提供。SDKやサンプルプログラムも
githubで公開-認証Plug-inとして簡単にアプリ統合できる-様々なプラットフォーム・フレームワークに対応。ポータルからサンプルソースを⾃動⽣成
-Serveless環境を提供。認証サービスAuth0の拡張機能⽤でも利⽤
なんでAuth0がServerless?
フレキシブルで拡張性の⾼いことがAuth0 Identity Management プラットフォームの⼤きな特徴
そもそもの経緯はAuth0のテナント利⽤者が、認証認可トランザクションでカスタムコードの実⾏ができるようなSandbox環境が必要だったため
⾊々検討した結果、Auth0がServerless環境を開発しwebtaskとして公開
Webtaskとは …(Function as a Service)
信頼できないコードを セキュアな⽅法で実⾏するために開発された
マルチテナント サーバレス・プラットフォーム
1. マルチテナント システムで信頼できないコードを実⾏させる場合において、セキュアにコード実⾏が出来ること
2. 認証DoS攻撃に関連した不⽤意なリソース消費を防ぎたい
3. 認証サービスを提供しているので、Latencyは最⼩限に
Serverless 導⼊計画時の課題
⾊々なプラットフォームを利⽤することを検討してみましたが…結局 ⾃前でServerlessを構築することにしました。
Webtask の特徴CoreOS上に、Docker, etcd, fleetをベースにして構築各テナントごとに専⽤のwebataskコンテナを⽤意し実⾏
→他のテナントに影響を与えない→結果はJSON形式でレスポンス
Webtask runtimeはNode.jsベース。webtask環境に事前にNode.jsモジュールをProvisioningしておけば実⾏可能
(Node.jsもしくは.NET[C#]に対応)
各クラスタ上でPre-warm状態でwebtaskコンテナが動作→RPC Logicで動作→Cold Startup latencyを⼤幅に削減
Webtaskを外部公開
これ便利だから認証サービス関係なく公開したら使ってもらえるんじゃない?
で、公開しました。 https://webtask.io
評判良かったのでwebtaskをAuth0 ExtendとしてSubscription提供することに。(2017/04〜)
https://auth0.com/extend/
Image Background
Developer love
Very easy to use and fast to get going.
Rich web based node.js editing environment
Great Github integration
Most common npm modules built in
Low startup latency
Supports any cloud provider or can be ran on-premise
You can use any language and framework*
*as long as it is Node.js
Image Background
Use your own editor and our CLI
Or our web based editor
From Slack
よかったら無料トライアルをお試しください。
Authentication and Authorization ServicesAuth0 https://auth0.com/jp/
Serverless Platformhttps://webtask.io/
https://auth0.com/extend/
最後に・・・
どうでもいい話ですが、Serverless Frameworkの
「Join Beta」ボタンクリックすると表⽰される認証画⾯・・・。
あれ、Auth0のやつです。