Aller au contenu principal

3. Configuration des clients

Les clients sont configurés pour utiliser le relais IP sur HTTP via un modèle d'URI [TEMPLATE]. Le modèle d'URI PEUT contenir deux variables : "target" et "ipproto" ; voir Section 4.6. Le caractère facultatif des variables doit être pris en compte lors de la définition du modèle afin que la variable soit auto-identifiable ou possible à exclure dans la syntaxe.

Des exemples sont présentés ci-dessous :

https://example.org/.well-known/masque/ip/{target}/{ipproto}/
https://proxy.example.org:4443/masque/ip?t={target}&i={ipproto}
https://proxy.example.org:4443/masque/ip{?target,ipproto}
https://masque.example.org/?user=bob

Figure 1 : Exemples de modèles d'URI

Les exigences suivantes s'appliquent au modèle d'URI :

  • Le modèle d'URI DOIT être un modèle de niveau 3 ou inférieur.

  • Le modèle d'URI DOIT être sous forme absolue et DOIT inclure des composants de schéma, d'autorité et de chemin non vides.

  • Le composant de chemin du modèle d'URI DOIT commencer par une barre oblique "/".

  • Toutes les variables de modèle DOIVENT se trouver dans les composants de chemin ou de requête de l'URI.

  • Le modèle d'URI PEUT contenir les deux variables "target" et "ipproto" et PEUT contenir d'autres variables. Si les variables "target" ou "ipproto" sont incluses, leurs valeurs NE DOIVENT PAS être vides. Les clients peuvent utiliser "*" à la place pour indiquer des valeurs génériques ou sans préférence ; voir Section 4.6.

  • Le modèle d'URI NE DOIT PAS contenir de caractères Unicode non ASCII et NE DOIT contenir que des caractères ASCII dans la plage 0x21-0x7E inclus (notez que l'encodage en pourcentage est autorisé ; voir Section 2.1 de URI).

  • Le modèle d'URI NE DOIT PAS utiliser l'expansion réservée (opérateur "+"), l'expansion de fragment (opérateur "#"), l'expansion d'étiquette avec préfixe point, l'expansion de segment de chemin avec préfixe barre oblique, ni l'expansion de paramètre de style chemin avec préfixe point-virgule.

Les clients DEVRAIENT valider les exigences ci-dessus ; cependant, les clients PEUVENT utiliser une implémentation de modèle d'URI à usage général qui ne dispose pas de cette validation spécifique. Si un client détecte que l'une des exigences ci-dessus n'est pas satisfaite par un modèle d'URI, le client DOIT rejeter sa configuration et abandonner la demande sans l'envoyer au proxy IP.

Comme pour le relais UDP, certaines configurations client pour les proxys IP permettront uniquement à l'utilisateur de configurer l'hôte proxy et le port proxy. Les clients avec de telles limitations PEUVENT tenter d'accéder aux fonctionnalités de relais IP en utilisant le modèle par défaut, qui est défini comme : "https://$PROXY_HOST:$PROXY_PORT/.well-known/masque/ip/{target}/{ipproto}/", où $PROXY_HOST et $PROXY_PORT sont respectivement l'hôte et le port configurés du proxy IP. Les déploiements de proxy IP DEVRAIENT offrir un service à cet emplacement s'ils doivent interagir avec de tels clients.