Tech Preview: Citrix App Delivery and Security Service mit AWS

Citrix hat bereits im September angekündigt einen App Delivery Service zu implementieren, auf dem Field Kickoff wurde der Service gleich an prominenter Stelle (in der Keynote) mehrmals erwähnt, es ist also vielleicht an der Zeit sich den Service einmal anzusehen. Seit dem Field Kickoff besteht die Möglichkeit sich über den Citrix Cloud Service Zugang (cloud.com) für ein Tech Preview freischalten zu lassen. Momentan kann der Service nur Amazon Web Services (AWS) Datenströme verarbeiten, somit wird derzeit zwingend ein AWS Konto zur Verknüpfung benötigt, später soll der Service aber auch MS Azure Datenströme bereitstellen können.

Neue Kachel im Citrix Cloud Service (bereits freigeschalteter Preview läuft hier noch 52 Tage)

Citrix hängt die Latte für den App Delivery and Security Service (ADS) ganz schön hoch, er soll Intent-based sein, Always Learning, Always Adapting und Always Protecting (vergl. Introducing intent-based Citrix App Delivery and Security Service | Citrix Blogs).

Die „Intent based“ Konfiguration stellt eine Art Wizard dar, der die Konfiguration stark vereinfacht ermöglicht. Des weiteren soll der Service kontinuierlich den Netzwerkstatus des Internets monitoren und lernen und so eine End-to-End Experience Map erstellen können. Über die Netzwerkmessungen wird erstmals ein „internet-state aware GSLB“ implementiert schreibt Citrix (vergl. Whitepaper Citrix App Delivery and Security Service, A paradigm shift for IT modernization, Seite 9). Der Service soll weiter fehlerhafte Applikationsserver aus dem Load Balancing entfernen können und durch den Rollout weiterer ADC Ressourcen im Hintergrund in die breite Skalieren können. In der Intent based Konfiguration lassen sich an vielen Stellen wenig Details konfigurieren bzw. es sind nicht alle ADC Funktionen direkt nutzbar, andere wiederum werden im Hintergrund automatisch konfiguriert wie z.B. die SSL Settings, welche vom Service optimiert werden. Die WAF kann momentan manuell eingeschaltet und konfiguriert werden.

Nach der Freischaltung des Services wird dieser mit AWS verknüpft und ermöglicht dann eine Konfiguration, welche auf Knopfdruck in das AWS und die ADS Elemente ausgerollt (deployed) wird. Es wird im Startbildschirm nach Application oder Multi-Site Application unterschieden, welches die Unterscheidung zwischen Loadbalancer/ Content Switching Geschäft und DNS basiertem GSLB (bzw. etwas vergleichbarem) darstellt.

Startbildschirm des Services

Als ich mit meinen Tests begann, lies der Menüpunkt „Deliver an Application“ (welcher die Intent based Konfiguration startet) noch zu auf einen Classic Modus umzuschalten, welcher alternativ ADC-like zu bedienen war. Allerdings mussten die Objekte hier ohne Erklärung manuell erzeugt werden und über die Eintragung in Freitextfelder verknüpft werden. Diese noch nicht ganz fertige Funktion wurde im Laufe meiner Tests ausgeblendet. Auch gab es am Anfang die Möglichkeit eine ADC Konfiguration zu laden, dort einzelne Virtual Server auszuwählen, zu extrahieren und übernehmen zu können. Diese Funktion war aber nur in der Lage einfache Konfigurationen übernehmen zu können, bei komplexeren Konfigurationen gab es Fehler beim Parsing. Die im Folgenden zu sehenden Screenshots stammen daher von der Intent based „Modern“ Konfigurationsmöglichkeit.

Erstellen Cloud Access Profile

Zuerst muss die Anbindung der Citrix Cloud Services an die AWS-Plattform erfolgen, dies geschieht über ein Cloud Acsess Profile. Dafür muss ein Skript im AWS ausgeführt werden, welches einen Cloud Formation Stack erzeugt und auch die entsprechenden Berechtigungen im AWS setzt.

Screenshot von der Validation bzw. Update des Stacks / JSON Vorlage

Der obige Screenshot ist von der Validation eines Cloud Formation Stacks, bei der Erstausführung ist ganz unten noch ein Feld eingeblendet, in das der durch AWS zurückgegebene RoleARN eingetragen werden muss. In diesem Dialog muss der obige JSON Code kopiert werden oder die Datei über den Link „Download“ heruntergeladen werden.

Cloud Formation Startbildschirm
Erstellen des Stacks über eine Vorlagendatei (die zuvor gespeicherte JSON Datei)
Übersicht der Stacks

Der gerade erstellte Stack muss geöffnet werden um den RoleARN anzuzeigen, welcher in den Citrix Dialog eingefügt werden muss.

Job Ausgabe / RoleARN

Der oben genannte RoleARN aus der Job Ausgabe wird kopiert und in die Citrix Console eingefügt. Danach kann das Cloud Environment erzeugt werden.

Erzeugen Cloud Environment

Ein Cloud Environment ist ein Bereich in den der Citrix Service Deployed werden kann. In ihm sind die Region, Availability Zones und die zu benutzende Virtual Private Cloud definiert.

Cloud Environment erzeugen/ updaten

Danach kann das Deployment des Environments erfolgen. Mit dem „View More Details“ Schalter in der Mitte wird die Ausgabe detaillierter und lässt erahnen, was Citrix mit der Role im AWS erzeugt.

Erzeugte Objekte im AWS / Citrix geht „Xlarge“ einkaufen

Es werden pro Availability Zone zwei m5.xlarge Instances erzeugt
Dazu kommen noch NAT Gateways und Elastic IPs

Achtung: In unserer Testumgebung haben die von Citrix erzeugten Objekte mindestens 6$ pro Tag gekostet (realistisch für 24 Stunden eher 16$) und im ausgeschalteten Zustand noch etwa 3$, da die NAT Gateways pro Stunde abgerechnet werden (vergl. Logisch isolierte virtuelle private Cloud – Amazon VPC Preise – Amazon Web Services)!

AWS Cost Explorer

Einrichten einer Testapplikation (LAMP)

Als Backend für die Testapplikation wurde eine Linux Maschine mit LAMP Stack ausgerollt als t3.micro Instanz (diese sind im kostenlosen Kontingent enthalten; vergl. Limits des kostenlosen Kontingents für AWS – AWS-Fakturierung (amazon.com)).

Testlamp Application 1
Testlamp Application 2
Testlamp Application 3
Testlamp Application 4

Die Möglichkeiten in der Intent based Konfiguration liegen weit hinter dem was der darunterliegende ADC kann.

Testlamp Application 5 / Beispiel Responder

Auch beim Responder kann derzeit nur ein Subset genutzt werden von dem, was der ADC eigentlich ermöglicht. Mangels der Möglichkeit mit einer Webseite zu antworten, haben wir im Test einen Error zurückgegeben.

Testlamp Application 6 / Leere WAF Konfiguration

Testlamp Application 7 / Laufende Applikation
Ansicht der Analytics

Unterstützte Features

FeatureCitrix App Delivery and Security service AdvancedCitrix App Delivery and Security service premium
SSL/Load balancing/content switchingYesYes
Content rulesYesYes
AuthenticationYesYes
GSLBYesYes
Caching and compressionYesYes
AnalyticsYesYes
Lifecycle managementYesYes
ITM based GSLBYesYes
Security (WAF, BOT management)NoYes
ICA ProxyNoNo
Gateway SSL VPNNoNo
Tabelle der derzeit unterstützten Features lt. Hersteller
Usage/ Abrechnung

Abrechnung / Entitlements

Der obige Screen zeigt die Möglichkeit die Trafficnutzung nach Art der genutzten Bandbreite (Premium Bandbreite = Premium Features wie z.B. WAF) anzeigen zu können. Im SaaS Model wird Bandbreite von zuvor abgeschlossenen Entitlements genutzt werden.

Entitlement typeDeployment type
Standalone entitlementsCitrix App Delivery and Security Service – Citrix Managed
Trial entitlementsCitrix App Delivery and Security Service – Citrix Managed
Pooled SaaS Bundle entitlementsCitrix App Delivery and Security Service – Citrix Managed
Entitlements

Edition typeEntitled to
Advanced300 TB bandwidth + 25 million DNS queries
Advanced1200 TB bandwidth + 100 million DNS queries
Advanced4800 TB bandwidth + 500 million DNS queries
Advanced2000 TB bandwidth + 2 billion DNS queries
Premium300 TB bandwidth + 25 million DNS queries
Premium1200 TB bandwidth + 100 million DNS queries.
Premium4800 TB bandwidth + 500 million DNS queries
Premium2000 TB bandwidth + 2 billion DNS queries
Entitlements / Pakete

Es wird voraussichtlich auch zusätzliche DNS Pakete geben.

Quelle und mehr Informationen: Entitlements | Citrix App Delivery and Security service

Fazit

Der Service bietet einen interessanten Ansatz, da die darunterliegende Infrastruktur von Citrix betrieben und somit auch geupdatet wird. Momentan ist das Feature Set noch recht klein, wenn dieses aber für die Intent Based Konfiguration erweitert wird und die weiteren Möglichkeiten wie die Classic Konfiguration oder der Import von „ns.conf“ Kommandos wieder dazukommen (aktuell nicht oder zumindest nicht mehr in meinem Tech Preview), könnte sich eine interessante Alternative zum Aufbau kompletter Instanzen im AWS oder Azure ergeben.

Zu den Möglichkeiten des Einsatzes eines Citrix ADC in einer Cloud Umgebung sprechen sie uns gerne an, wir zeigen ihnen die unterschiedlichen technischen Möglichkeiten der Realisierung und erklären ihnen die Unterschiede in der kaufmännischen Abbildung mit dem neuen Citrix ADS Service, ihren vorhanden Lizenzen, den Subscriptions wie Pooled Licensing oder auch unserem eigenen sehr flexiblem ADCaaS Produkt.

Links ADS Service:

Introducing intent-based Citrix App Delivery and Security Service | Citrix Blogs

App Delivery and Security Service – Citrix Germany

Citrix App Delivery and Security Service, A paradigm shift for IT modernization

Entitlements | Citrix App Delivery and Security service

Links zu AWS:

Limits des kostenlosen Kontingents für AWS – AWS-Fakturierung (amazon.com)

Logisch isolierte virtuelle private Cloud – Amazon VPC Preise – Amazon Web Services

Teil 3: VerSAMLung – SSO mit SAML und FAS für Citrix CVAD

(von Benjamin Rodewald und Denis Junger)

Nachdem wir uns in Teil 1 und Teil 2 der Serie „VerSAMLung“ mit Webapplikationen beschäftigt haben, betrachten wir in Teil 3 die Anbindung von Citrix Virtual Apps and Desktops (CVAD) mit Azure Active Directory Anmeldung. Da auch hier kein Kennwort vorliegt, welches für ein Single Sign on genutzt werden könnte und der Storefrontserver kein KCD unterstützt, kommt eine weitere Citrix Komponente „Citrix Federated Authentication Service“ (FAS), welche eine virtuelle Smartcard Anmeldung am Citrix Desktop ermöglicht zum Einsatz.

Dies ermöglicht dem User ein einmaliges Anmelden an seinem Azure AD integriertem Notebook und danach ohne weitere Passworteingabe direkt auf Citrix CVAD zuzugreifen.

Vorbereitenden Maßnahmen

Installation Citrix FAS, vollständige Anleitung unter: Install and configure | Federated Authentication Service 2112 (citrix.com)

Federation Service

Editieren der Default Rule auf dem Citrix FAS
Storefront Server Berechtigungen
Dieses Bild hat ein leeres Alt-Attribut. Der Dateiname ist image.png
VDA Berechtigungen (in dieser kleinen Testumgebung haben wir keine spezielle Ausnahme gemacht)
Benutzer Berechtigungen (Auch hier dürfen alle Benutzer die Regel nutzen) 

FAS integration für den Storefront Store aktivieren (Per Powershell auf dem Storefrontserver ausführen, dabei Storenamen anpassen): 

Get-Module "Citrix.StoreFront.*" -ListAvailable | Import-Module
$StoreVirtualPath = "/Citrix/Store"
$store = Get-STFStoreService -VirtualPath $StoreVirtualPath 
$auth = Get-STFAuthenticationService -StoreService $store 
Set-STFClaimsFactoryNames -AuthenticationService $auth -ClaimsFactoryName "FASClaimsFactory" 
Set-STFStoreLaunchOptions -StoreService $store -VdaLogonDataProvider "FASLogonDataProvider" 

Powershell Kommandozeile

Storefront Konfiguration

Als nächstes muss nun überprüft werden ob die entsprechenden Authentication Methods aktiviert sind. Hierbei ist darauf zu achten, dass unter „Pass-through from Citrix Gateway“ der Haken unter „Configure Delegated Authentication“ gesetzt ist:

Authentication Methods
Das Setzen des Hakens veranlasst den Storefront komplett dem Gateway zu vertrauen für die Anmeldedaten. Hierfür ist dann allerdings ein sog. Callback erforderlich, den wir im nächsten Schritt konfigurieren.
Es sollte später geprüft werden, ob die Callback URL eingetragen und auch von den Storefrontservern erreichbar ist.
Wichtig: das Gateway/ Callback -RL Zertifikat muss dabei vom Storefront als Vertrauenswürdig betrachtet werden, sonst funktioniert der Callback nicht.

Einrichtung Gateway Virtual Server auf dem ADC

Als nächstes muss man das Citrix Gateway konfigurieren. Wenn noch kein Gateway existiert kann mit dem Wizard eins mit Standard Settings erstellt werden:

Erstellen des Citrix Gateway via Wizard

Name, VIP, FQDN und Port festlegen

Zertifikat anbinden

zu Testzwecken haben wir ein selbst signiertes Zertifikat genommen (welches wir auch auf dem Storefront als vertrauenswürdig hinzugefügt haben)

Als Primäre Authentication haben wir Radius genommen (entfernen wir später wieder), andernfalls läuft der Wizard nicht weiter. Dann wählen wir das Portaltheme aus.

Die Anbindung von CVAD erfolgt im Abschnitt „Applications“. Auf Add Applications klicken um die Applikationen hinzuzufügen.

in unserem Fall wählen wir XenApp & XenDesktop (der neue Name scheint im Wizard noch nicht angekommen) und wählen als Integrationspunkt den Storefront aus.

Storefront URL und STA Adresse hinzufügen

Mit Done wird der Wizard geschlossen und das Gateway ist gebaut.

Einrichtung Enterprise Application im Microsoft Azure Portal

Auch hier benötigen wir wieder eine Enterprise Applikation in Azure AD wie in Teil 1 schon beschrieben.

Gateway/ SAML SP Konfiguration auf dem ADC

Nun entfernen wir die Dummy Radius Policy, die wir mit dem Wizard erstellt haben.
Statt der Radius Policy legen wir jetzt einen AAA Virtual Server an, an den wir die SAML Policies binden und den wir später selber in Netscaler N-Factor Manier per Authentication Profile an das Gateway binden.
add authentication vserver aaamwdemo SSL 0.0.0.0

Zertifikat an den AAA Virtual Server binden (tritt hier nicht äußerlich in Erscheinung, muss aber vorhanden sein).
bind ssl vserver aaamwdemo -certkeyName mwdemo.cer
Zuerst legen wir ein SAML SP Server Objekt an.

Die „Redirect“ und die „Single Logout Url“ sind bei unserem Beispiel (Microsoft Azure AD) gleich und können den Settings der Enterprise Application im Azure entnommen werden („Reply URL“ und „Single Sign On Url“).

Dort laden wir uns ebenfalls das „SAML Signing“ als „Certificate (Base64)“ herunter und fügen es auf dem ADC als „IDP Certificate“ über den Knopf „Add“ hinzu (siehe nächster Screenshot).

Das EA Feld „Identifier“ im Azure und das Feld „Issuer“ auf dem ADC müssen den gleichen Text String enthalten, wir haben die URL/den FQDN des SAML-SP verwendet.

Nach Citrix Best Practices muss zur Absicherung eine Relaystate Regel konfiguriert werden (vergl. Citrix Application Delivery Controller and Citrix Gateway – SAML Configuration Reference Guide):
https://support.citrix.com/article/CTX316577

Relaystate Rule
add authentication samlAction AzureSSOHapp-Citrix-ADC-CVAD -samlIdPCertName Citrix-ADC-CVAD -samlRedirectUrl "https://login.microsoftonline.com/ddff6db-154e-4e33-bf57-17317fdfdfd/saml2" -samlIssuerName "https://mwdemo.michael-wessel.de" -relaystateRule "AAA.LOGIN.RELAYSTATE.EQ(\"https://mwdemo.michael-wessel.de\")" -logoutURL "https://login.microsoftonline.com/17db-154e-4e3d-b8f-f9eb1e8d/saml2"

Hinzufügen des SAML-IDP Zertifikats.
add ssl certKey Citrix-ADC-CVAD -cert "Citrix ADC CVAD.cer"
Das SAML SP Server Objekt verdrahten wir in einer neu angelegten SAML SP Policy die wir an den zuvor erstellten AAA Virtual Server binden.
add authentication Policy pol_AzureSSOHapp-Citrix-ADC-CVAD -rule true -action AzureSSOHapp-Citrix-ADC-CVAD

Binden an den AAA
bind authentication vserver aaamwdemo -policy pol_AzureSSOHapp-Citrix-ADC-CVAD -priority 100 -gotoPriorityExpression NEXT
Im nächsten Schritt legen wir ein Authentication Profile an, welches die AAA Settings zusammenfasst und die Bindung an das Gateway ermöglicht.
Im Profil wird der AAA Virtual Server verknüpft.
Die Domain kann leer gelassen werden oder wenn der Cookie von verschiedenen Virtual Servern genutzt werden soll, die übergeordnete Domain angegeben werden.
add authentication authnProfile auth_prof_aaamwdemo_Citrix_ADC_CVAD -authnVsName aaamwdemo

Über den Punkt „Authentication Profile“ wird das Profil an den Gateway Virtual Server gebunden.
Hinweis: Das Objekt sollte danach nicht mehr mit dem Wizard bearbeitet werden.

Dem aufmerksamen Betrachter sind vielleicht die SSL Settings des Gateways aufgefallen. Diese sind so vom Wizard erzeugt worden und nur für eine Testumgebung einzusetzen. Für den produktiven Einsatz wären diese anzupassen (z.B. SSL abschalten, Perfect Forward Secrecy implementieren, aktuelles Cipherset erstellen).

Test der fertigen Konfiguration

Wenn man sich nun von einem nicht Azure AD integrierten Gerät anmelden würde, erschiene je nach Azure Conditional Access Konfiguration ggf. einfach die Azure Anmeldeseite und/oder die Tokenabfrage auf dem Mobiltelefon und danach die Storefront oder RFWEBUI Oberfläche, von der aus man die Applikationen starten kann.

Wenn sich der User an einem Azure AD integrierten Gerät anmeldet, ist er danach direkt am Azure AD angemeldet. Greift er dann auf den ADC zu , wird er dort über die Vertrauensbeziehung zwischen ADC als SAML SP und Azure AD als SAML IDP direkt angemeldet und kann die Applikationen starten.

Wie im Folgenden Video zu sehen ist nur die Anmeldung am Notebook/ Desktop erforderlich, alles weitere erfolgt über Single Sign On:

SSO mit Azure AD Anmeldung

SASE, Secure Access Service Edge – Definition, Vorteile und Anwendungsfall

Was ist SASE?

SASE, Secure Access Service Edge, wurde erstmals Ende 2019 als Schlagwort im Gartner Bericht „Die Zukunft der Netzwerksicherheit liegt in der Cloud“ erwähnt. Seitdem verschaffte sich der Begriff im Netzwerkbereich einen schnellen Auftrieb, heute kommt man an SASE kaum noch vorbei. Kurz gesagt ist SASE ein Sicherheitskonzept, das standortunabhängig eine nahtlose und sichere Verbindung mit Anwendungen in jeder Umgebung ermöglicht und gleichzeitig die Netzwerk- und Sicherheitsfunktionen für die IT optimiert. 

Das SASE-Modell vereint SD-WAN- und Netzwerksicherheitsfunktionen in einer Single-Pass-Architektur, die über eine zentrale Managementebene für Networking und Cybersicherheit verwaltet wird. Gartner hat hierbei die Funktionen der Architektur in Hauptfunktionen und empfohlene Funktionen unterteilt: 

  • Hauptfunktionen 
    SD-WAN, Secure Web Gateway, Cloud Access Security Broker, Zero-Trust-Netzwerkzugriff, Firewall as a Service, Schutz vor Datenverlust, Maßstabsgerechte Ver- und Entschlüsselung in Leitungsgeschwindigkeit 
  • Empfohlene Funktionen 
    Schutz von Web-Anwendungen und APIs, Remote-Browser-Isolierung, Netzwerk-Sandboxen, Support für verwaltete und nicht verwaltete Geräte 

Vorteile mit SASE

  • Verbesserung der IT-Agilität 
  • Schneller, sicherer Zugriff auf Cloud-Anwendungen, unabhängig vom Standort 
  • Steigerung des Benutzerkomfort durch Beseitigung von Latenz, da Traffic nicht mehr durch das Rechenzentrum geleitet werden muss 
  • Steigerung der IT-Flexibilität, da Netzwerk- und Sicherheitslösungen verschiedener Anbieter konsolidiert werden, dies fördert die bessere Integrationsmöglichkeiten sowie ein zentrales Management, was wiederum Implementierung, Konfiguration, Berichterstellung und Support-Services vereinfacht 
  • Verbesserung der Elastizität und Skalierbarkeit der Architektur, da durch die Migration der Sicherheitsfunktionen in die Cloud insgesamt weniger Hardware erforderlich ist 
  • Steigerung der Sicherheit, da durch Anwendung des Zero-Trust-Modells mit Identitätserkennung die Angriffsfläche verringert und die Verbreitung von Malware innerhalb des Unternehmensnetzwerks vorgebeugt wird 

Herausforderungen bei der Einführung von SASE 

  • Beseitigung unzureichende Zusammenarbeit und mangelndes Vertrauen zwischen Netzwerk- und Sicherheitsteams  
  • Vorantreiben des erforderlichen organisatorischen Wandels 
  • Regelung von Verantwortlichkeiten 
  • Auswahl des richtigen Anbieters 

Zero-Trust Network Access als Bestandteil von SASE bereits im Einsatz 

Gemeinsam mit unserem Partner Sophos können wir bereits heute einen wichtigen Bestandteil von SASE mit Zero-Trust Network Access (ZTNA) realisieren. 

Hierbei handelt es sich um eine intelligente Weiterentwicklung des klassischen Client-VPNs zum externen Zugriff auf interne Ressourcen unter dem Vorsatz von „Zero Trust“ – also vertraue niemandem. 

Zunächst steht die Verifizierung des Benutzers im Vordergrund, idealerweise gepaart mit einer Multi-Faktor-Authentifizierung, um mögliche Szenarien rund um kompromittierte Login-Daten direkt im Kern zu ersticken. Im Anschluss daran wird das zugreifende Device auf Compliance kontrolliert und im Anschluss daran über einen Cloud-Connector mit SingleSignOn-Features nur genau die Ressource zur Verfügung gestellt, für die der User berechtigt ist und die er überhaupt angefragt hat. Das funktioniert durch granulare, cloud-verfügbare Richtlinien. Die Benutzererfahrung ist dabei simpel und fehler-unanfällig. 

Vorteile von ZTNA gegenüber klassischem Client-VPN: 

Granulare Kontrolle
ZTNA ermöglicht eine granularere Kontrolle darüber, wer auf Applikationen und Daten aus dem internen Netzwerk zugreifen kann und stellt auch nur genau diese Applikationen und Zugriffe bereit. Klassisches Client-VPN ist hingegen eher „alles-oder-nichts“ – Einmal im Netzwerk kann grundsätzlich mehr erreicht werden, als eigentlich möglich ist und eine Kontrolle darüber ist nach erfolgreicher Verbindung nahezu unmöglich. 

Bessere Sicherheit
ZTNA vertraut nicht anhand statischer Richtlinien, sondern bezieht nebst der Benutzer-Authentifizierung auch den Geräte-Status und dessen Compliance in die Auswahl der anschließenden Zugriffsberechtigungen mit ein. 

Einfach erweiterbar
ZTNA ist spürbar einfacher in der Erweiterung oder zur Bereitstellung neuer Mitarbeiter – besonders wenn diese von Beginn an exklusiv remote arbeiten und dennoch Zugriff auf interne Ressourcen benötigen. 

Tranparent für den Benutzer
ZTNA folgt dem „It just works“-Konzept und erspart daher dem Benutzer komplexeres Verständnis eines Client-VPNs und Verbindungsstatus. Für den Benutzer ist es ein transparentes Benutzererlebnis ohne spürbare Erkenntnis, dass es sich teilweise um Remote-Ressourcen handelt. 

Wie kann es weitergehen?

Sie haben weitere Fragen oder Anregungen zu diesem Thema und sich auf der Suche nach einem aktiven Austausch?
Unsere Experten stehen Ihnen gerne zur Verfügung.

Teil 2: VerSAMLung – SSO mit SAML oder KCD für interne Webservices

(von Stefan Kuscher und Benjamin Rodewald)

Im ersten Teil unserer Serie „verSAMLung“ haben wir den Citrix Application Delivery Controller (ADC) als SP an die MS Azure MFA Authentifizierung (als IdP) angebunden und so die bequeme und transparente Nutzung von Applikationen auf dem Citrix ADC möglich gemacht, welche mit einer Pre-Authentifizierung geschützt sind.

Bisher muss man sich nach der Anmeldung am Azure (welche der ADC nutzt) noch immer an der eigentlichen Applikation anmelden, aber auch dafür gibt es eine Lösung. Der ADC bietet die Möglichkeit Anmeldedaten zu extrahieren und die diese auch für den Single Sign On im Backend zu benutzen. Im einfachsten Fall, könnte die dem ADC bekannte Username/ Kennwort Kombination z.B. für eine 401 Header Based Authentication genutzt werden, hierfür wäre lediglich eine Traffic Policy, welche Web Single Sign On anschaltet, notwendig.

In Verbindung z.B. mit SAML oder Certificate based Authentication ist das Vorgehen ein klein wenig komplizierter, da auf dem ADC keine Anmeldedaten vorliegen (was dem Sicherheitsniveau natürlich sehr zuträglich ist). Hier muss ein Verfahren genutzt werden, welches alleine mit den im SAML Token vorhandenen oder im Zertifikat vorhandenen Informationen auskommt. Neben der Möglichkeit hier im Backend ebenfalls SAML für den SSO zu benutzen, gibt es die Möglichkeit Kerberos Constrained Delegation (KCD) zu nutzen. Da sämtliche Applikationen aus dem Windows Umfeld damit sehr einfach angebunden werden können, bietet sich diese Möglichkeit oft an um eine Applikationen zu verSAMLen (SAML fähig zu machen).

DNS und NTP auf dem ADC

Wie auch in den späteren Logs erkennbar sein wird, benötigt der Netscaler für die Nutzung von Kerberos eine funktionierende DNS Auflösung der Windows Active Direcory Domain und eine per NTP korrekt synchronisierte Uhrzeit. Für die Domain/ den DC kann theoretisch auf dem Netscaler auch manuell ein Ressource Record hinzugefügt werden. Zur Zeitsynchronisation sind idealerweise mindestens zwei NTP Server einzutragen und die Synchronisation einzuschalten.

Konfiguration AD Account / Delegation

Bei der Constrained Delegation wird ein Servcie Benutzer für den ADC angelegt, dem dann die Delegierung (Zugriff im Auftrag eines anderen Benutzers) erlaubt wird:

Nachdem der Benutzer angelegt wurde, muss der HOST SPN gesetzt werden, damit die Regsiterkarte „Delegation“ erscheint:

setspn -S HOST/[Name d. Deleg.-konto].[FQDN] [NetBIOS-Domainname]\[Name d. Deleg.-konto]

Setzen des Host SPN
Kerberos Delegierungskonto 1/2

Auf der Registerkarte „Delegation“ des Accounts wird dann die eigentliche Delegierung konfiguriert, der Service SPN „http/demoweb.mwdemo.local@MWDEMO.LOCAL“ für einen internen Microsoft IIS Webserver.

Kerberos Delegierungskonto 2/2

Konfiguration KCD auf dem ADC

Für den Account wird dann auf dem ADC ein KCD Objekt erstellt, welches in einer Traffic Policy eingebunden wird:

ADC / KCD-Account
add aaa kcdAccount wiakcd_appdelegation -realmStr MWDEMO.LOCAL -delegatedUser appdelegation -kcdPassword b616477dhgkjifdghuidf4757747593458930580f -encrypted -encryptmethod ENCMTHD_3 -kek -suffix 2021_yy_yy_yy8 -userRealm MWDEMO.LOCAL -serviceSPN "http/demoweb.mwdemo.local@MWDEMO.LOCAL"

Steuerung SSO mittels Traffic Policy und Profile

Mittels einer Traffic Policy und einem Traffic Profile, welches auf dem Load Balancing Vserver gebunden wird, wird gesteuert an welchen Stellen die KCD SSO Settings angewendet werden sollen:

Traffic Profile (unten ist der KCD Account ausgewählt)
add tm trafficAction prof_traf_wia_demoweb_kcd -SSO ON -persistentCookie OFF -InitiateLogout OFF -kcdAccount wiakcd_appdelegation

Traffic Policy über die das o.g. Profile angebunden wird
add tm trafficPolicy pol_traf_wia_demoweb_kcd true prof_traf_wia_demoweb_kcd

Debugging

Ein Debugging ist mittels cat /tmp/nkrb.debug möglich.

Bei unserem ersten Versuch in der Demo Umgebung gab es wegen den unterschiedlichen Realms in Verbindung mit dem Azure AD noch Probleme:

Log Fehler

Wir haben daraufhin in den KCD Settings das Feld „User Realm“ ergänzt, dies verhindert, dass wie oben eine Cross Realm Authentifizeirung zwischen Azure AD und AD Domäne versucht wird. Somit wird die Anfrage „Username@michaelwesseldemo.onmicrosoft.com“ zu der passenden Anfrage „Username@mwdemo.local“ umgewandelt. Dieser „Workaround“ betrifft unserer Testumgebung aufgrund der fehlenden routingfähigen Domäne.

Hier die Logs des Erfolgsfalls:

Log Erfolg – 1
Log Erfolg – 2
Log Erfolg – 3
Log Erfolg – 4
Log Erfolg – 5
Log Erfolg – 6
Log Erfolg – 7

Teil 1: VerSAMLung – Microsoft Azure SSO am Citrix ADC mit SAML

(von Stefan Kuscher und Benjamin Rodewald)

Im Nachfolgenden erläutern wir die Vorteile, wenn Citrix ADC und Azure Active Directory verSAMLt sind und wie wir dies umgesetzt haben.

Folgende Vorteile ergeben sich:

  • Benutzer muss lediglich beim Anmelden am Arbeitsgerät ein Passwort eingeben (SSO) und ist somit automatisch beim Citrix ADC bekannt und bestenfalls alles was mit diesem verknüpft ist. Von dort aus kann z.B. der Zugriff auf Applikationen wie Citrix Xenapp/XenDesktop oder auch Web-Applikationen erfolgen. (Ohne zusätzliche Anmeldung)
  • Azure AD als der Zugangspunkt für Benutzer.
  • Benutzersteuerung/Berechtigungsverwaltung zentral in Azure AD.
  • Conditional Access\Begrenzter Zugriff + MFA (Azure AD P1 Lizenz)

Voraussetzungen

Ablauf

Abbildung Ablauf SAML

Das SAML Protokoll wurde geschaffen um über eine Teilung in Identity Provider (IdP) und Service Provider (SP) die Authentication für Zugriffe zu ermöglichen. Dabei kann sofern eine Applikation z.B. aus der Cloud bezogen wird, trotzdem gegen einem IdP, der unter Kontrolle des eigenen Unternehmens steht authentifiziert werden (in unserem Falle ist dieser in der Cloud als MS Azure AD ausgeprägt). Der SAML SP (AAA auf dem ADC) vertraut diesem IdP und lässt den Request beim Vorhandensein der Authentifizierungsinformationen passieren. Sind die Informationen nicht vorhanden, würde der Citrix ADC auf die Anmeldeseite des SAML IdP weiterleiten.

In unserem speziellen Fall meldet das Gerät bereits beim MS Windows Logon den Benutzer in der Cloud beim Azure AD an. Der Benutzer besitzt daher zum Zeitpunkt seines ersten Zugriffs schon die entsprechenden Anmeldeinformationen und der ADC (bzw. die AAA / SP Komponente) lässt den Benutzer mit SSO passieren.

Deployment einer Enterprise Applikation in Azure (IDP)

Um eine Kommunikation mit dem Citrix ADC via SAML herzustellen benötigt man auf der Azure Active Directory Seite eine Enterprise Applikation. Diese wird im Azure Active Directory -> Enterprise Applications -> New Application
bereitgestellt und wird benötigt um sich mit dem SP per SAML auszutauschen.

Auswählen einer Vorlage im Browse Azure AD Gallery für das Citrix SAML Add On
Microsoft bietet bereits diverse Vorlagen für Enterprise Applikationen an. In unserem Fall benötigen wir die Vorlage „Cirix ADC SAML Connector for Azure AD“.

In der Enterprise Applikation müssen die benötigten Informationen wie Identifier, Reply URL und Sign On URL des Citrix ADC hinterlegt werden.

1.) Enterprise Applikation -> Name der APP -> Single Sign-on
Identifier: https://FQDN
Reply URL: http(s)://FQDN der WebApplication/cgi/samlauth
Sign On URL: https://FQDN/CitrixAuthService/AuthService.asmx


Ebenfalls finden sich dort die Informationen die der Citrix ADC im späteren Verlauf benötigt z.B. die Login URL von Azure Active Directory oder die Metadaten URL.

2.) Mittels Metadaten URL kann der Austausch der Informationen zwischen AAD und ADC automatisch erfolgen. Voraussetzung hierfür ist dass die Version des CItrix ADC den Austausch via Metadaten bereits unterstützt.

3.) Falls ein Austausch via Metadaten nicht in Frage kommt ,können die Informationen auch manuell dem Citrix ADC übergeben werden (Login URL, Zertifikat…).

Screenshot aus dem Citrix ADC SAML Connector

Berechtigungskontrolle für die Enterprise Applikation

Im Anschluss müssen die Benutzer noch die Berechtigungen erhalten, um die Enterprise Applikation nutzen zu können. In unserem Fall stellen wir die Applikation für alle Benutzer zur Verfügung. Wir deaktivieren somit die Zuweisung für einzelne Benutzer komplett:

Assignment required = No

Screenshot Zuweisung einzelner Gruppen und Nutzer
Falls eine Zuweisung an einzelne Benutzer erwünscht ist, einfach „Assignment required“ auf „Yes“ umstellen (Standardeinstellung) und die Zuweisung für Benutzer unter „Users and Groups“ durchführen.

Konfiguration des AAA Servers / SAML SPs auf dem ADC

Um eine Applikation auf dem Netscaler mit einer Preauthentication zu schützen, kommt die AAA Funktion zum Einsatz. Hierfür wird ein AAA Virtual Server Objekt angelegt, welches in der SAML Welt gleichzeitig den SAML Service Provider (SP) darstellt, der in unserem Fall dem Microsoft Azure Identity Provider (IdP) vertraut. Um für eine Web Applikation die Anmeldung am AAA bzw. dem SAML IdP zu erzwingen, wird der AAA Vserver auf dem enstprechenden Load Balancer oder Content Switch Objekt über die „Authentication“ Registerkarte verknüpft.

Anlage des AAA Virtual Servers

Screenshot  Anlage des AAA im Authentication Virtual Servers
add authentication vserver aaademo SSL 0.0.0.0

Ein SSL Zertifikat muss gebunden werden, auch wenn der AAA Vserver nicht direkt angesprochen wird.

bind ssl vserver aaademo -certkeyName AAA_test
bind ssl vserver aaademo -eccCurveName P_256
bind ssl vserver aaademo -eccCurveName P_384
bind ssl vserver aaademo -eccCurveName P_224
bind ssl vserver aaademo -eccCurveName P_521

Screenshot SSL Virtual Server Server Certificate Binding

SAML SP Server

Falls der Import der Metadaten nicht funktioniert, können die Daten auch aus dem XML extrahiert werden und manuell hinterlegt werden. Das IdP Zertifikat lässt sich auf der Azure Enterprise Appliacation im Azure Portal exportieren (Base64 bietet sich an).

Screenshot mögliche Konfiguration aus dem Configure Authentication SAML Server
SAML Action 1/3
SAML Action 2/3

Nach Citrix Best Practices muss zur Absicherung eine Relaystate Regel konfiguriert werden (vergl. Citrix Application Delivery Controller and Citrix Gateway – SAML Configuration Reference Guide):

SAML Action 3/3 – Relaystate Regel
add authentication samlAction AzureSSOHapp-SAMLServer -samlIdPCertName ADC-SAML-Connector -samlRedirectUrl "https://login.microsoftonline.com/883dfdf-154e-4fdf33-b857-1dfdf8d/saml2" -samlIssuerName "https://vipdemo.michael-wessel.de" -relaystateRule "AAA.LOGIN.RELAYSTATE.EQ(\"https://vipdemo.michael-wessel.de/\")" -logoutURL "https://login.microsoftonline.com/8dda6db-dde-4e33-dddd7-173179eb1e8d/saml2"

SAML SP Policy

Screenshot Configure Authentication Policy
add authentication Policy pol_AzureSSOHapp -rule true -action AzureSSOHapp-SAMLServer

Die erstellte SAML SP Policy muss dann an den AAA Virtual Server / SAML SP gebunden werden und der AAA Virtual Server auf der Registerkarte „Authentication“ des Load Balancers oder Content Switches verknüpft werden. Auf ADCs mit einer aktuellen Firmware haben sich zudem die Defaults für die Athorization geändert, so dass eine pasende Authorization Policy anzulegen ist.

Ausblick

Mit dem Vorliegen der Anmeldeinformationen kann auf dem Netscaler auch eine detaillierte Berechtigung auf bestimmte URLs anhand von z.B. Gruppenmitgliedschaften über Authorization Policies erfolgen.

Außerdem ist es möglich authentifizierte Benutzer z.B. per SAML oder KCD an Servern hinter der Pre-Authentication automatisch anzumelden.

Im MS Azure sind umfangreiche Möglichkeiten der Multi Faktor Authentifizierung und des Conditional Access möglich.

Mehr zu diesen und anderen Möglichkeiten werden sie in den weiteren Artikeln unserer Serie „verSAMLt“ lesen.

Microsoft <3 Europe

Microsoft kündigte gestern in einem Blogpost an, künftig alle Daten ihrer EU-Kunden innerhalb der EU zu halten und spricht dabei von einer „EU Data Boundary for the Microsoft Cloud“. Dies gilt für Azure, Microsoft 365 und Dynamics 365.

Wir haben heute ein wichtiges Versprechen für unsere Kunden in Europa gegeben. Microsoft wird es in der EU ansässigen Kunden aus dem öffentlichen Sektor und Unternehmenskunden künftig ermöglichen, all ihre Daten innerhalb der EU zu verarbeiten und zu speichern. In anderen Worten: Wir werden keine Daten dieser Kunden aus der EU heraus transferieren müssen.

https://news.microsoft.com/de-de/unsere-antwort-an-europa-microsoft-ermoeglicht-speicherung-und-verarbeitung-von-daten-ausschliesslich-in-der-eu/

Zuletzt gab es immer wieder Kritik von Datenschützern, die sich gegen einen Einsatz von modernen Tools, wie Microsoft Teams ausgesprochen haben. Teilweise aus technischem Unverständnis oder aus Angst über den Kontrollverlust der Daten. Ob dies alles auch berechtigte Kritik gewesen ist, sei mal dahingestellt. Nichtsdestotrotz ist das ist ein starkes Versprechen, seitens Microsoft und wird hoffentlich so manchen Zweifler milde stimmen.

Angekündigt sind die Maßnahmen für Herbst 2021. Wir bleiben also als Partner dran und informieren unsere Kunden umgehend über die Entwicklungsschritte.

Let’s talk about IT: Wie sicher ist Cloud?

Besonders in regulierten und sensiblen Branchen ist die Frage drängend: können wir Cloud Dienste nutzen? Können wir uns sicher fühlen, wenn wir Cloud Dienste nutzen? Woran erkennen wir, dass ein Cloud Dienst sicher betrieben wird? Ein paar Hinweise, Hintergründe und Handreichungen dazu geben wir in dieser Episode unseres Podcasts. Musik: Kalte Ohren ( Remix ) by Dysfunction_AL (c) copyright 2019 Licensed under a Creative Commons Attribution (3.0) license. http://dig.ccmixter.org/files/destinazione_altrove/59536 Ft: Starfrosch, Kara Square

avatar
Natanael Mignon
avatar
Patrick Kern
avatar
Phil Marx

Besonders in regulierten und sensiblen Branchen ist die Frage drängend: können wir Cloud Dienste nutzen? Können wir uns sicher fühlen, wenn wir Cloud Dienste nutzen? Woran erkennen wir, dass ein Cloud Dienst sicher betrieben wird?

Ein paar Hinweise, Hintergründe und Handreichungen dazu geben wir in dieser Episode unseres Podcasts.

Lesestoff & Credits

Microsoft TrustCenter

Microsoft Azure Security Center

Amazon Web Services Cloud-Sicherheit

Amazon Web Services Cloud Compliance

Musik: Kalte Ohren ( Remix ) by Dysfunction_AL (c) copyright 2019 Licensed under a Creative Commons Attribution (3.0) license. http://dig.ccmixter.org/files/destinazione_altrove/59536 Ft: Starfrosch, Kara Square

Aus der Microsoft Cloud Deutschland heraus migrieren

Nachdem Microsoft schon vor einiger Zeit die Microsoft Cloud Deutschland (MCD) im Treuhändermodell abgekündigt hat, fragten uns viele Kunden nach einer Migrationsmöglichkeit. Insbesondere, da Bestandskunden der MCD keine neuen Services mehr buchen können.

Bisher gab es nur direkte Migrationsmöglichkeiten von einigen Azure-Diensten, die möglich waren. Immer wieder mussten wir Office 365 Kunden leider mitteilen, dass eine Migration nicht ohne weiteres möglich ist. Besonders ärgerlich für Kunden, die vor nicht all zu langer Zeit erst von lokal in die Deutschlandcloud migriert sind. Es kamen also erneut Kosten und Ausfallzeiten hinzu. Ganz davon abgesehen, dass der technische Migrationspfad von Cloud zu Cloud nur über Umwege und nicht weniger aufwändig ist wie von lokaler Infrastruktur in die Cloud.

So waren wir überrascht, vor kurzem in den Microsoft Tech-Docs auf einen Artikel vom 09.12.2019 zu stoßen, der eine „geleitete“ Migration von Office 365-MCD zu den neuen deutschen Rechenzentrumsregionen verspricht.

Quelle:
https://docs.microsoft.com/de-de/office365/enterprise/ms-cloud-germany-transition

Zitat: „Die bestehenden Kunden von Microsoft Cloud Germany (Microsoft Cloud Deutschland) können nun mit der Migration ihrer Office 365, Dynamics 365 Customer Engagement und Power Platform BI beginnen. Der erste Schritt besteht darin, sich für die von Microsoft geleiteten Migration in unsere neuen deutschen Rechenzentrumsregionen anzumelden.“

Was muss man dafür tun?

Nun… diesen Knopf im Admincenter drücken.
Liebe MCD-Kunden, bitte lesen Sie erst weiter, bevor Sie das wild entschlossen tun.

Wo ist der Haken bei der Sache?

Wir können zum jetzigen Zeitpunkt leider noch nichts zu dem Ablauf sagen, da das auch für uns Partner aktuell noch eine Blackbox ist. Bisher konnten wir diese Migration auch noch nicht mit einem Kunden begleiten.

Wer in der Dokumentation weiter liest, wird folgende Passagen finden:

„Die Migrationen für Organisationen, die sich für den von Microsoft geleiteten Ansatz anmelden, werden voraussichtlich in 2020 durchgeführt. Als Ergebnis der Migration werden die wichtigsten Kundendaten und -abonnements in die neuen deutschen Regionen verschoben.“

Quelle:
https://docs.microsoft.com/de-de/office365/enterprise/ms-cloud-germany-migration-opt-in

Für uns stellen sich die Fragen:

  • Wie lange dauert denn tatsächlich so eine Migration, wenn sie „voraussichtlich“ in 2020 durchgeführt wird?
  • Welche Auswirkungen sind währenddessen zu spüren?
    • Microsoft verspricht zwar: „Mandantenmigrationen sind so angelegt, dass sie nur minimale Auswirkungen auf Endkunden und Administratoren haben“ aber was bedeutet denn „minimal“?
  • Auch ist die Aussage, dass die „wichtigsten“ Kundendaten migriert werden, recht schwammig. Was sind denn die wichtigsten Daten und welche fehlen?

Es ist auch noch hinzuzufügen, dass die ganze Migration nicht vollautomatisch abläuft, sondern auch noch einige Tätigkeiten für die Office-Administrationen oder uns als Partner anfallen. Zum Beispiel die DNS Updates und Records, die geändert werden müssen. Die lokalen Security-Systeme, wie Proxy, Firewall etc. müssen angepasst werden, da sich die Adressen der Cloud-Dienste ändern. Wer noch hybrid unterwegs ist, muss auch noch einiges dafür tun, damit das funktioniert.

Unser Fazit

Man muss also noch allerhand beachten, wenn man die geleitete Migration durchführen möchte. Viele Fragen bleiben offen, die auch wir im Moment nicht beantworten können.