Building(a(Server(Appliance(with(Node.js(...
Transcript of Building(a(Server(Appliance(with(Node.js(...
![Page 1: Building(a(Server(Appliance(with(Node.js( Auth0&seanode.github.io/assets/slides/pace-building-appliance-nodejs.pdf · Building(a(Server(Appliance(with(Node.js((Auth0& ... node.js](https://reader034.fdocuments.net/reader034/viewer/2022052607/5a72e69b7f8b9a93538e435e/html5/thumbnails/1.jpg)
Building a Server Appliance with Node.js
Auth0
Eugenio Pace – [email protected] @authzero @eugenio_pace
![Page 2: Building(a(Server(Appliance(with(Node.js( Auth0&seanode.github.io/assets/slides/pace-building-appliance-nodejs.pdf · Building(a(Server(Appliance(with(Node.js((Auth0& ... node.js](https://reader034.fdocuments.net/reader034/viewer/2022052607/5a72e69b7f8b9a93538e435e/html5/thumbnails/2.jpg)
Apps Authentication System
![Page 3: Building(a(Server(Appliance(with(Node.js( Auth0&seanode.github.io/assets/slides/pace-building-appliance-nodejs.pdf · Building(a(Server(Appliance(with(Node.js((Auth0& ... node.js](https://reader034.fdocuments.net/reader034/viewer/2022052607/5a72e69b7f8b9a93538e435e/html5/thumbnails/3.jpg)
OAuth 1, 2 OpenId Connect SAML 2.0 WS-‐FederaEon WS-‐Trust SAML JWT SWT
![Page 4: Building(a(Server(Appliance(with(Node.js( Auth0&seanode.github.io/assets/slides/pace-building-appliance-nodejs.pdf · Building(a(Server(Appliance(with(Node.js((Auth0& ... node.js](https://reader034.fdocuments.net/reader034/viewer/2022052607/5a72e69b7f8b9a93538e435e/html5/thumbnails/4.jpg)
![Page 5: Building(a(Server(Appliance(with(Node.js( Auth0&seanode.github.io/assets/slides/pace-building-appliance-nodejs.pdf · Building(a(Server(Appliance(with(Node.js((Auth0& ... node.js](https://reader034.fdocuments.net/reader034/viewer/2022052607/5a72e69b7f8b9a93538e435e/html5/thumbnails/5.jpg)
SSO Directory Log Audit
![Page 6: Building(a(Server(Appliance(with(Node.js( Auth0&seanode.github.io/assets/slides/pace-building-appliance-nodejs.pdf · Building(a(Server(Appliance(with(Node.js((Auth0& ... node.js](https://reader034.fdocuments.net/reader034/viewer/2022052607/5a72e69b7f8b9a93538e435e/html5/thumbnails/6.jpg)
SSO Directory Log Audit
Setup SDK Run Anywhere
![Page 7: Building(a(Server(Appliance(with(Node.js( Auth0&seanode.github.io/assets/slides/pace-building-appliance-nodejs.pdf · Building(a(Server(Appliance(with(Node.js((Auth0& ... node.js](https://reader034.fdocuments.net/reader034/viewer/2022052607/5a72e69b7f8b9a93538e435e/html5/thumbnails/7.jpg)
Demo!
7
![Page 8: Building(a(Server(Appliance(with(Node.js( Auth0&seanode.github.io/assets/slides/pace-building-appliance-nodejs.pdf · Building(a(Server(Appliance(with(Node.js((Auth0& ... node.js](https://reader034.fdocuments.net/reader034/viewer/2022052607/5a72e69b7f8b9a93538e435e/html5/thumbnails/8.jpg)
VM (Linux / Windows)
VM Host / HW Public Cloud Hosting
Authorization Server
node.js
Control Panel
Serv
ice
Man
agem
ent
API Docs
Mongo
![Page 9: Building(a(Server(Appliance(with(Node.js( Auth0&seanode.github.io/assets/slides/pace-building-appliance-nodejs.pdf · Building(a(Server(Appliance(with(Node.js((Auth0& ... node.js](https://reader034.fdocuments.net/reader034/viewer/2022052607/5a72e69b7f8b9a93538e435e/html5/thumbnails/9.jpg)
Authorization Server
node.js
Control Panel API Docs
hPp://upstart.ubuntu.com/
![Page 10: Building(a(Server(Appliance(with(Node.js( Auth0&seanode.github.io/assets/slides/pace-building-appliance-nodejs.pdf · Building(a(Server(Appliance(with(Node.js((Auth0& ... node.js](https://reader034.fdocuments.net/reader034/viewer/2022052607/5a72e69b7f8b9a93538e435e/html5/thumbnails/10.jpg)
![Page 11: Building(a(Server(Appliance(with(Node.js( Auth0&seanode.github.io/assets/slides/pace-building-appliance-nodejs.pdf · Building(a(Server(Appliance(with(Node.js((Auth0& ... node.js](https://reader034.fdocuments.net/reader034/viewer/2022052607/5a72e69b7f8b9a93538e435e/html5/thumbnails/11.jpg)
Considering…
• forever à hPps://github.com/nodejitsu/forever
11
![Page 12: Building(a(Server(Appliance(with(Node.js( Auth0&seanode.github.io/assets/slides/pace-building-appliance-nodejs.pdf · Building(a(Server(Appliance(with(Node.js((Auth0& ... node.js](https://reader034.fdocuments.net/reader034/viewer/2022052607/5a72e69b7f8b9a93538e435e/html5/thumbnails/12.jpg)
Authorization Server
node.js
Control Panel API Docs
nginx
hPps://app.myauth0.com
localhost:9000 localhost:5000
![Page 13: Building(a(Server(Appliance(with(Node.js( Auth0&seanode.github.io/assets/slides/pace-building-appliance-nodejs.pdf · Building(a(Server(Appliance(with(Node.js((Auth0& ... node.js](https://reader034.fdocuments.net/reader034/viewer/2022052607/5a72e69b7f8b9a93538e435e/html5/thumbnails/13.jpg)
![Page 14: Building(a(Server(Appliance(with(Node.js( Auth0&seanode.github.io/assets/slides/pace-building-appliance-nodejs.pdf · Building(a(Server(Appliance(with(Node.js((Auth0& ... node.js](https://reader034.fdocuments.net/reader034/viewer/2022052607/5a72e69b7f8b9a93538e435e/html5/thumbnails/14.jpg)
Authorization Server
node.js
nginx
hPps://ad.myauth0.com
Apache AD
![Page 15: Building(a(Server(Appliance(with(Node.js( Auth0&seanode.github.io/assets/slides/pace-building-appliance-nodejs.pdf · Building(a(Server(Appliance(with(Node.js((Auth0& ... node.js](https://reader034.fdocuments.net/reader034/viewer/2022052607/5a72e69b7f8b9a93538e435e/html5/thumbnails/15.jpg)
Considering…
• node-‐hPp-‐proxy à hPps://github.com/nodejitsu/node-‐hPp-‐proxy • haproxy
15
![Page 16: Building(a(Server(Appliance(with(Node.js( Auth0&seanode.github.io/assets/slides/pace-building-appliance-nodejs.pdf · Building(a(Server(Appliance(with(Node.js((Auth0& ... node.js](https://reader034.fdocuments.net/reader034/viewer/2022052607/5a72e69b7f8b9a93538e435e/html5/thumbnails/16.jpg)
Ge@ng the bits
1. sudo apt-‐get install puppetmaster
2. wget https://builds.auth0.com/{build}
3. sudo puppet apply -‐-‐modulepath=modules -‐e "include run”
4. MyAuth0!
![Page 17: Building(a(Server(Appliance(with(Node.js( Auth0&seanode.github.io/assets/slides/pace-building-appliance-nodejs.pdf · Building(a(Server(Appliance(with(Node.js((Auth0& ... node.js](https://reader034.fdocuments.net/reader034/viewer/2022052607/5a72e69b7f8b9a93538e435e/html5/thumbnails/17.jpg)
1. Generally well documented 2. Good support hPps://puppetlabs.com/
3. Minimize content in you package 4. Leverage install tools (apt, npm)
![Page 18: Building(a(Server(Appliance(with(Node.js( Auth0&seanode.github.io/assets/slides/pace-building-appliance-nodejs.pdf · Building(a(Server(Appliance(with(Node.js((Auth0& ... node.js](https://reader034.fdocuments.net/reader034/viewer/2022052607/5a72e69b7f8b9a93538e435e/html5/thumbnails/18.jpg)
Considering…
• chef à hPp://www.opscode.com/chef/
18
![Page 19: Building(a(Server(Appliance(with(Node.js( Auth0&seanode.github.io/assets/slides/pace-building-appliance-nodejs.pdf · Building(a(Server(Appliance(with(Node.js((Auth0& ... node.js](https://reader034.fdocuments.net/reader034/viewer/2022052607/5a72e69b7f8b9a93538e435e/html5/thumbnails/19.jpg)
![Page 20: Building(a(Server(Appliance(with(Node.js( Auth0&seanode.github.io/assets/slides/pace-building-appliance-nodejs.pdf · Building(a(Server(Appliance(with(Node.js((Auth0& ... node.js](https://reader034.fdocuments.net/reader034/viewer/2022052607/5a72e69b7f8b9a93538e435e/html5/thumbnails/20.jpg)
On node
• TransacEons • Malleability • No wheel reinvenEng
• Service and Server • Any cloud
20