AWS Client VPN mit Auth0 SAML Authentication

LarsAllgemein, Technik

Neu kann man mit AWS Client VPN die Authentisierung via einem IdP wie zum Beispiel Auth0 durchführen. Der Vorteil dabei ist, dass mit Auth0 einem viele Möglichkeiten für die Authentisierung geboten wird. Zum Beispiel kann man sich mit dem ADFS verbinden und hat somit ein Single Sign On (SSO). Mit ein paar Clicks kann die zwei Faktor Authentisierung mit Google Authenticator, DUO, Mail oder SMS eingeschaltet werden.

Auth0 Konfiguration

Zuerst muss eine Applikation in Auth0 erstellt werden.

Dabei ist wichtig dass bei Allowed Callback URLs die URL http://127.0.0.1:35001 eingegeben wird.

Im nächsten Schritt muss unter Addons das SAML Addon aktiviert werden.

In den Settings muss folgender Json Code konfiguriert werden:

{
    "audience": "urn:amazon:webservices:clientvpn",
    "mappings": {
        "NameID": "http://schemas.xmlsoap.org/ws/2005/05/identity/claims/emailaddress"
    },
    "createUpnClaim": false,
    "passthroughClaimsWithNoMapping": true,
    "mapUnknownClaimsAsIs": false,
    "signResponse": true,
    "mapIdentities": false,
    "nameIdentifierFormat": "urn:oasis:names:tc:SAML:2.0:nameid-format:emailAddress",
    "nameIdentifierProbes": [
        "http://schemas.xmlsoap.org/ws/2005/05/identity/claims/emailaddress"
    ]
}

Nach dem Speichern kann das Auth0 SAML IdP XML auf der Plugin Seite heruntergeladen werden. Diese XML wird im nächsten Schritt benötigt.

Nun muss noch ein User in der lokalen Datenbank bei Auth0 erstellt werden. Wer Single Sign On haben möchte kann dies ebenfalls unter den Connections konfigurieren.

AWS Konfiguration

Für die Konfiguration des VPN Gateways braucht es noch ein paar Vorbereitungen auf der AWS Seite. Neben einem VPC mit Subnetzen braucht es noch ein Zertifikat und die IdP Konfiguration im IAM. Das Zertifikat kann im ACM erstellt werden. Für die SAML Authentisierung muss im IAM einen neuen Provider erstellt werden. Dort muss dann auch das XML von Auth0 hochgeladen werden.

Nun sind wir ready um den VPN Gateway zu erstellen. Dies wird im VPC Service unter Client VPN konfiguriert. Nebst dem Client CIDR und dem Zertifikat muss noch das VPC und gegebenenfalls Split Tunneling konfiguriert werden.

Ist der Gateway erstellt sind noch ein paar Konfigurationen im Gateway nötig.

Die Subnetze müssen assoziiert werden

Die Security Gruppen erstellen und auf dem VPN Gateway konfigurieren

Die Autorisierung einrichten, damit kann man steuern welche IP Adressen Zugriff auf den VPN Gateway haben

Je nachdem wo die Benutzer überall hin verbinden müssen, muss noch das Routing eingerichtet werden.

Client Konfiguration

Nun geht es an die Client Konfiguration, zuerst muss der AWS VPN Client oder ein OpenVPN Client heruntergeladen werden. Den AWS Client findet man hier. Die OpenVPN Konfiguration kann im VPN Gateway bei AWS heruntergeladen werden.


Die Konfiguration/Profil nun im VPN Client importieren und verbinden.

Bei Fragen oder Hilfe bei der Konfiguration könnt ihr euch gerne bei uns melden.