►
Description
If you're developing applications for Microsoft Teams, you may have seen a tool called ngrok as a prerequisite in various tutorials and lab exercises. But do you really need ngrok to develop Teams apps??
This video will explain what ngrok is, why it's useful, and how and when to use it. Learn more: https://aka.ms/ngrok-article
A
First,
the
shocking
truth
teams
applications
do
not
run
in
microsoft
teams.
There.
I've
set
it
it's
out.
Okay
teams,
apps
do
appear
in
the
microsoft
teams,
user
interface,
so
users
don't
really
notice
the
difference,
but
the
actual
app
is
running
somewhere
else,
for
instance,
a
tab
or
anything
visual
like
a
task
module
or
a
configuration
page.
Those
are
implemented
as
web
pages
that
you
could
host
anywhere.
You
want
and
you
could
build
them
with
any
tools.
You
wish
things
like
bots
and
messaging
extensions.
A
A
You're
going
to
have
a
local
web
server
and
you're
going
to
be
accessing
that
in
the
case
of
a
tab
or
something
that
uses
a
web
page,
your
team's
client
is
going
to
directly
access
that
local
web
server
and
pull
in
microsoft
teams
itself
over
the
internet
and
stitch
it
all
together.
In
the
case
of
something
like
a
bot,
however,
the
message
actually
is
going
to
be
blocked
by
the
developers
firewall
by
default.
A
So
the
message
is
going
to
be
coming
from,
say
the
azure
bot
service,
where
it,
which
is
the
case
for
bots
and
messaging
extensions,
and
it's.
How
is
that
going
to
get
to
my
local
web
server
so
that
I
can
debug
the
thing?
Well,
that's
where
ngrok
comes
in
ngrok
provides
a
tunnel
from
the
public
internet
over
to
your
local
web
server
so
that
you
can
debug.
A
So,
let's
see
how
that
works,
I'm
gonna
come
in
and
actually
build
the
world's
simplest
web
application,
which
is
just
hello
world.
One
file
I'm
going
to
serve
that
up
on
a
local
web
server
using
the
http
server
in
node,
okay.
So
now
let's
go
ahead
and
navigate
to
that
and
http
not
https
localhost
colon8080
works
great
now
I'll
go
and
open
that
up
to
the
internet.
So
I'm
going
to
say
ngrok
http
port
8080,
and
it
will
actually
show
me
this.
So
you
leave
this
running
the
whole
time
you're
using
ngrok.
A
A
The
interesting
thing
is
that
this
works
anywhere
on
the
internet.
So
now
here
I
am
on
my
phone
same
url
and
it's
actually
working
from
my
phone,
so
that
is
a
blessing
for
something
like
mobile
device
testing,
but
it
also
adds
a
bit
of
a
wrinkle
here,
which
is
that
a
lot
of
it
departments
are
not
going
to
trust
this
thing.
A
Okay,
this
is
mainly
an
issue
if
you're
working
behind
like
a
corporate
firewall,
where
you
have
a
perimeter-based
security,
because
even
though
I'm
sure
you
wouldn't
do
anything
malicious
from
the
I.t
person's
point
of
view,
you
could
someone
could
stand
up
and
grok
on
a
computer
somewhere
behind
the
firewall
and
then
use
that
as
part
as
a
launch
pad
for
doing
other
attacks
behind
the
firewall.
A
So
if
you're
in
kind
of
a
more
modern
setup,
zero
trust
as
they
call
it,
then
you
you
really
probably
don't
even
have
that
kind
of
a
configuration,
but
for
people
who
have
that
kind
of
configuration
it
can
give
them
heartburn.
So
it's
really
useful,
but
I'm
also
going
to
talk
about
how
to
not
use
it.
If
you
just
can't,
if
you're
not
comfortable
with
it
or
if
your
id
department
is
blocking
it
before
we
go
on,
though
let
me
just
show
you
one
other
cool
feature
which
is
this
web
interface.
A
So,
while
the
tunnel
was
obvious,
ngrok
was
actually
doing
more
than
that
for
us.
In
this
scenario,
it
also
provided
https
support
with
a
proper
authoritative
certificate
that
I
don't
have
to
mess
with
any
certificate
trust
set
up
because
it's
they
ngrok
actually
has
just
a
regular
certificate
that
they
purchased.
A
Also,
it
provides
a
dns
name
so
that
I
can
browse
there
say
from
my
phone
or
anywhere
I
want,
and
all
that
makes
mobile
device
testing
a
lot
easier,
as
you
can
imagine,
because
I
can
just
start
playing
with
my
site
using
any
device.
That's
on
the
internet,
so
that
these
are
the
reasons
why
ngrok
has
basically
become
the
darling
of
the
team's
development
community.
A
But
what?
If
your
company
won't
let
you
use
ngrok
well
looking
at
this
list,
some
of
these
items
there's
other
ways
to
accomplish
them:
https
support
host,
naming
even
mobile
device
testing.
This
can
all
be
done
locally
and
in
fact,
web
developers
have
been
doing
them
locally
for
a
long
time
it's
more
work
than
in
grok,
but
it's
certainly
possible.
It's
that
incoming
tunnel.
The
ability
to
receive
messages
initiated
in
the
cloud
that's
going
to
make
us
need
ngrok.
A
So,
if
you're
looking
for
a
tunnel
free
strategy
for
teams
development,
the
real
question
is:
do
you
need
incoming
connections
from
the
internet
when
debugging
your
app,
and
the
answer
is
if
you're
building
tabs
task
modules
or
configuration
pages?
No,
those
connections
are
all
initiated
locally
from
the
team's
client.
A
Some
people
seem
to
think
that
having
azure
active
directory
single
sign-on
is
going
to
require
suddenly
ngrok.
Well,
it
does
require
your
local
web
server
to
host
a
web
service
which
calls
out
to
azure
id,
but
the
web
service
is
called
locally,
so
no,
you
still
don't
need
it.
Now.
I
have
a
whole
video
which
I'll
link
to
at
the
end.
That
shows
how
to
set
up
your
local
web
server
to
do
things
like
ssl
termination,
so
that
you
can
do
this
local
debugging.
A
A
A
A
A
A
So
if
I
want
to
do
a
messaging
extension,
if
I
want
to
do
user
authentication,
there's
a
number
of
things
that
I
would
actually
still
need
ngrok
for
anyway,
I
hope
this
video
was
helpful
in
both
understanding
ngrok,
how
it
relates
to
microsoft
teams,
development
and
also
what
some
of
the
alternatives
are
for.
A
more
in-depth
examination
of
this
topic.
Please
check
out
the
companion
article
at
aka
dot,
ms
slash
ngrok
article.
I
also
have
an
article
and
video
on
how
to
set
up
for
local
tab
debugging
without
using
ngrok
thanks.
So
much
for
watching.