OpenVPN® with SAML Authentication

1. Overview

There are two methods to authenticate a VPN client against Okta: Okta API Token or Aviatrix SAML client.

This document shows you how to setup VPN authentication using Aviatrix SAML client.

Aviatrix user VPN is the only OpenVPN® based remote VPN solution that provides a VPN client with SAML authentication capability.

This step-by-step guide shows you how to use Aviatrix SAML client to authenticate an IDP. When SAML client is used, Aviatrix controller acts as the service provider (SP) that redirects browser traffic from client to the IDP for authentication.

For different IDP’s, there will be links to each individual IDP integration.

2. Pre-Deployment Checklist

Before configuring the SAML integration between Aviatrix and your IDP, make sure the following is completed:

  1. Aviatrix Controller is setup and running
  2. Have a valid IDP account with admin access
  3. Download and install the Aviatrix SAML client

2.1 Aviatrix Controller

If you haven’t already deployed the Aviatrix controller, follow these instructions to deploy the Aviatrix controller.

2.2 IDP Account

An IDP refers to an identity provider for SAML. This could be any provider that supports a SAML end point like Okta, OneLogin, Google, AWS SSO, and Azure AD. You will require administrator access to create IDP endpoints for SAML. Check IDP-specific SAML Integration to see a list of guides for supported IDP’s

2.3 Aviatrix VPN Client

All users must use the Aviatrix VPN client to connect to the system. Download the client for your OS here.

3. Configuration

The configuration consists of 8 parts:

  1. Create temporary Aviatrix SP Endpoint for Aviatrix
  2. Create SAML IDP App with specific IDP
  3. Retrieve IDP Metadata from IDP
  4. Update Aviatrix SP Endpoint with IDP metadata
  5. Test SAML Integration <#config-35>`__
  6. Launch Aviatrix Gateway
  7. Create Aviatrix VPN user(s)
  8. Test VPN Connectivity

3.1 Create temporary Aviatrix SP Endpoint

Note

This step is usually completed by the Aviatrix admin. This endpoint will be updated later on in the guide, at this step, we will be using placeholder values. Choose an endpoint name for your Aviatrix SAML endpoint which will be used throughout the guide. This guide will use aviatrix_saml_controller as an example for the endpoint name.

  1. Login to the Aviatrix Controller

  2. Click Settings in the left navigation menu

  3. Select Controller

  4. Click on the SAML Login tab

  5. Click + Add New button

    image3-1-1

    image3-1-2

Note

Each endpoint only supports one type of access. If you need admin and read-only access, create two separate SAML apps.

  1. Click OK
  2. Depending on your IDP provider, you may need to upload SP metadata. After temporary SAML endpoint is created:
  • Right click SP Metadata button next to the SAML endpoint and save file to your local machine.
  • Click SP Metadata button, and copy the SP metadata as text

3.2 Create a SAML App for Aviatrix with the IDP

Note

This step is usually done by the IDP administrator. This sections shows only generalized process for creating a SAML application. Refer to the IDP-specific SAML App Integration section for links to detailed steps with each particular IDP.

Create a SAML 2.0 app with the IdP Provider with the following values.

  1. Assertion Consumer Service URL*
  2. Audience URI(Entity ID)*
  3. SP Metadata URL
  4. SP Login URL
  5. Default RelayState* = <empty>
  6. Application username = IDP username

Important

You can find these values in the controller under the Settings navigation item. Then, select Controller and go to the SAML Login tab. Click on the button for the respective value, and copy the URL on the new page. RelayState is currently not used by the Aviatrix SP

image3-2

The following SAML attributes are expected:

  1. FirstName
  2. LastName
  3. Email (unique identifier for SAML)

Note

These values are case sensitive

IDP-specific SAML App Integration

Note

You will require administrator access to create IDP endpoints for SAML.

These are guides with specific IDP’s that were tested to work with Aviatrix SAML integration:

  1. AWS SSO
  2. Azure AD
  3. Centrify
  4. Google
  5. Okta
  6. OneLogin

Other tested IDP’s include: Ping Identity, VmWare VIDM, ForgeRock’s OpenAM etc.

3.3 Retrieve IDP metadata

After creating the IDP, you need to retrieve IDP Metadata either in URL or text from the IDP application created in the previous step.

  1. AWS SSO - provides IDP metadata URL, needs a custom SAML request template, and will need to provide SP metadata file from Aviatrix
  2. Azure AD - provides IDP metadata URL and needs a custom SAML request template
  3. Centrify - provides IDP metadata URL and will need to provide SP metadata text from Aviatrix
  4. Google - provides IDP metadata text
  5. Okta - provides IDP metadata text
  6. OneLogin - provides IDP metadata URL

3.4 Update Aviatrix SP Endpoint

Note

This step is usually completed by the Aviatrix admin. Take note of the IDP Metadata type along with Text/URL your IDP provides, and if you need a custom SAML request template in the previous section

  1. Login to the Aviatrix Controller
  2. Expand OpenVPN® in the navigation menu and click Advanced
  3. Stay on the SAML tab and click + Add New

Note

Hostname is the default for Entity ID, but if you have other apps using the same hostname, use a custom Entity ID.

3.5 Test the Integration

Note

Have an instance of the VPN client running. If you do not, it might throw a warning

  1. Login to the Aviatrix Controller
  2. Expand OpenVPN® in the navigation menu and click Advanced
  3. Stay on the SAML tab
  4. Select the row that was created in the previous step (that includes your endpoint name)
  5. Click on the Test action
  6. You should be redirected to the IDP, now you can log in and should be redirected back to the controller

3.6 Launch Aviatrix Gateway

Note

This step is usually completed by the Aviatrix admin.

  1. Login to the Aviatrix controller

  2. Click Gateway in the navigation menu

  3. Click + New Gateway

  4. Select the appropriate values for where to provision this Gateway

  5. Check VPN Access and then Enable SAML

    image3-6

  6. Leave the default settings for everything else

  7. Click OK to launch the gateway

3.7 Create VPN user(s)

Field Description
VPC ID Select the VPC/VNet where the Gateway was created
LB/Gateway Name Select the appropriate load balancer or gateway
User Name Name of the VPN user
User Email Any valid email address (this is where the cert file will be sent). Alternatively you can download the cert if you don’t enter email
SAML Endpoint Select the SAML endpoint

Note

SAML supports shared certificates. You can share the certificate among VPN users or create more VPN users.

3.8 Test VPN Connectivity

Download and install the Aviatrix VPN client for your platform from here Launch the Aviatrix client and load the certificate (“Load config”)that you downloaded/received from email on step 3.5 Click on “Connect”. This should launch the browser instance and prompt you for authentication, if not already logged in. If the connection is successful, the client icon should turn green. You can ensure VPN connectivity by trying to ping the private IP of the gateway you launched or any other instance in the same cloud network

OpenVPN is a registered trademark of OpenVPN Inc.