Slide 1

Slide 1 text

© 2025 Tailscale Inc. | tailscale.com Lazy application authentication Elliot Blackburn

Slide 2

Slide 2 text

© 2025 Tailscale Inc. | tailscale.com Hi I’m Elliot, founding engineer at Sunbeam and Tailscale Insider Nice to meet you www.elliotblackburn.com linkedin.com/in/elliot-blackburn [email protected]

Slide 3

Slide 3 text

© 2025 Tailscale Inc. | tailscale.com Here’s what we’re going to talk about Internal tools 1 Serve 2 tsnet 3

Slide 4

Slide 4 text

© 2025 Tailscale Inc. | tailscale.com Let's talk about auth for internal tools…

Slide 5

Slide 5 text

© 2025 Tailscale Inc. | tailscale.com Our internal tool needs to… ➔ Only be accessible on our internal network (VPN) ➔ Limit access to specific people ➔ Identify the user to create audit trails Our requirements

Slide 6

Slide 6 text

© 2025 Tailscale Inc. | tailscale.com Tailscale Serve

Slide 7

Slide 7 text

© 2025 Tailscale Inc. | tailscale.com 1. A users web browser makes a HTTP request 2. The tailscale client picks this up and sends it to the destination node (if ACL’s or Grants permit it) 3. Tailscale serve on the destination node forwards the traffic onto the attached application 4. Application receives the request and does it’s thing. Simple architecture

Slide 8

Slide 8 text

© 2025 Tailscale Inc. | tailscale.com Scaling beyond 1 node

Slide 9

Slide 9 text

© 2025 Tailscale Inc. | tailscale.com Serve also attaches some headers onto the request as they pass through which can be used to identify the user making the request. ● Tailscale-User-Login ● Tailscale-User-Name ● Tailscale-User-Profile-Pic (optional) But wait, there’s more!

Slide 10

Slide 10 text

© 2025 Tailscale Inc. | tailscale.com ● No need to change your application, or write specific integration code ● No login screens, passwords, or OAuth obstacle courses - that’s already happened ● Horizontal scaling is pretty simple The pros and cons ● Additional infrastructure to manage (proxy node) ● Limited ability to force an identity check (sudo mode) ● Doesn’t tackle application permissions

Slide 11

Slide 11 text

© 2025 Tailscale Inc. | tailscale.com tsnet for Native Tailscale Apps

Slide 12

Slide 12 text

© 2025 Tailscale Inc. | tailscale.com 1. A users web browser makes a HTTP request 2. The tailscale client picks this up and sends it to the destination node (if ACL’s or Grants permit it) 3. The application itself is the destination node, so it receives the request and returns the response Simpler architecture

Slide 13

Slide 13 text

© 2025 Tailscale Inc. | tailscale.com Application capabilities

Slide 14

Slide 14 text

© 2025 Tailscale Inc. | tailscale.com ● No additional proxy to manage ● Still no login screens, etc ● Lots of example applications to follow The pros and cons ● Go is the only language with practical support right now for listening directly a tailnet* ● Application capabilities are best accessed through Go* ● Would require a proxy of some kind if you wanted to horizontally scale * libtailscale will hopefully improve on this

Slide 15

Slide 15 text

© 2025 Tailscale Inc. | tailscale.com Please come and chat to me, I’d love to meet you! Thank you www.elliotblackburn.com fosstodon.org/@elliotblackburn [email protected]