Mit Citrix Gateway bzw. ADC (Netscaler) besteht ab der Version 12 die Möglichkeit für eine Native One-Time-Password (OTP) Integration mit einer Authenticator App (Google, Microsoft usw.) für eine Zweifaktorauthentifizierung. Dabei liefert der Authenticator eine Nummer als zweiten Faktor. Das jeweilige Gerät (Mobiltelefon mit App) muss zuvor für einen Anwender registriert werden. Informationen zum OTP werden im Benutzerkonto des jeweiligen Benutzers gespeichert. Das Management von Benutzern und Geräten ist nicht immer einfach. Eigentlich kann das mit einer GUI nur der Benutzer selber auf dem Citrix Gateway. Daher haben wir ein Tool für ein zentrales Management erstellt.

In diesem Blog findet Ihr die Beschreibung des Tools, das Tool selber und weitere Hintergründe.

 

 

Warum ein zweiter Faktor?

In Umgebungen, auf die remote zugegriffen wird, war es schon immer sinnvoll, den Zugriff durch einen zweiten Faktor abzusichern. Der erste Faktor ist das Kennwort (Wissen) der zweite ein Gerät (Besitz). Nu mit einer Kombination aus beidem sollte auf eine geschützte Unternehmensumgebung zugegriffen werden. Citrix hat es ab der Version 12.1 des Citrix Gateway ermöglicht statt eines Hardwaretokens ein Mobiltelefon zur Generierung des zweiten Faktors (ohne einen zusätzlichen Radius-Server) zu nutzen. Die Vorteile liegen auf der Hand:

 

 

Was ist ein OTP im Gateway und wie wird dieses genutzt?

Die Anmeldeseite am Gateway zeigt sich nach der Einrichtung von Native OTP mit einem weiteren Feld für den Passcode. Hier kann man beispielsweise FreeOTP https://apps.apple.com/de/app/freeotp-authenticator/id872559395 oder auch den Google Authenticator nutzen, um den zweiten Faktor für eine Anmeldung zu generieren. Anmerkung: Die Bilderkennung funktioniert mit dem Google Authenticator erheblich besser. Ein Benutzer kann ein Gerät registrieren, indem er die Webseite des Gateway mit /ManageOtp aufruft. Idealerweise verhindert ein Regelwerk, dass das auch aus dem HomeOffice passieren kann. Ohne ein spezielles Tool (unser Tool) geht es bisher nicht anders.

 

Einrichten des Native OTP auf einem Citrix ADC

Anleitungen gibt es dazu genügend. Gerne können wir hier auch weiterhelfen:-) Ansonsten hier die wichtigsten Informationen zur Einrichtung:

 

Einschränkung: Auch das Gateway in der Version 13.x beherscht die genannten Funktionen. Jedoch werden die Attribute im ActiveDirectory verschlüsselt. Im Prinzip können wir so etwas auch für das Tool umsetzen (vielleicht später). Jedoch ist es möglich, die Verschlüsselung bei Citrix Gateway 13.x wieder zu deaktivieren.

OTP-Edit ein Management Tool für OTP Geräte und Benutzer

Für das, was bisher am OTP gestört hat, haben wir nun ein Managementtool gebaut. Dieses Tool bietet die folgenden Usecases:

 

 

Anleitung / Installation

Als Voraussetzung muss das AD Powershell Modul installiert sein. Auf einem Server kann dann beispielsweise mit dem folgenden Befehl erfolgen:

 Add-WindowsFeature RSAT-AD-Tools -IncludeManagementTools

 Nach dem Start erscheint ein Dialog mit den Standardeinstellungen aus der lokal im Programmverzeichnis liegenden Datei OTPEditConfig.xml. Hier ist es wichtig, zunächst einmal einen LDAP Server anzugeben (die Domäne bzw. Domänencontroller).

 

Wenn ihr ein anderes LDAP Attribut als „Userparameters“ nutzt, ist das auch hier zu konfigurieren. Das macht durchaus Sinn, da in „Userparameters“ auch die Remote Desktop Einstellungen für ein Benutzerkonto gespeichert sein können (wenn genutzt)! Damit das Tool einwandfrei funktioniert, muss des Feld (UserProperties) leer sein oder mit einem oder mehreren OTP Geräte Strings gefüllt werden. Andere Daten führen hier zu Fehlern.

Werte wie SMTP sind, denke ich selbstsprechend und für die Funktion zunächst nicht notwendig.

Nach dem Speichern mit „OK“ wird eine neue Konfigurationsdatei unter %appdata%\AndreasNick\OTPEdit erzeugt. Wenn also mal etwas nicht funktioniert einfach diese Datei löschen.

Nach dem Laden und wenn alles korrekt konfiguriert ist, sehen wir auf der linken Seite Benutzer, denen ein OTP-Gerät zugeordnet ist. Über das Tab „All Users“ werden alle Benutzer der Domäne Aufgelistet. Mit dem Suchfilter „Filter“ kann die Auswahl eingeschränkt werden.

Die Funktion „ExportCSV“ exportiert eine Übersicht aller Benutzer, denen Geräte zugeordnet sind. Mit dem Kontextmenü (rechte Maustaste) kann ein neues Gerät angelegt werden.

 

„Add Device“ zeigt einen Dialog in dem der Gerätename sowie die E-Mail Adresse festgelegt werden, an die der QR-Code verschickt werden soll. Als E-Mail Adresse wird dabei das AD Attribut „Mail“ genutzt. Wenn das nicht gesetzt sein sollte, wird der UserPrincipalName des Benutzerkontos eingetragen.

 

 

Der Gerätename muss eindeutig sein und darf sich nicht für einen Benutzer wieder holen. Mit „Save“ kann der QU-Code als PNG gespeichert werden. „Send“ hingegen erledigt mehrere Dinge. Zunächst wird das Gerät im Active Directory Attribut eingetragen. Dazu erscheint in dieser Version immer ein Dialog mit dem PowerShell-Befehl der zum Ändern des Attributes ausgeführt werden muss.

Erst nach einem erfolgreichen Eintrag im AD Objekt des Benutzers kommt die Frage nach dem E-Mail Versand.

Für den Versand werden die Daten aus der Konfigurationsdatei genutzt. Wenn die GUI hier einfrieren sollte oder es etwas länger dauert, dann stimmen die Daten nicht. Bitte zwei Minuten abwarte. Nach dieser Zeit kommt eine Fehlermeldung.

 

So eine E-Mail schaut wie folgt aus:

Weitere Funktionen wie „Remove Device“ und „View Device“ verhalten sich ähnlich. In jedem Fall wird vor einer Aktion nachgefragt. Mit ViewDevice kann im nachhinein eine QR-Code E-Mail erneut verschickt werden.

E-Mail Versand

Gerade bei E-Mail versand und bei der Formatierung der E-Mails kann nicht immer alles berücksichtigt werden. Daher habe ich diesen Teil gleich in ein kleines PowerSehll Skript ausgelagert. Ihr könnt dieses im Programmverzeichnis beliebig anpassen oder auch eine andere Methode zum Versand der Nachrichten nutzen.

Function Send-QRCodeEMail 
{
  <#
      .SYNOPSIS
       A simple function to send notifications with a QRCode
  #>

  [CmdletBinding()]
  param
  (
    
    [Parameter(Mandatory=$true)] [String] $SMPTServer,
    [Parameter(Mandatory=$true)] [int] $SMTPPort,
    [bool] $SMTPUseSSL = $True,
    [String] $SMTPMailuser,
    [String] $SMTPMailPassword,
    [String] $From = "",
    [Parameter(Mandatory=$true)] [String] $To,
    [String] $Subject = "QRCode Mail",
    [String] $UserName = "Rudi",
    [Parameter(Mandatory=$true)] [Byte[]] $QRCode
    

  )
  $ImageBase64 = [Convert]::ToBase64String($QRCode)
  $secure_pwd = $SMTPMailPassword  | ConvertTo-SecureString -AsPlainText -Force
  $creds = New-Object System.Management.Automation.PSCredential -ArgumentList   $SMTPMailuser, $secure_pwd

  #
  # Als als html Mail
  #
  [String] $htmlDoc = $null
  #Bachground

  $htmlDoc += '<style>'
  $htmlDoc += 'body {background-color:#d2E0EF;}'
  $htmlDoc += 'h1   {color: blue;}'
  $htmlDoc += 'strong    {color:blue;}'
  $htmlDoc += '* {font-family: Consolas;}'
  $htmlDoc += '</style>'
  $htmlDoc += '</head>'
  $htmlDoc += '<body>'
  #Headline
  $htmlDoc += '<h1>OTP QR Code for: ' + $UserName + '</h1>'
  $htmlDoc += '<h2>Please scan the code with an Authenticator (Microsoft, Google etc.)</h2>'
  $htmlDoc += '<img src="/images/easyblog_articles/123/30d844c0f3cf8c64afb9060ec1f64e44.png" />'
  $htmlDoc += '</body>'

  Send-MailMessage -From $From  -To $To -Subject  $Subject -SmtpServer  $SMPTServer -Port  $SMTPPort -Credential $creds `
                   -Body $htmlDoc -UseSsl:$SMTPUseSSL  -Encoding UTF8 -BodyAsHtml -ErrorAction Stop

}

 

Download

Das Tool ist vollständig in PowerShell programmiert und mit Hilfe der ISE-Seroids (http://powertheshell.com) erstellt. Die Anwendung ist digital signiert und in eine Exe gerwappt. U.a. ist hier eine neue Basis für Citrix und AD ManagementTools entstanden.

Wichtig: wir/ich übernehmen keinerlei Haftung für Schäden, die durch die Nutzung des Tools entstehen. In der aktuellen Version wird jede Aktion noch einmal abgefragt, bevor diese ausgeführt wird. Den gleichen Hinweis gibt es auch noch einmal vor dem Download!

Version 1.0

* Kleinere Bugs beseitigt
* Neustrukturierung der Software und Aufteilung in Module
* Mehr Informationen in den benachrichtigungs E-Mails

Downloads:

zipOTPEdit Beliebt

The OTPEdit tool allows to manage entries for a One Time Password in AD

 

Information
Erstelldatum 10.03.2020 12:56:29
Änderungsdatum 14.05.2020 16:35:00
Version 1.0.2
Dateigröße 126.8 KB
Erstellt von Andreas Nick
Geändert von Andreas Nick
Downloads 1.389
Lizenz Nick Informationstechnik Tool LicenceTooltip
Preis