Description
Utilisez l'API chrome.vpnProvider
pour implémenter un client VPN.
Autorisations
vpnProvider
Disponibilité
Utilisation
En général, vpnProvider est utilisé comme suit:
Créez des configurations VPN à l'aide de la méthode
createConfig
. Une configuration VPN est une entrée persistante présentée à l'utilisateur dans une interface utilisateur ChromeOS native. L'utilisateur peut sélectionner une configuration VPN dans une liste et s'y connecter ou s'en déconnecter.Ajoutez des écouteurs aux événements
onPlatformMessage
,onPacketReceived
etonConfigRemoved
.Lorsque l'utilisateur se connecte à la configuration VPN,
onPlatformMessage
est reçu avec le message"connected"
. Nous désignons le point entre les messages"connected"
et"disconnected"
par le terme "session VPN". Pendant cette période, l'extension qui reçoit le message est considérée comme propriétaire de la session VPN.Établissez la connexion au serveur VPN et démarrez le client VPN.
Définissez les paramètres de la connexion à l'aide de
setParameters
.Indiquez l'état de la connexion en tant que
"connected"
à l'aide denotifyConnectionStateChanged
.Lorsque les étapes ci-dessus sont effectuées sans erreur, un tunnel virtuel est créé vers la pile réseau de ChromeOS. Les paquets IP peuvent être envoyés via le tunnel à l'aide de
sendPacket
. Tous les paquets provenant de l'appareil ChromeOS seront reçus à l'aide de l'événementonPacketReceived
.Lorsque l'utilisateur se déconnecte de la configuration VPN,
onPlatformMessage
est déclenché avec le message"disconnected"
.Si la configuration VPN n'est plus nécessaire, vous pouvez la détruire à l'aide de
destroyConfig
.
Types
Parameters
Propriétés
-
adresse
chaîne
Adresse IP de l'interface VPN, au format CIDR. IPv4 est actuellement le seul mode compatible.
-
broadcastAddress
chaîne facultatif
Adresse de broadcast pour l'interface VPN. (par défaut: déduit de l'adresse IP et du masque)
-
dnsServers
chaîne[]
Liste des adresses IP des serveurs DNS.
-
domainSearch
string[] facultatif
Liste des domaines de recherche. (par défaut: aucun domaine de recherche)
-
exclusionList
chaîne[]
Excluez le trafic réseau du tunnel à la liste des blocs d'adresses IP au format CIDR. Cela permet de contourner le trafic vers et depuis le serveur VPN. Lorsque de nombreuses règles correspondent à une destination, la règle avec le préfixe correspondant le plus long l'emporte. Les entrées qui correspondent au même bloc CIDR sont traitées comme des doublons. Ces doublons figurant dans la liste compilée (exclusionList + inclusionList) sont supprimés, et l'entrée exacte en double qui sera éliminée n'est pas définie.
-
inclusionList
chaîne[]
Incluez le trafic réseau dans la liste des blocs d'adresses IP au format CIDR du tunnel. Ce paramètre peut être utilisé pour configurer un tunnel de division. Par défaut, aucun trafic n'est dirigé vers le tunnel. Ajouter l'entrée "0.0.0.0/0" à cette liste redirige tout le trafic utilisateur vers le tunnel. Lorsque de nombreuses règles correspondent à une destination, la règle avec le préfixe correspondant le plus long l'emporte. Les entrées qui correspondent au même bloc CIDR sont traitées comme des doublons. Ces doublons figurant dans la liste compilée (exclusionList + inclusionList) sont supprimés et l'entrée exacte en double qui sera éliminée n'est pas définie.
-
mtu
chaîne facultatif
Paramètre de MTU de l'interface VPN. (par défaut: 1 500 octets)
-
reconnecter
chaîne facultatif
Chrome (version 51 ou ultérieure)Indique si l'extension VPN met en œuvre la reconnexion automatique.
Si la valeur est "true", les messages de plate-forme
linkDown
,linkUp
,linkChanged
,suspend
etresume
seront utilisés pour signaler les événements respectifs. Si la valeur est définie sur "false", le système déconnectera de force le VPN en cas de modification de la topologie du réseau, et l'utilisateur devra se reconnecter manuellement. (par défaut : "false")Cette propriété est nouvelle dans Chrome 51. cela générera une exception dans les versions antérieures. La fonction try/catch peut être utilisée pour activer la fonctionnalité de manière conditionnelle en fonction de la compatibilité du navigateur.
PlatformMessage
Cette énumération permet à la plate-forme d'informer le client de l'état de la session VPN.
Énumération
"connected"
Indique que la configuration VPN est connectée.
"disconnected"
Indique que la configuration VPN s'est déconnectée.
"error"
Indique qu'une erreur s'est produite lors de la connexion VPN, par exemple un délai d'inactivité. Une description de l'erreur est fournie en tant qu'argument de l'erreur à onPlatformMessage.
"linkDown"
Indique que la connexion réseau physique par défaut est interrompue.
"linkUp"
Indique que la connexion réseau physique par défaut est de secours.
"linkChanged"
Indique que la connexion réseau physique par défaut a changé, par exemple Wi-Fi->mobile.
"suspend"
Indique que le système d'exploitation est sur le point d'être suspendu et que le VPN doit donc mettre fin à sa connexion. Il n'est pas garanti que l'extension reçoive cet événement avant d'être suspendue.
"resume"
Indique que l'OS a repris et que l'utilisateur s'est reconnecté. Le VPN doit donc essayer de se reconnecter.
UIEvent
L'énumération est utilisée par la plate-forme pour indiquer l'événement ayant déclenché onUIEvent
.
Énumération
"showAddDialog"
Demande au client VPN d'afficher la boîte de dialogue d'ajout de configuration à l'utilisateur.
"showConfigureDialog"
Demande au client VPN d'afficher la boîte de dialogue des paramètres de configuration à l'utilisateur.
VpnConnectionState
L'énumération est utilisée par le client VPN pour informer la plate-forme de son état actuel. Cela permet de fournir des messages pertinents à l'utilisateur.
Énumération
"connected"
Indique que la connexion VPN a abouti.
"failure"
Indique que la connexion VPN a échoué.
Méthodes
createConfig()
chrome.vpnProvider.createConfig(
name: string,
callback?: function,
)
Crée une configuration VPN qui persiste pendant plusieurs sessions de connexion de l'utilisateur.
Paramètres
-
nom
chaîne
Nom de la configuration VPN.
-
rappel
function facultatif
Le paramètre
callback
se présente comme suit:(id: string) => void
-
id
chaîne
ID unique pour la configuration créée, ou
undefined
en cas d'échec.
-
Renvoie
-
Promise<string>
Chrome 96 ou version ultérieureLes promesses ne sont compatibles qu'avec Manifest V3 et versions ultérieures. Les autres plates-formes doivent utiliser des rappels.
destroyConfig()
chrome.vpnProvider.destroyConfig(
id: string,
callback?: function,
)
Détruit une configuration VPN créée par l'extension.
Paramètres
-
id
chaîne
ID de la configuration VPN à détruire.
-
rappel
function facultatif
Le paramètre
callback
se présente comme suit:() => void
Renvoie
-
Promesse<void>
Chrome 96 ou version ultérieureLes promesses ne sont compatibles qu'avec Manifest V3 et versions ultérieures. Les autres plates-formes doivent utiliser des rappels.
notifyConnectionStateChanged()
chrome.vpnProvider.notifyConnectionStateChanged(
state: VpnConnectionState,
callback?: function,
)
Notifie l'état de la session VPN auprès de la plate-forme. Cette opération ne fonctionne que lorsque la session VPN appartient à l'extension.
Paramètres
-
state
État de la session VPN du client VPN.
-
rappel
function facultatif
Le paramètre
callback
se présente comme suit:() => void
Renvoie
-
Promesse<void>
Chrome 96 ou version ultérieureLes promesses ne sont compatibles qu'avec Manifest V3 et versions ultérieures. Les autres plates-formes doivent utiliser des rappels.
sendPacket()
chrome.vpnProvider.sendPacket(
data: ArrayBuffer,
callback?: function,
)
envoie un paquet IP via le tunnel créé pour la session VPN. Cette opération ne fonctionne que lorsque la session VPN appartient à l'extension.
Paramètres
-
données
ArrayBuffer
Paquet IP à envoyer à la plate-forme.
-
rappel
function facultatif
Le paramètre
callback
se présente comme suit:() => void
Renvoie
-
Promesse<void>
Chrome 96 ou version ultérieureLes promesses ne sont compatibles qu'avec Manifest V3 et versions ultérieures. Les autres plates-formes doivent utiliser des rappels.
setParameters()
chrome.vpnProvider.setParameters(
parameters: Parameters,
callback?: function,
)
Définit les paramètres de la session VPN. Cette méthode doit être appelée immédiatement après la réception de "connected"
par la plate-forme. Cette opération ne fonctionne que lorsque la session VPN appartient à l'extension.
Paramètres
-
paramètres
Paramètres de la session VPN.
-
rappel
function facultatif
Le paramètre
callback
se présente comme suit:() => void
Renvoie
-
Promesse<void>
Chrome 96 ou version ultérieureLes promesses ne sont compatibles qu'avec Manifest V3 et versions ultérieures. Les autres plates-formes doivent utiliser des rappels.
Événements
onConfigCreated
chrome.vpnProvider.onConfigCreated.addListener(
callback: function,
)
Déclenché lorsqu'une configuration est créée par la plate-forme pour l'extension.
Paramètres
-
rappel
fonction
Le paramètre
callback
se présente comme suit:(id: string, name: string, data: object) => void
-
id
chaîne
-
nom
chaîne
-
données
objet
-
onConfigRemoved
chrome.vpnProvider.onConfigRemoved.addListener(
callback: function,
)
Déclenché lorsqu'une configuration créée par l'extension est supprimée par la plate-forme.
Paramètres
-
rappel
fonction
Le paramètre
callback
se présente comme suit:(id: string) => void
-
id
chaîne
-
onPacketReceived
chrome.vpnProvider.onPacketReceived.addListener(
callback: function,
)
Déclenché lorsqu'un paquet IP est reçu via le tunnel pour la session VPN appartenant à l'extension.
Paramètres
-
rappel
fonction
Le paramètre
callback
se présente comme suit:(data: ArrayBuffer) => void
-
données
ArrayBuffer
-
onPlatformMessage
chrome.vpnProvider.onPlatformMessage.addListener(
callback: function,
)
Déclenché lorsqu'un message est reçu de la plate-forme pour une configuration VPN appartenant à l'extension.
Paramètres
-
rappel
fonction
Le paramètre
callback
se présente comme suit:(id: string, message: PlatformMessage, error: string) => void
-
id
chaîne
-
message
-
erreur
chaîne
-
onUIEvent
chrome.vpnProvider.onUIEvent.addListener(
callback: function,
)
Déclenché lorsqu'un événement d'interface utilisateur est associé à l'extension. Les événements d'UI sont des signaux de la plate-forme qui indiquent à l'application qu'une boîte de dialogue d'UI doit être présentée à l'utilisateur.