SlideShare a Scribd company logo
WebRTC
Amitesh Madhur (@amiteshawa)
Cisco Systems
Agenda
1. Media Stream
2. Constraints
3. RTCPeerConnection
4. Network (STUN, TURN)
5. DataChannel
6. Ephemeral password
Peer to peer, plugin free!

X

Server
WebRTC
1. MediaStream
2. RTCPeerConnection

3. DataChannel
Media Stream
1.
2.
3.
4.
5.

getUserMedia
Collects audio, video, screen inputs
Synchronizes Audio & Video
Noise Cancellation
Image Enhancement
<video id=“me" autoplay></video>

navigator.getUserMedia

=

navigator.getUserMedia ||
navigator.webkitGetUserMedia ||
navigator.mozGetUserMedia;

if (navigator.getUserMedia) {
navigator.getUserMedia({video: true}, onSuccess, onError);
}

window.URL = window.URL || window.webkitURL;
var me = document.getElementById('me');
function onSuccess(stream) {
me.src = window.URL.createObjectURL(stream);
}
function onError(e) {
// error
}
Demo
Confused Left/Right?
<style>
video {
-webkit-transform: scaleX(-1);

}
</style>
canvasContext.translate(width, 0);
canvasContext.scale(-1, 1);
<video id=“me" autoplay></video>
<video id=“me" autoplay></video>

navigator.getUserMedia

=

navigator.getUserMedia ||
navigator.webkitGetUserMedia ||
navigator.mozGetUserMedia;

navigator.getUserMedia(
{video: true},
onSuccess, onError);
window.URL = window.URL || window.webkitURL;

if (navigator.getUserMedia) {
navigator.getUserMedia({video: true}, onSuccess, onError);
}

var me = document.getElementById('me');
function onSuccess(stream) {
me.src = window.URL.createObjectURL(stream);
}

Constraints

function onError(e) {
// error
}
Constraints (audio, video)

{audio: true, video: true}
Constraints (video height, width)
{
audio: true,
video: {
mandatory: {
maxWidth: 320,
maxHeight: 180
}
}
}
Constraints for screen capture

getUserMedia({video: {
mandatory: {
chromeMediaSource: 'screen'
}
}, audio: false},
onSuccess, onError);
chromeMediaSource: 'screen'
1. Works only on https
2. chrome://flags/#enable-usermedia-screencapture
Peer Connection
1.
2.
3.
4.

Establish a connection though Signaling
Pass the user media stream
Other side gets the stream
Add the received stream to <video> tag
Demo
github.com/amiteshawa/learn-rtc
<video id=“me" autoplay></video>
<video id=“other" autoplay></video>
peer = new RTCPeerConnection(servers);
peer.onaddstream = gotRemoteStream;
peer.addStream(localStream);
if(host) {
peer.createOffer(callGotOffer, null, {mandatory: {
OfferToReceiveAudio: true,
OfferToReceiveVideo: true}});
} else {
peer.createAnswer(peer.remoteDescription, callGotOffer);
}
function callGotOffer(sd) {
peer.setLocalDescription(sd);
}
function gotAnswer(desc) {
peer.setRemoteDescription(new RTCSessionDescription(desc));
}
function gotRemoteStream(e) {
attachMediaStream(remoteVideo, e.stream);
}
<video id=“me" autoplay></video>
<video id=“other" autoplay></video>
peer = new RTCPeerConnection(servers);
peer.onaddstream = gotRemoteStream;
peer.addStream(localStream);
if(host) {
peer.createOffer(callGotOffer, null, {mandatory: {
OfferToReceiveAudio: true,
var STUN, TURN, config = {};
OfferToReceiveVideo: true}});
} STUN {= { url: “stun:stun.l.google.com:19302”};
else
peer.createAnswer(peer.remoteDescription, callGotOffer);
TURN = { username: “turn-user",
}
credential: "NGFmNGRlMOWZmMTVmZGZiNg==",
function callGotOffer(sd) {
url: "turn:10.5.7.13:3333?transport=udp“
peer.setLocalDescription(sd);
}
};
function gotAnswer(desc) {
config.iceServers = [STUN, TURN];
peer.setRemoteDescription(new RTCSessionDescription(desc));
}
function gotRemoteStream(e) {
attachMediaStream(remoteVideo, e.stream);
}
User 1
Page Load
Renders Invite
Button

Websocket

User 2
Page Load

Renders Invite
Button
User 1
Page Load

Websocket
Open connection

User 2

Open connection

Page Load
User 1
Page Load

Websocket
Open connection

GUM

Clicks Invite
Button

Create Invite

User 2

Open connection

Page Load
User 1
Page Load

Websocket
Open connection

Open connection

GUM

Create Invite

User 2

Broadcast Invite

Page Load
User 1
Page Load

Websocket
Open connection

User 2

Open connection

Page Load

GUM

Create Invite

Ignored Invite

Broadcast Invite

Invite Button
Changed to “Join”
User 1
Page Load

Websocket
Open connection

User 2

Open connection

Page Load

GUM

Create Invite

Broadcast Invite

Ignored Invite

Offer SDP

Offer SDP

Invite Button
Changed to “Join”

Clicked Join
Button
GUM
User 1
Page Load

Websocket
Open connection

User 2

Open connection

Page Load

GUM

Create Invite

Broadcast Invite

Ignored Invite
Remote Desc

Offer SDP
Answer SDP

Offer SDP
Answer SDP

Invite Button
Changed to “Join”

Clicked Join
Button
GUM

Remote Desc
User 1
Page Load

Websocket
Open connection

User 2

Open connection

Page Load

GUM

Create Invite

Broadcast Invite

Ignored Invite
Remote Desc

Offer SDP
Answer SDP
ICE Candidate

Offer SDP
Answer SDP

ICE Candidate

Invite Button
Changed to “Join”

Clicked Join
Button
GUM

Remote Desc
User 1
Page Load

User 2

Websocket
Open connection

Open connection

Page Load

GUM

Create Invite

Broadcast Invite

Ignored Invite
Remote Desc

Offer SDP
Answer SDP

Offer SDP
Answer SDP

ICE Candidate

ICE Candidate

ICE Candidate

ICE Candidate

Add Stream

Add Stream

Invite Button
Changed to “Join”

Clicked Join
Button
GUM

Remote Desc
User 1
Page Load

Websocket
Open connection

User 2

Open connection

Page Load

GUM

Create Invite

Broadcast Invite

Ignored Invite
Remote Desc

Offer SDP
Answer SDP

Offer SDP
Answer SDP

ICE Candidate
Add Stream

ICE Candidate

ICE Candidate

Invite Button
Changed to “Join”

Clicked Join
Button
GUM

Remote Desc

ICE Candidate

Add Stream
STUN/TURN and ICE
S
T
U
N

N
A
T

N
A
T
S
T
U
N

N
A
T

Not 100% Reliable
N
A
T
T
U
R
N

N
A
T

S
E
C
U
R
E
N
A
T
T
U
R
N

Expensive & Slow
N
A
T

S
E
C
U
R
E

N
A
T
TURN

ICE

STUN

S
E
C
U
R
E
N
A
T

N
A
T
Public STUN
stun.l.google.com:19302
stun1.l.google.com:19302
stun2.l.google.com:19302
stun3.l.google.com:19302
stun4.l.google.com:19302
Wanna Setup your own?

slideshare.net/amiteshawa/webrtc-media-stra
Data Channel
RTCDataChannel
1.
2.
3.
4.

Peer to peer data sharing
Works with RTCPeerConnection
Secure
Websocket like APIs
webkitRTCPeerConnection(config,
{optional:
[{RtpDataChannels: true}]});
channel =
peer.createDataChannel("sendDataChanne
l",
{reliable:
false});
channel.onopen = manageChannel;
channel.onclose = manageChannel;
},
sendData = function(data){
channel.send(data); },
onMsg = function(e){ obj.innerHTML +=
'He: ' + e.data ; },
manageChannel = function(){
Demo
Ephemeral password
IN JAVASCRIPT
var turn;
turn = {

url: 'turn:<user-name>@<IP>:<PORT>',
credential: ‘password‘

};
// for chrome 28 and above
turn = {
url: 'turn:<IP-address>:<PORT>',
username: ‘<user-name>‘,
credential: ‘<password>'
};
Ephemeral password
1.
2.
3.
4.
5.
6.

Limited time TURN credentials
Based on REST Service
Webserver creates password
Shared secret
TURN Server does NOT implement the REST API
Based on long-term credentials mechanism
long-term credentials
User

TURN
User sends request to TURN without password
long-term credentials
User

TURN
User sends request to TURN without password

TURN send Error 401, with realm and nonce
long-term credentials
User

TURN
User sends request to TURN without password

TURN send Error 401, with realm and nonce
User Checks 401 and extracts realm and nonce
long-term credentials
User

TURN
User sends request to TURN without password

TURN send Error 401, with realm and nonce

User Checks 401 and extracts realm and nonce
User generates MD5 key with user, realm
long-term credentials
User

TURN
User sends request to TURN without password

TURN send Error 401, with realm and nonce

User Checks 401 and extracts realm and nonce
User generates MD5 key with user, realm
User sends new request to TURN with password
long-term credentials
User

TURN
User sends request to TURN without password

TURN send Error 401, with realm and nonce

User Checks 401 and extracts realm and nonce
User generates MD5 key with user, realm
User sends new request to TURN with password
TURN Validates

Matches? Then connected
Long-term password alone does not
solve the problem for WebRTC
Ephemeral credentials
User

TURN

REST Server

my-svc/get-turn-auth
Creates username, password

Shared Secret

Sends username, password

MySQL

Send connection request to TURN
After this it same as long term auth
Create Tables
CREATE TABLE turnusers_lt (
name varchar(512) PRIMARY KEY,
hmackey char(32)
);

CREATE TABLE turn_secret (
value varchar(512)
);

CREATE TABLE allowed_peer_ip (
ip_range varchar(256)
);
CREATE TABLE denied_peer_ip (
ip_range varchar(256)
);
Create REST API
Generate username and credential
username= <USER NAME> + ":" + <timestamp>
password = base64(hmac-sha1(secret, username))
{
"username" : "user1:1393412082",
"password" : "NGFmNzUzZDIxOWE1OWI0NTBmZGZiNg==",
"ttl" : 86400,
"uris" : [
"turn:1.2.3.4:3333?transport=udp"
]
}
var i, uri, iceServer, config = {"iceServers": []};
for (i = 0; i < response.uris.length; ++i) {
uri = response.uris[i];
iceServer = {
"username":response.username,
"credential":response.password,
"uri":uri
};
config.iceServers.push(iceServer);
}
var pc = new PeerConnection(config);
Config
1. In turnserver.conf Uncomment/Enable
1.
2.
3.
4.

lt-cred-mech
use-auth-secret
static-auth-secret
mysql-userdb="host=127.0.0.1 dbname=turn
user=root password= port=3306
connect_timeout=60"
5. realm=foobar
6. fingerprint
7. Start turn: turnserver -c /usr/local/etc/turnserver.conf
Create User & Secret
Create Secret
$ turnadmin --mysql-userdb="host=127.0.0.1
dbname=turn user=root password=
connect_timeout=10" --set-secret=no1knows
>= 21

>= 20

>= 12
WebRTC4all…
Thank you
Twitter: @amiteshawa

More Related Content

What's hot

Using JSON Web Tokens for REST Authentication
Using JSON Web Tokens for REST Authentication Using JSON Web Tokens for REST Authentication
Using JSON Web Tokens for REST Authentication
Mediacurrent
 
Web servers – features, installation and configuration
Web servers – features, installation and configurationWeb servers – features, installation and configuration
Web servers – features, installation and configuration
webhostingguy
 
Web technology
Web technologyWeb technology
Web technology
Edison Francis
 
Vagrant
Vagrant Vagrant
Vagrant
Akshay Siwal
 
WebRTC 1.0 표준완성과 현재, 그리고 다음버전
WebRTC 1.0 표준완성과 현재, 그리고 다음버전WebRTC 1.0 표준완성과 현재, 그리고 다음버전
WebRTC 1.0 표준완성과 현재, 그리고 다음버전
sung young son
 
FIDO2 Specifications Overview
FIDO2 Specifications OverviewFIDO2 Specifications Overview
FIDO2 Specifications Overview
FIDO Alliance
 
HTTP vs HTTPS Difference
HTTP vs HTTPS Difference HTTP vs HTTPS Difference
HTTP vs HTTPS Difference
Real Estate
 
Http Protocol
Http ProtocolHttp Protocol
Http Protocol
N R Z Malik
 
WebRTC: A front-end perspective
WebRTC: A front-end perspectiveWebRTC: A front-end perspective
WebRTC: A front-end perspective
shwetank
 
Http vs Https
Http vs HttpsHttp vs Https
Http vs Https
shikherwalia
 
HTTP Basics
HTTP BasicsHTTP Basics
HTTP Basics
sanjoysanyal
 
Get Hands-On with NGINX and QUIC+HTTP/3
Get Hands-On with NGINX and QUIC+HTTP/3Get Hands-On with NGINX and QUIC+HTTP/3
Get Hands-On with NGINX and QUIC+HTTP/3
NGINX, Inc.
 
NGINX, Istio, and the Move to Microservices and Service Mesh
NGINX, Istio, and the Move to Microservices and Service MeshNGINX, Istio, and the Move to Microservices and Service Mesh
NGINX, Istio, and the Move to Microservices and Service Mesh
NGINX, Inc.
 
Introduction to HTTP/2
Introduction to HTTP/2Introduction to HTTP/2
Introduction to HTTP/2
Ido Flatow
 
Spring Cloud Gateway
Spring Cloud GatewaySpring Cloud Gateway
Spring Cloud Gateway
VMware Tanzu
 
Introduction to linux containers
Introduction to linux containersIntroduction to linux containers
Introduction to linux containers
Google
 
Introduction to SignalR
Introduction to SignalRIntroduction to SignalR
Introduction to SignalR
Adam Mokan
 
web3
web3web3
web3
Yoshi
 
liftIO 2022 quasiquote
liftIO 2022 quasiquoteliftIO 2022 quasiquote
liftIO 2022 quasiquote
Hyunseok Cho
 
Spring Cloud Gateway
Spring Cloud GatewaySpring Cloud Gateway
Spring Cloud Gateway
Stéphane Maldini
 

What's hot (20)

Using JSON Web Tokens for REST Authentication
Using JSON Web Tokens for REST Authentication Using JSON Web Tokens for REST Authentication
Using JSON Web Tokens for REST Authentication
 
Web servers – features, installation and configuration
Web servers – features, installation and configurationWeb servers – features, installation and configuration
Web servers – features, installation and configuration
 
Web technology
Web technologyWeb technology
Web technology
 
Vagrant
Vagrant Vagrant
Vagrant
 
WebRTC 1.0 표준완성과 현재, 그리고 다음버전
WebRTC 1.0 표준완성과 현재, 그리고 다음버전WebRTC 1.0 표준완성과 현재, 그리고 다음버전
WebRTC 1.0 표준완성과 현재, 그리고 다음버전
 
FIDO2 Specifications Overview
FIDO2 Specifications OverviewFIDO2 Specifications Overview
FIDO2 Specifications Overview
 
HTTP vs HTTPS Difference
HTTP vs HTTPS Difference HTTP vs HTTPS Difference
HTTP vs HTTPS Difference
 
Http Protocol
Http ProtocolHttp Protocol
Http Protocol
 
WebRTC: A front-end perspective
WebRTC: A front-end perspectiveWebRTC: A front-end perspective
WebRTC: A front-end perspective
 
Http vs Https
Http vs HttpsHttp vs Https
Http vs Https
 
HTTP Basics
HTTP BasicsHTTP Basics
HTTP Basics
 
Get Hands-On with NGINX and QUIC+HTTP/3
Get Hands-On with NGINX and QUIC+HTTP/3Get Hands-On with NGINX and QUIC+HTTP/3
Get Hands-On with NGINX and QUIC+HTTP/3
 
NGINX, Istio, and the Move to Microservices and Service Mesh
NGINX, Istio, and the Move to Microservices and Service MeshNGINX, Istio, and the Move to Microservices and Service Mesh
NGINX, Istio, and the Move to Microservices and Service Mesh
 
Introduction to HTTP/2
Introduction to HTTP/2Introduction to HTTP/2
Introduction to HTTP/2
 
Spring Cloud Gateway
Spring Cloud GatewaySpring Cloud Gateway
Spring Cloud Gateway
 
Introduction to linux containers
Introduction to linux containersIntroduction to linux containers
Introduction to linux containers
 
Introduction to SignalR
Introduction to SignalRIntroduction to SignalR
Introduction to SignalR
 
web3
web3web3
web3
 
liftIO 2022 quasiquote
liftIO 2022 quasiquoteliftIO 2022 quasiquote
liftIO 2022 quasiquote
 
Spring Cloud Gateway
Spring Cloud GatewaySpring Cloud Gateway
Spring Cloud Gateway
 

Viewers also liked

WebRTC for Managers!
WebRTC for Managers!WebRTC for Managers!
WebRTC for Managers!
Amitesh Madhur
 
WebRTC DataChannels demystified
WebRTC DataChannels demystifiedWebRTC DataChannels demystified
WebRTC DataChannels demystified
Victor Pascual Ávila
 
Server-side WebRTC Infrastructure
Server-side WebRTC InfrastructureServer-side WebRTC Infrastructure
Server-side WebRTC Infrastructure
Dialogic Inc.
 
WebRTC + Socket.io: building a skype-like video chat with native javascript
WebRTC + Socket.io: building a skype-like video chat with native javascriptWebRTC + Socket.io: building a skype-like video chat with native javascript
WebRTC + Socket.io: building a skype-like video chat with native javascript
Michele Di Salvatore
 
WebRTC with Java
WebRTC with JavaWebRTC with Java
WebRTC with Java
amithap07
 
How I built a WebRTC enabled website in 20 minutes!
How I built a WebRTC enabled website in 20 minutes!How I built a WebRTC enabled website in 20 minutes!
How I built a WebRTC enabled website in 20 minutes!
Paul Richards
 
Amitesh Madhur - Web workers, HTML 5
Amitesh Madhur - Web workers, HTML 5Amitesh Madhur - Web workers, HTML 5
Amitesh Madhur - Web workers, HTML 5
Amitesh Madhur
 
Arinjay
ArinjayArinjay
Arinjay
Parul Gupta
 
ダブルCTO
ダブルCTOダブルCTO
ダブルCTO
Masakazu Matsushita
 
Interactive buttonsを利用したbotをつくってみた
Interactive buttonsを利用したbotをつくってみたInteractive buttonsを利用したbotをつくってみた
Interactive buttonsを利用したbotをつくってみた
Masakazu Matsushita
 
To Build or Not to Build Your WebRTC Infrastructure
To Build or Not to Build Your WebRTC InfrastructureTo Build or Not to Build Your WebRTC Infrastructure
To Build or Not to Build Your WebRTC Infrastructure
Tsahi Levent-levi
 
Integrate WebRTC Video in an App in Less Than 20 Minutes
Integrate WebRTC Video in an App in Less Than 20 MinutesIntegrate WebRTC Video in an App in Less Than 20 Minutes
Integrate WebRTC Video in an App in Less Than 20 Minutes
Weemo, Inc.
 
WebRTC overview
WebRTC overviewWebRTC overview
WebRTC overview
Rouyun Pan
 
TranslimitにおけるAWS活用術
TranslimitにおけるAWS活用術TranslimitにおけるAWS活用術
TranslimitにおけるAWS活用術
Masakazu Matsushita
 
Carta Náutica do Porto de Lisboa - março de 2017
Carta Náutica do Porto de Lisboa - março de 2017Carta Náutica do Porto de Lisboa - março de 2017
Carta Náutica do Porto de Lisboa - março de 2017
APL - Administração do Porto de Lisboa
 
C All 2008 7 26
C All 2008 7 26C All 2008 7 26
C All 2008 7 26
Donna Davidson
 
Vincent Laberge colloque EDUlib 2017
Vincent Laberge colloque EDUlib 2017Vincent Laberge colloque EDUlib 2017
Vincent Laberge colloque EDUlib 2017
Vincent Laberge
 
Lil bibby
Lil bibbyLil bibby
Lil bibby
Kroy Create
 
Do work
Do workDo work
Do work
Shasi Panda
 
N2W Partnership overview
N2W Partnership overviewN2W Partnership overview
N2W Partnership overview
Tara Jones
 

Viewers also liked (20)

WebRTC for Managers!
WebRTC for Managers!WebRTC for Managers!
WebRTC for Managers!
 
WebRTC DataChannels demystified
WebRTC DataChannels demystifiedWebRTC DataChannels demystified
WebRTC DataChannels demystified
 
Server-side WebRTC Infrastructure
Server-side WebRTC InfrastructureServer-side WebRTC Infrastructure
Server-side WebRTC Infrastructure
 
WebRTC + Socket.io: building a skype-like video chat with native javascript
WebRTC + Socket.io: building a skype-like video chat with native javascriptWebRTC + Socket.io: building a skype-like video chat with native javascript
WebRTC + Socket.io: building a skype-like video chat with native javascript
 
WebRTC with Java
WebRTC with JavaWebRTC with Java
WebRTC with Java
 
How I built a WebRTC enabled website in 20 minutes!
How I built a WebRTC enabled website in 20 minutes!How I built a WebRTC enabled website in 20 minutes!
How I built a WebRTC enabled website in 20 minutes!
 
Amitesh Madhur - Web workers, HTML 5
Amitesh Madhur - Web workers, HTML 5Amitesh Madhur - Web workers, HTML 5
Amitesh Madhur - Web workers, HTML 5
 
Arinjay
ArinjayArinjay
Arinjay
 
ダブルCTO
ダブルCTOダブルCTO
ダブルCTO
 
Interactive buttonsを利用したbotをつくってみた
Interactive buttonsを利用したbotをつくってみたInteractive buttonsを利用したbotをつくってみた
Interactive buttonsを利用したbotをつくってみた
 
To Build or Not to Build Your WebRTC Infrastructure
To Build or Not to Build Your WebRTC InfrastructureTo Build or Not to Build Your WebRTC Infrastructure
To Build or Not to Build Your WebRTC Infrastructure
 
Integrate WebRTC Video in an App in Less Than 20 Minutes
Integrate WebRTC Video in an App in Less Than 20 MinutesIntegrate WebRTC Video in an App in Less Than 20 Minutes
Integrate WebRTC Video in an App in Less Than 20 Minutes
 
WebRTC overview
WebRTC overviewWebRTC overview
WebRTC overview
 
TranslimitにおけるAWS活用術
TranslimitにおけるAWS活用術TranslimitにおけるAWS活用術
TranslimitにおけるAWS活用術
 
Carta Náutica do Porto de Lisboa - março de 2017
Carta Náutica do Porto de Lisboa - março de 2017Carta Náutica do Porto de Lisboa - março de 2017
Carta Náutica do Porto de Lisboa - março de 2017
 
C All 2008 7 26
C All 2008 7 26C All 2008 7 26
C All 2008 7 26
 
Vincent Laberge colloque EDUlib 2017
Vincent Laberge colloque EDUlib 2017Vincent Laberge colloque EDUlib 2017
Vincent Laberge colloque EDUlib 2017
 
Lil bibby
Lil bibbyLil bibby
Lil bibby
 
Do work
Do workDo work
Do work
 
N2W Partnership overview
N2W Partnership overviewN2W Partnership overview
N2W Partnership overview
 

Similar to Setup ephemeral password for TURN, Learn RTC in less than 200 Lines of code

Chrome Dev Summit 2020 Extended: Improve Your Web Authentication Security
Chrome Dev Summit 2020 Extended:  Improve Your Web Authentication SecurityChrome Dev Summit 2020 Extended:  Improve Your Web Authentication Security
Chrome Dev Summit 2020 Extended: Improve Your Web Authentication Security
Yu-Shuan Hsieh
 
The Identity Problem of the Web and how to solve it
The Identity Problem of the Web and how to solve itThe Identity Problem of the Web and how to solve it
The Identity Problem of the Web and how to solve it
Bastian Hofmann
 
Lecture 20101124
Lecture 20101124Lecture 20101124
Lecture 20101124
Anderson Liang
 
KrankyGeek 2015 - Mixing Data and Video - IBM Bluemix, Watson, and Twilio
KrankyGeek 2015 - Mixing Data and Video - IBM Bluemix, Watson, and TwilioKrankyGeek 2015 - Mixing Data and Video - IBM Bluemix, Watson, and Twilio
KrankyGeek 2015 - Mixing Data and Video - IBM Bluemix, Watson, and Twilio
Jeff Sloyer
 
Using Websockets with Play!
Using Websockets with Play!Using Websockets with Play!
Using Websockets with Play!
Andrew Conner
 
Devteach 2017 OAuth and Open id connect demystified
Devteach 2017 OAuth and Open id connect demystifiedDevteach 2017 OAuth and Open id connect demystified
Devteach 2017 OAuth and Open id connect demystified
Taswar Bhatti
 
Sea surfing in asp.net mvc
Sea surfing in asp.net mvcSea surfing in asp.net mvc
Sea surfing in asp.net mvc
magda3695
 
Enhancing Mobile User Experience with WebSocket
Enhancing Mobile User Experience with WebSocketEnhancing Mobile User Experience with WebSocket
Enhancing Mobile User Experience with WebSocket
Mauricio "Maltron" Leal
 
WebSockets: The Current State of the Most Valuable HTML5 API for Java Developers
WebSockets: The Current State of the Most Valuable HTML5 API for Java DevelopersWebSockets: The Current State of the Most Valuable HTML5 API for Java Developers
WebSockets: The Current State of the Most Valuable HTML5 API for Java Developers
Viktor Gamov
 
ISBG The 3 S's a guide to single sign on
ISBG  The 3 S's a guide to single sign onISBG  The 3 S's a guide to single sign on
ISBG The 3 S's a guide to single sign on
Gabriella Davis
 
Introduction to OAuth
Introduction to OAuthIntroduction to OAuth
Introduction to OAuth
Mikkel Flindt Heisterberg
 
Indianapolis mule soft_meetup_30_jan_2021 (1)
Indianapolis mule soft_meetup_30_jan_2021 (1)Indianapolis mule soft_meetup_30_jan_2021 (1)
Indianapolis mule soft_meetup_30_jan_2021 (1)
ikram_ahamed
 
Vp nwebcast williams_wallaboswell
Vp nwebcast williams_wallaboswellVp nwebcast williams_wallaboswell
Vp nwebcast williams_wallaboswell
scetinkaya
 
15-auth-session-mgmt.ppt
15-auth-session-mgmt.ppt15-auth-session-mgmt.ppt
15-auth-session-mgmt.ppt
ssuserec53e73
 
vlavrynovych - WebSockets Presentation
vlavrynovych - WebSockets Presentationvlavrynovych - WebSockets Presentation
vlavrynovych - WebSockets Presentation
Volodymyr Lavrynovych
 
Realtime Web Apps in 2014 & Beyond
Realtime Web Apps in 2014 & BeyondRealtime Web Apps in 2014 & Beyond
Realtime Web Apps in 2014 & Beyond
Phil Leggetter
 
Easy logins for JavaScript web applications
Easy logins for JavaScript web applicationsEasy logins for JavaScript web applications
Easy logins for JavaScript web applications
Francois Marier
 
Going realtime with Socket.IO
Going realtime with Socket.IOGoing realtime with Socket.IO
Going realtime with Socket.IO
Christian Joudrey
 
The Physical World meets the Web
The Physical World meets the WebThe Physical World meets the Web
The Physical World meets the Web
Maximiliano Firtman
 
Open Id, O Auth And Webservices
Open Id, O Auth And WebservicesOpen Id, O Auth And Webservices
Open Id, O Auth And Webservices
Myles Eftos
 

Similar to Setup ephemeral password for TURN, Learn RTC in less than 200 Lines of code (20)

Chrome Dev Summit 2020 Extended: Improve Your Web Authentication Security
Chrome Dev Summit 2020 Extended:  Improve Your Web Authentication SecurityChrome Dev Summit 2020 Extended:  Improve Your Web Authentication Security
Chrome Dev Summit 2020 Extended: Improve Your Web Authentication Security
 
The Identity Problem of the Web and how to solve it
The Identity Problem of the Web and how to solve itThe Identity Problem of the Web and how to solve it
The Identity Problem of the Web and how to solve it
 
Lecture 20101124
Lecture 20101124Lecture 20101124
Lecture 20101124
 
KrankyGeek 2015 - Mixing Data and Video - IBM Bluemix, Watson, and Twilio
KrankyGeek 2015 - Mixing Data and Video - IBM Bluemix, Watson, and TwilioKrankyGeek 2015 - Mixing Data and Video - IBM Bluemix, Watson, and Twilio
KrankyGeek 2015 - Mixing Data and Video - IBM Bluemix, Watson, and Twilio
 
Using Websockets with Play!
Using Websockets with Play!Using Websockets with Play!
Using Websockets with Play!
 
Devteach 2017 OAuth and Open id connect demystified
Devteach 2017 OAuth and Open id connect demystifiedDevteach 2017 OAuth and Open id connect demystified
Devteach 2017 OAuth and Open id connect demystified
 
Sea surfing in asp.net mvc
Sea surfing in asp.net mvcSea surfing in asp.net mvc
Sea surfing in asp.net mvc
 
Enhancing Mobile User Experience with WebSocket
Enhancing Mobile User Experience with WebSocketEnhancing Mobile User Experience with WebSocket
Enhancing Mobile User Experience with WebSocket
 
WebSockets: The Current State of the Most Valuable HTML5 API for Java Developers
WebSockets: The Current State of the Most Valuable HTML5 API for Java DevelopersWebSockets: The Current State of the Most Valuable HTML5 API for Java Developers
WebSockets: The Current State of the Most Valuable HTML5 API for Java Developers
 
ISBG The 3 S's a guide to single sign on
ISBG  The 3 S's a guide to single sign onISBG  The 3 S's a guide to single sign on
ISBG The 3 S's a guide to single sign on
 
Introduction to OAuth
Introduction to OAuthIntroduction to OAuth
Introduction to OAuth
 
Indianapolis mule soft_meetup_30_jan_2021 (1)
Indianapolis mule soft_meetup_30_jan_2021 (1)Indianapolis mule soft_meetup_30_jan_2021 (1)
Indianapolis mule soft_meetup_30_jan_2021 (1)
 
Vp nwebcast williams_wallaboswell
Vp nwebcast williams_wallaboswellVp nwebcast williams_wallaboswell
Vp nwebcast williams_wallaboswell
 
15-auth-session-mgmt.ppt
15-auth-session-mgmt.ppt15-auth-session-mgmt.ppt
15-auth-session-mgmt.ppt
 
vlavrynovych - WebSockets Presentation
vlavrynovych - WebSockets Presentationvlavrynovych - WebSockets Presentation
vlavrynovych - WebSockets Presentation
 
Realtime Web Apps in 2014 & Beyond
Realtime Web Apps in 2014 & BeyondRealtime Web Apps in 2014 & Beyond
Realtime Web Apps in 2014 & Beyond
 
Easy logins for JavaScript web applications
Easy logins for JavaScript web applicationsEasy logins for JavaScript web applications
Easy logins for JavaScript web applications
 
Going realtime with Socket.IO
Going realtime with Socket.IOGoing realtime with Socket.IO
Going realtime with Socket.IO
 
The Physical World meets the Web
The Physical World meets the WebThe Physical World meets the Web
The Physical World meets the Web
 
Open Id, O Auth And Webservices
Open Id, O Auth And WebservicesOpen Id, O Auth And Webservices
Open Id, O Auth And Webservices
 

Recently uploaded

Cosa hanno in comune un mattoncino Lego e la backdoor XZ?
Cosa hanno in comune un mattoncino Lego e la backdoor XZ?Cosa hanno in comune un mattoncino Lego e la backdoor XZ?
Cosa hanno in comune un mattoncino Lego e la backdoor XZ?
Speck&Tech
 
Building Production Ready Search Pipelines with Spark and Milvus
Building Production Ready Search Pipelines with Spark and MilvusBuilding Production Ready Search Pipelines with Spark and Milvus
Building Production Ready Search Pipelines with Spark and Milvus
Zilliz
 
Mind map of terminologies used in context of Generative AI
Mind map of terminologies used in context of Generative AIMind map of terminologies used in context of Generative AI
Mind map of terminologies used in context of Generative AI
Kumud Singh
 
UiPath Test Automation using UiPath Test Suite series, part 6
UiPath Test Automation using UiPath Test Suite series, part 6UiPath Test Automation using UiPath Test Suite series, part 6
UiPath Test Automation using UiPath Test Suite series, part 6
DianaGray10
 
Let's Integrate MuleSoft RPA, COMPOSER, APM with AWS IDP along with Slack
Let's Integrate MuleSoft RPA, COMPOSER, APM with AWS IDP along with SlackLet's Integrate MuleSoft RPA, COMPOSER, APM with AWS IDP along with Slack
Let's Integrate MuleSoft RPA, COMPOSER, APM with AWS IDP along with Slack
shyamraj55
 
Programming Foundation Models with DSPy - Meetup Slides
Programming Foundation Models with DSPy - Meetup SlidesProgramming Foundation Models with DSPy - Meetup Slides
Programming Foundation Models with DSPy - Meetup Slides
Zilliz
 
Why You Should Replace Windows 11 with Nitrux Linux 3.5.0 for enhanced perfor...
Why You Should Replace Windows 11 with Nitrux Linux 3.5.0 for enhanced perfor...Why You Should Replace Windows 11 with Nitrux Linux 3.5.0 for enhanced perfor...
Why You Should Replace Windows 11 with Nitrux Linux 3.5.0 for enhanced perfor...
SOFTTECHHUB
 
GraphSummit Singapore | Neo4j Product Vision & Roadmap - Q2 2024
GraphSummit Singapore | Neo4j Product Vision & Roadmap - Q2 2024GraphSummit Singapore | Neo4j Product Vision & Roadmap - Q2 2024
GraphSummit Singapore | Neo4j Product Vision & Roadmap - Q2 2024
Neo4j
 
Removing Uninteresting Bytes in Software Fuzzing
Removing Uninteresting Bytes in Software FuzzingRemoving Uninteresting Bytes in Software Fuzzing
Removing Uninteresting Bytes in Software Fuzzing
Aftab Hussain
 
Pushing the limits of ePRTC: 100ns holdover for 100 days
Pushing the limits of ePRTC: 100ns holdover for 100 daysPushing the limits of ePRTC: 100ns holdover for 100 days
Pushing the limits of ePRTC: 100ns holdover for 100 days
Adtran
 
Uni Systems Copilot event_05062024_C.Vlachos.pdf
Uni Systems Copilot event_05062024_C.Vlachos.pdfUni Systems Copilot event_05062024_C.Vlachos.pdf
Uni Systems Copilot event_05062024_C.Vlachos.pdf
Uni Systems S.M.S.A.
 
Infrastructure Challenges in Scaling RAG with Custom AI models
Infrastructure Challenges in Scaling RAG with Custom AI modelsInfrastructure Challenges in Scaling RAG with Custom AI models
Infrastructure Challenges in Scaling RAG with Custom AI models
Zilliz
 
“I’m still / I’m still / Chaining from the Block”
“I’m still / I’m still / Chaining from the Block”“I’m still / I’m still / Chaining from the Block”
“I’m still / I’m still / Chaining from the Block”
Claudio Di Ciccio
 
GraphSummit Singapore | The Future of Agility: Supercharging Digital Transfor...
GraphSummit Singapore | The Future of Agility: Supercharging Digital Transfor...GraphSummit Singapore | The Future of Agility: Supercharging Digital Transfor...
GraphSummit Singapore | The Future of Agility: Supercharging Digital Transfor...
Neo4j
 
AI 101: An Introduction to the Basics and Impact of Artificial Intelligence
AI 101: An Introduction to the Basics and Impact of Artificial IntelligenceAI 101: An Introduction to the Basics and Impact of Artificial Intelligence
AI 101: An Introduction to the Basics and Impact of Artificial Intelligence
IndexBug
 
Essentials of Automations: The Art of Triggers and Actions in FME
Essentials of Automations: The Art of Triggers and Actions in FMEEssentials of Automations: The Art of Triggers and Actions in FME
Essentials of Automations: The Art of Triggers and Actions in FME
Safe Software
 
Observability Concepts EVERY Developer Should Know -- DeveloperWeek Europe.pdf
Observability Concepts EVERY Developer Should Know -- DeveloperWeek Europe.pdfObservability Concepts EVERY Developer Should Know -- DeveloperWeek Europe.pdf
Observability Concepts EVERY Developer Should Know -- DeveloperWeek Europe.pdf
Paige Cruz
 
みなさんこんにちはこれ何文字まで入るの?40文字以下不可とか本当に意味わからないけどこれ限界文字数書いてないからマジでやばい文字数いけるんじゃないの?えこ...
みなさんこんにちはこれ何文字まで入るの?40文字以下不可とか本当に意味わからないけどこれ限界文字数書いてないからマジでやばい文字数いけるんじゃないの?えこ...みなさんこんにちはこれ何文字まで入るの?40文字以下不可とか本当に意味わからないけどこれ限界文字数書いてないからマジでやばい文字数いけるんじゃないの?えこ...
みなさんこんにちはこれ何文字まで入るの?40文字以下不可とか本当に意味わからないけどこれ限界文字数書いてないからマジでやばい文字数いけるんじゃないの?えこ...
名前 です男
 
Mariano G Tinti - Decoding SpaceX
Mariano G Tinti - Decoding SpaceXMariano G Tinti - Decoding SpaceX
Mariano G Tinti - Decoding SpaceX
Mariano Tinti
 
How to use Firebase Data Connect For Flutter
How to use Firebase Data Connect For FlutterHow to use Firebase Data Connect For Flutter
How to use Firebase Data Connect For Flutter
Daiki Mogmet Ito
 

Recently uploaded (20)

Cosa hanno in comune un mattoncino Lego e la backdoor XZ?
Cosa hanno in comune un mattoncino Lego e la backdoor XZ?Cosa hanno in comune un mattoncino Lego e la backdoor XZ?
Cosa hanno in comune un mattoncino Lego e la backdoor XZ?
 
Building Production Ready Search Pipelines with Spark and Milvus
Building Production Ready Search Pipelines with Spark and MilvusBuilding Production Ready Search Pipelines with Spark and Milvus
Building Production Ready Search Pipelines with Spark and Milvus
 
Mind map of terminologies used in context of Generative AI
Mind map of terminologies used in context of Generative AIMind map of terminologies used in context of Generative AI
Mind map of terminologies used in context of Generative AI
 
UiPath Test Automation using UiPath Test Suite series, part 6
UiPath Test Automation using UiPath Test Suite series, part 6UiPath Test Automation using UiPath Test Suite series, part 6
UiPath Test Automation using UiPath Test Suite series, part 6
 
Let's Integrate MuleSoft RPA, COMPOSER, APM with AWS IDP along with Slack
Let's Integrate MuleSoft RPA, COMPOSER, APM with AWS IDP along with SlackLet's Integrate MuleSoft RPA, COMPOSER, APM with AWS IDP along with Slack
Let's Integrate MuleSoft RPA, COMPOSER, APM with AWS IDP along with Slack
 
Programming Foundation Models with DSPy - Meetup Slides
Programming Foundation Models with DSPy - Meetup SlidesProgramming Foundation Models with DSPy - Meetup Slides
Programming Foundation Models with DSPy - Meetup Slides
 
Why You Should Replace Windows 11 with Nitrux Linux 3.5.0 for enhanced perfor...
Why You Should Replace Windows 11 with Nitrux Linux 3.5.0 for enhanced perfor...Why You Should Replace Windows 11 with Nitrux Linux 3.5.0 for enhanced perfor...
Why You Should Replace Windows 11 with Nitrux Linux 3.5.0 for enhanced perfor...
 
GraphSummit Singapore | Neo4j Product Vision & Roadmap - Q2 2024
GraphSummit Singapore | Neo4j Product Vision & Roadmap - Q2 2024GraphSummit Singapore | Neo4j Product Vision & Roadmap - Q2 2024
GraphSummit Singapore | Neo4j Product Vision & Roadmap - Q2 2024
 
Removing Uninteresting Bytes in Software Fuzzing
Removing Uninteresting Bytes in Software FuzzingRemoving Uninteresting Bytes in Software Fuzzing
Removing Uninteresting Bytes in Software Fuzzing
 
Pushing the limits of ePRTC: 100ns holdover for 100 days
Pushing the limits of ePRTC: 100ns holdover for 100 daysPushing the limits of ePRTC: 100ns holdover for 100 days
Pushing the limits of ePRTC: 100ns holdover for 100 days
 
Uni Systems Copilot event_05062024_C.Vlachos.pdf
Uni Systems Copilot event_05062024_C.Vlachos.pdfUni Systems Copilot event_05062024_C.Vlachos.pdf
Uni Systems Copilot event_05062024_C.Vlachos.pdf
 
Infrastructure Challenges in Scaling RAG with Custom AI models
Infrastructure Challenges in Scaling RAG with Custom AI modelsInfrastructure Challenges in Scaling RAG with Custom AI models
Infrastructure Challenges in Scaling RAG with Custom AI models
 
“I’m still / I’m still / Chaining from the Block”
“I’m still / I’m still / Chaining from the Block”“I’m still / I’m still / Chaining from the Block”
“I’m still / I’m still / Chaining from the Block”
 
GraphSummit Singapore | The Future of Agility: Supercharging Digital Transfor...
GraphSummit Singapore | The Future of Agility: Supercharging Digital Transfor...GraphSummit Singapore | The Future of Agility: Supercharging Digital Transfor...
GraphSummit Singapore | The Future of Agility: Supercharging Digital Transfor...
 
AI 101: An Introduction to the Basics and Impact of Artificial Intelligence
AI 101: An Introduction to the Basics and Impact of Artificial IntelligenceAI 101: An Introduction to the Basics and Impact of Artificial Intelligence
AI 101: An Introduction to the Basics and Impact of Artificial Intelligence
 
Essentials of Automations: The Art of Triggers and Actions in FME
Essentials of Automations: The Art of Triggers and Actions in FMEEssentials of Automations: The Art of Triggers and Actions in FME
Essentials of Automations: The Art of Triggers and Actions in FME
 
Observability Concepts EVERY Developer Should Know -- DeveloperWeek Europe.pdf
Observability Concepts EVERY Developer Should Know -- DeveloperWeek Europe.pdfObservability Concepts EVERY Developer Should Know -- DeveloperWeek Europe.pdf
Observability Concepts EVERY Developer Should Know -- DeveloperWeek Europe.pdf
 
みなさんこんにちはこれ何文字まで入るの?40文字以下不可とか本当に意味わからないけどこれ限界文字数書いてないからマジでやばい文字数いけるんじゃないの?えこ...
みなさんこんにちはこれ何文字まで入るの?40文字以下不可とか本当に意味わからないけどこれ限界文字数書いてないからマジでやばい文字数いけるんじゃないの?えこ...みなさんこんにちはこれ何文字まで入るの?40文字以下不可とか本当に意味わからないけどこれ限界文字数書いてないからマジでやばい文字数いけるんじゃないの?えこ...
みなさんこんにちはこれ何文字まで入るの?40文字以下不可とか本当に意味わからないけどこれ限界文字数書いてないからマジでやばい文字数いけるんじゃないの?えこ...
 
Mariano G Tinti - Decoding SpaceX
Mariano G Tinti - Decoding SpaceXMariano G Tinti - Decoding SpaceX
Mariano G Tinti - Decoding SpaceX
 
How to use Firebase Data Connect For Flutter
How to use Firebase Data Connect For FlutterHow to use Firebase Data Connect For Flutter
How to use Firebase Data Connect For Flutter
 

Setup ephemeral password for TURN, Learn RTC in less than 200 Lines of code