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 au réseau privé à partir de sites Web publics non sécurisés. L'essai de suppression de l'accès au réseau privé à partir de contextes non sécurisés en cours a révélé des difficultés à migrer les sites Web concernés vers le protocole HTTPS. Un problème courant est la difficulté de migrer des appareils privés vers HTTPS, ce qui entraîne des cas de non-respect 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 une phase d'évaluation de l'origine à partir de Chrome 120.

Nouvelle option : requête 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 à Accès au réseau privé: présentation des requêtes préliminaires, toute requête de réseau privé sera précédée d'une requête préliminaire. Cette requête préliminaire inclura 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 prendre en charge la nouvelle invite d'autorisation, nous avons demandé aux appareils d'intégrer 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 la forme de six 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émo

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

S'inscrire à un essai de préversion

Pour nous assurer que l'invite d'autorisation d'accès au réseau privé aide les développeurs à adopter des restrictions de contexte sécurisées pour l'accès au réseau privé, nous les rendons disponibles dans Chrome de la version 120 à la version 122 en tant que test d'origine.

Inscrivez-vous à la phase d'évaluation pour l'origine afin d'autoriser votre site Web à 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 code 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

Pour toute question ou suggestion concernant cette fonctionnalité, veuillez signaler un problème dans le dépôt GitHub.

Ressources