Dev-Tunnel pour remplacer NGrok
Introduction
Il arrive régulièrement, par exemple lors d’un développement d’une application pour Microsoft Teams, que nous ayons besoin d’un un outil qui permet de créer des tunnels sécurisés vers des serveurs locaux. Notre développement local est ainsi accessible depuis Internet. En gros, le site web en développement sur la machine locale, est accessible depuis n’importe où via une URL publique temporaire.
Pour cela, le logiciel le plus connu est NGrok qui fait parfaitement le travail.
Mais depuis quelques mois, Microsoft propose une solution équivalente et gratuite: Dev Tunnel.
Installation
Avant de créer un tunnel dev, vous devez d’abord télécharger et installer l’outil CLI (Command Line Interface) devtunnel correspondant à votre système d’exploitation 
(voir toutes les commandes d’installation ici).
winget install Microsoft.devtunnel
Login
Pour démarrer un tunnel de développement, vous devez d’abord vous connecter avec un compte Microsoft ou GitHub. Les tunnels de développement ne permettent pas d’héberger des tunnels de manière anonyme.
devtunnel user login
Tunnel
Une fois connecté, vous pouvez commencer à héberger un tunnel dev à l’aide de la commande host.
Vous devez préalablement démarrer votre serveur web local, par exemple en écoute sur le port http 4444 
ou sur le port sécurisé https 5000. Vous pouvez faire cela via l’outil dotnet serve ou tout autre commande d’hébergement.
# Start a HTTP local server
dotnet serve -p 4444 --directory ./
# Start an HTTPS local server
dotnet serve -p 5000 --tls --directory ./
La commande Dev Tunnel est alors…
devtunnel host -p 4444 --allow-anonymous
devtunnel host -p 5000 --allow-anonymous --protocol https
A chaque exécution de cette commande
devtunnel host, un nouceau domaine temporaire est créé.
Persistent Tunnel
Si vous souhaitez que le domaine soit persiste sur plusieurs jours (maximum 30 jours):
- Vous devez créer un TunnelID
 - Vous devez y ajouter un ou plusieurs port d’écoute
 - Vous pouvez démarrer ce tunnel grâce à son ID.
 
devtunnel create my-tunnel --allow-anonymous --expiration 30d
devtunnel port create my-tunnel -p 5000
Lors du premier démarrage du Tunnel, un domaine sera généré. Il sera identique pendant les 30 prochains jours.
devtunnel host my-tunnel
Exemple:
▶️❯ devtunnel create my-tunnel --allow-anonymous --expiration 30d
        Welcome to dev tunnels!
        CLI version: 1.0.1301+f410beb2af
        By using the software, you agree to
          - the dev tunnels License Terms: https://aka.ms/devtunnels/tos
          - the Microsoft Privacy Statement: https://privacy.microsoft.com/privacystatement
        Report issues on GitHub: https://aka.ms/devtunnels/issues
        Use 'devtunnel --help' to see available commands or visit: https://aka.ms/devtunnels/docs
        Tunnel ID             : my-tunnel.euw
        Description           :
        Labels                :
        Access control        : {+Anonymous [connect]}
        Host connections      : 0
        Client connections    : 0
        Current upload rate   : 0 MB/s (limit: 20 MB/s)
        Current download rate : 0 MB/s (limit: 20 MB/s)
        Tunnel Expiration     : 30 days
        Set default tunnel to my-tunnel.
▶️❯ devtunnel port create my-tunnel -p 5000 --protocol https
        Tunnel ID             : my-tunnel.euw
        Port Number           : 5000
        Protocol              : auto
        Access control        : {Inherited: +Anonymous [connect]}
        Client connections    : 0
▶️❯ devtunnel host my-tunnel
        Hosting port: 5000
        Connect via browser: https://hj8h5tk6.euw.devtunnels.ms:5000, https://hj8h5tk6-5000.euw.devtunnels.ms
        Inspect network activity: https://hj8h5tk6-5000-inspect.euw.devtunnels.ms
        Ready to accept connections for tunnel: my-tunnel

