Socket
Socket
Sign inDemoInstall

fortigate-web-sslvpn

Package Overview
Dependencies
1
Maintainers
1
Versions
6
Alerts
File Explorer

Advanced tools

Install Socket

Detect and block malicious and high-risk dependencies

Install

    fortigate-web-sslvpn

Make requests through FortiGate SSL VPN using the web mode.


Version published
Weekly downloads
4
decreased by-60%
Maintainers
1
Install size
117 kB
Created
Weekly downloads
 

Readme

Source

fortigate-web-sslvpn

This module focuses on the web mode of FortiGate SSL VPN, if you are looking for the tunnel mode check out openfortivpn.

Motivations

What is the "web mode" ?

According to https://docs.fortinet.com/document/fortigate/7.4.2/administration-guide/869159/ssl-vpn-best-practices, web-only mode provides clientless network access using a web browser with built-in SSL encryption.

You can find a documentation about this mode at https://docs.fortinet.com/document/fortigate/7.4.2/administration-guide/100733/ssl-vpn-web-mode.

Why use it over the "tunnel" mode ?

You may need a script to connect over a service through SSL VPN but you don't want to (or can't) setup FortiClient or openfortivpn on the machine running the script : this is where this module comes in handy.

In my case, I needed to connect to a service through SSL VPN from a serverless API. I couldn't use openfortivpn because it requires root access to setup the VPN tunnel. Also I would've only one connection at a time, while I needed multiple connections at the same time. In that case, using the "web mode" is the only solution.

Installation

You can use any package manager you want, here are some examples:

# NPM
npm install fortigate-web-sslvpn

# Yarn
yarn add fortigate-web-sslvpn

# pnpm
pnpm add fortigate-web-sslvpn

Usage

import { initWebSSLVPNSession } from "fortigate-web-sslvpn";

// Authenticate and create a VPN session.
const vpn = await initWebSSLVPNSession(
  "username",
  "password",
  "https://sslvpn.example.com" // No trailing slash or path.
);

// Use the VPN session to make requests.
const response = await vpn.request("https://service.example.com", {
  method: "POST",
  body: JSON.stringify({ hello: "world" }),
  headers: {
    "Content-Type": "application/json",
    "Authorization": "Bearer DummyTokenForExample"
  }
});

// Returns a `Headers` object containing the response headers.
// Learn more at <https://developer.mozilla.org/docs/Web/API/Headers>
console.log(response.headers);

// Status code of the response as a number, e.g. `200`
console.log(response.status);

// The response body as a string.
console.log(response.data); // e.g. `{"hello":"world"}`

// You can also close the VPN session when you're done.
// Otherwise, it usually expires after 5 minutes.
await vpn.close();

Keywords

FAQs

Last updated on 14 Mar 2024

Did you know?

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Install

Related posts

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc