Phase d'évaluation de l'invite d'autorisation d'accès au réseau privé: méthode permettant de migrer des sites Web avec HTTPS

Yifan Luo
Yifan Luo

Contexte

Chrome 94 a introduit un blocage de l'accès aux réseaux privés à partir des sites Web publics non sécurisés. L'essai d'abandon en cours de l'accès au réseau privé depuis des contextes non sécurisés a révélé les défis liés à la migration des sites Web concernés vers HTTPS. La difficulté de migrer des appareils privés vers HTTPS entraîne des infractions lors de la vérification du contenu mixte.

Pour résoudre le problème mentionné précédemment, une nouvelle invite d'autorisation est disponible dans le cadre d'une phase d'évaluation dans Chrome 120.

Nouvelle option : invite d'autorisation

En ajoutant le nouvel attribut targetAddressSpace en tant qu'option de récupération, la requête pourra ignorer la vérification du contenu mixte.

Exemple :

fetch("http://router.local/ping", {
  targetAddressSpace: "private",
});

Conformément à la règle Accès au réseau privé: introduction des vérifications préliminaires, toute requête sur un réseau privé est précédée d'une requête préliminaire. Cette requête préliminaire comprend un nouvel en-tête, Access-Control-Request-Private-Network: true, et la réponse correspondante doit inclure l'en-tête Access-Control-Allow-Private-Network: true.

Pour répondre à cette nouvelle demande d'autorisation, nous avons demandé aux appareils d'incorporer deux nouveaux en-têtes de réponse: Private-Network-Access-Name et Private-Network-Access-ID.

Private-Network-Access-Name: <some human-readable device name>
Private-Network-Access-ID: <the MAC address of the device>

Exemple :

Private-Network-Access-Name: "My Smart Toothbrush"
Private-Network-Access-ID: "01:23:45:67:89:0A"

Private-Network-Access-ID: valeur de 48 bits présentée sous forme de 6 octets hexadécimaux séparés par des deux-points. Private-Network-Access-Name: nom valide sous forme de chaîne correspondant à l'expression régulière ECMAScript /^[a-z0-9_-.]+$/. La longueur maximale du nom est de 248 unités de code UTF-8.

Démonstration

Vous pouvez consulter la version de démonstration à l'adresse https://private-network-access-permission-test.glitch.me/.

S'inscrire à une phase d'évaluation

Pour nous assurer que l'invite d'autorisation d'accès au réseau privé aide les développeurs à adopter des restrictions contextuelles sécurisées pour l'accès aux réseaux privés, nous les mettons à disposition dans Chrome de la version 120 à la version 122 en tant que phase d'évaluation.

Inscrivez-vous à la phase d'évaluation pour permettre à votre site Web d'utiliser l'invite d'autorisation:

  1. Demandez un jeton pour votre origine.
  2. Utilisez le jeton de l'une des manières suivantes :
    • Dans votre code HTML : html <meta http-equiv="Origin-Trial" content="TOKEN_GOES_HERE">
    • Dans votre fichier JavaScript : js const meta = document.createElement('meta'); meta.httpEquiv = 'Origin-Trial'; meta.content = 'TOKEN_GOES_HERE'; document.head.append(meta);
    • Dans les en-têtes HTTP : text Origin-Trial: TOKEN_GOES_HERE

Si vous avez des commentaires ou des suggestions concernant cette fonctionnalité, veuillez signaler votre problème dans le dépôt GitHub.

Ressources