Citrix StoreFront Customization SDK – Oder: Ich sehe was, was du nicht siehst

Konsolidierung, Security Vorgaben und User Experience sind die aktuellen Schlagwörter, die wir mit unseren Citrix StoreFront Migrationen verbinden. Und erfahrungsgemäß sind die Security Vorgaben nicht zu unterschätzen. In unserem Fall hatten wir folgende Aufgabenstellung zu lösen:

Anwender Max Mustermann darf über das Portal Citrix-Store-Intern die Anwendungen App1 und WebApp2 nutzen. Sobald der Anwender Max Mustermann aber über das Internetportal Citrix-Store-WWW zugreift, darf er WebApp2 nicht mehr nutzen und soll sie somit auch gar nicht mehr sehen.

Diese Anforderung hört sich im ersten Schritt nicht problematisch an. Wenn Du noch XenApp im Einsatz hast, dann hast Du jetzt auch gewonnen. Doch unter XenDesktop schaut das etwas anders aus!

Konzentriertes Arbeiten am Laptop

Zur Erklärung:

Mit XenApp hatten wir noch die Möglichkeit, die Access Gateway Filter explizit auf der Anwendungsebene setzen zu können. Nach der Umstellung auf XenDesktop ist die Zugriffssteuerung pro Applikation/Desktop jedoch nicht mehr möglich. Das Konzept von Citrix zielt hier (bisher) nur auf Delivery Group Ebene.

 

Lösungsvorschläge:

  1. Idee: Das einfachste wäre wohl, pro Portal bzw. Store die Anwendungen über eine eigene Delivery Group bereitzustellen.
    Gegenargument: Bei größeren Umgebungen wird das schnell unübersichtlich, erhöhter administrativer Aufwand und Dateninkonsistenz. Virtuelle Desktops?
  1. Idee: Anpassen der XenDesktop Entitlement Policy per PowerShell, zum setzen von einfachen Filtern oder Keywords (Get-/ Set-BrokerEntitlementPolicyRule).
    Gegenargument: Für einen globalen Einsatz in größeren Umgebungen nur begrenzt geeignet. Nicht über die Citrix Management Konsole administrierbar, nur per PowerShell Kommando. Nicht für Virtuelle Desktops geeignet.
  1. Idee: Einsatz eines sogenannten Show Filters, der auf Anwendungsebene und auch für Desktops gesetzt werden kann. Die Anzeige wird im jeweiligen Store gesteuert.
    Gegenargument: Aufwand für die Umsetzung und Pflege der Show Filter Tags auf Anwendungsebene.

 

Lösung 1 und 2 kommen für uns nicht in Frage, da wir auch die Anzeige von VDI Desktops steuern möchten.

Idee 3, der Einsatz von Show Filter Tags kann mit dem Citrix StoreFront Customization SDK relativ gut umgesetzt werden.

 

Doch was macht dieses Customization SDK überhaupt?

Kurzfassung:  Das SDK erlaubt es uns, den XML Datenstrom des Anwenders, welcher vom Delivery Controller an das StoreFront geschickt wird „aufzubrechen“ und zu manipulieren.

Citrix StoreFront Store Customization SDK
Kling kompliziert? Keineswegs!

Der XML Datenstrom unter der Lupe:

Für unseren Zweck ist der <summary> Bereich interessant. Hier findest Du den Filter Tag, welchen wir in der Anwendung hinterlegt haben.

Hier der entsprechende Filter Tag in den Application Settings:

Citrix Studio Applikacation Settings

So viel zur Theorie, los geht’s mit der Umsetzung…

 

Das brauchst Du bevor es losgehen kann:

Ist Dein Visual Studio startklar? Los gehts …

Der ganze Zauber steckt in einer kleinen DLL Datei, die wir für unsere Anforderungen entsprechend anpassen und kompilieren müssen, damit unser Store damit arbeiten kann.

Im entpackten SDK Verzeichnis findest du den Ordner: Solution, welcher bereits verschiedene VS Projekte beinhaltet.

Für unsere Zwecke nehmen wir das Projekt Customization_Enumeration (Doppelklick auf die .csproj Datei).

Tipp: Um die Konfiguration der Filter Tags für den Store zu vereinfachen, habe ich mir noch eine Konfigurationsdatei erstellt (StoreCustomization_Enumeration.dll.config).

Hier kann ganz einfach der Filter Tag für das Portal hinterlegt werden, was ein Anpassen oder Kompilieren der DLL für die verschiedenen Stores überflüssig macht!

Was ich besonders gut finde, dass im Solutions Ordner auch Examples mitgeliefert werden. Somit kann man sich die benötigten Code-Schnipsel sehr gut zusammensammeln 😉

 

Wie müssen wir nun vorgehen?

  1. “Aufbrechen” des XML-Datenstroms
  2. Filtern der Daten
  3. Anpassen der Daten
  4. Neuen XML-Datenstrom erzeugen

XML-Serialisierung – „Aufbrechen“ des XML Datenstrom

Einfach, praktisch, gut – Die Microsoft XML.Serialization Klasse.

Um die Anwendungen die wir ausgeben lassen wollen zu sammeln, erstellen wir uns noch schnell eine Liste…

I love Foreach – Filtern der Daten

Hübsch verpackt haben wir ein Objekt mit unseren XML Daten, welches wir nach unserer Show Filter Tag durchsuchen möchten.

Rein oder raus – Anpassen der Daten

Mit der kleinen Funktion wird der #Tag geprüft:

Gibt unsere Funktion ein “true” zurück, wird der Datensatz in unsere Liste der gültigen Anwendungen aufgenommen.

editres.Add(x);

Husch, husch ins Körbchen – Neuen Datenstrom erzeugen

Das wars… newResDoc beinhaltet nur die Daten bzw. Anwendungen die einen ShowFilter haben und im StoreFront angezeigt werden sollen!

Auf die Plätze, fertig…. Kompilieren

Nach dem das Projekt kompiliert ist, musst du die beiden Dateien in deinen Store kopieren.

Achtung: Der Name der DLL darf nicht geändert werden!

Im IIS noch einen Restart des Stores durchgeführt und schon ist unsere DLL einsatzbereit.

Kleiner Tipp am Ende: Solltest du Probleme haben, findest du im SDK Ordner unter Documentation den SDK Guide (store-customization-guide.pdf).

Hier wird beschrieben wie du das Tracing für einen bestimmten Store aktivieren kannst, was die Problemanalyse extrem vereinfachen kann!

Waren die Informationen für dich hilfreich? Lass mir ein Kommentar da!

Du hast eine Frage? Ab in die Kommentare damit!

Danke für deine Aufmerksamkeit!

Matthias Braun

 

Beispieldatei Download: EnumerationResultModifier.cs

Leave a Reply

Your email address will not be published. Required fields are marked *

 

Unser Verhaltenskodex

Partnerschaft, Zuverlässigkeit, Integrität, Offenheit und Nachhaltigkeit sind zentrale Werte unserer Unternehmenskultur. Als Unternehmen steht es für uns im Vordergrund, im täglichen Geschäftsleben fair und ethisch korrekt zu arbeiten und bestehende Gesetze einzuhalten. Gleiches erwarten wir auch von unseren Kunden, Beratern, Lieferanten und Dienstleistern. Unsere Richtlinien und Prinzipien haben wir aus diesem Grund in unserem Verhaltenskodex festgelegt.

Datenschutzerklärung

Verantwortliche Stelle im Sinne der Datenschutzgesetze ist:

  • Provectus Technologies GmbH
  • Leopoldstr. 250b, 80807 München, Deutschland
  • info@provectus.de
  • +49 (89) 7104092 0

Erfassung allgemeiner Informationen

Wenn Sie auf unsere Webseite zugreifen, werden automatisch Informationen allgemeiner Natur erfasst. Diese Informationen (Server-Logfiles) beinhalten etwa die Art des Webbrowsers, das verwendete Betriebssystem, den Domainnamen Ihres Internet Service Providers und Ähnliches. Hierbei handelt es sich ausschließlich um Informationen, welche keine Rückschlüsse auf Ihre Person zulassen. Diese Informationen sind technisch notwendig, um von Ihnen angeforderte Inhalte von Webseiten korrekt auszuliefern und fallen bei Nutzung des Internets zwingend an. Anonyme Informationen dieser Art werden von uns statistisch ausgewertet, um unseren Internetauftritt und die dahinter stehende Technik zu optimieren.

Um die Sicherheit Ihrer Daten bei der Übertragung zu schützen, verwenden wir dem aktuellen Stand der Technik entsprechende Verschlüsselungsverfahren (z. B. SSL) über HTTPS.

Kommentarfunktion

Wenn Nutzer Kommentare im Blog hinterlassen, werden neben diesen Angaben auch der Zeitpunkt ihrer Erstellung und der zuvor durch den Webseitenbesucher gewählte Nutzername gespeichert. Dies dient unserer Sicherheit, da wir für widerrechtliche Inhalte auf unserer Webseite belangt werden können, auch wenn diese durch Benutzer erstellt wurden.

Kontaktformular

Treten Sie per E-Mail oder Kontaktformular mit uns in Kontakt, werden die von Ihnen gemachten Angaben zum Zwecke der Bearbeitung der Anfrage sowie für mögliche Anschlussfragen gespeichert.

Verwendung von Google Analytics

Diese Webseite benutzt Google Analytics, einen Webanalysedienst der Google Inc. („Google“). Google Analytics verwendet sog. „Cookies“, Textdateien, die auf Ihrem Computer gespeichert werden und die eine Analyse der Benutzung der Webseite durch Sie ermöglichen. Die durch den Cookie erzeugten Informationen über Ihre Benutzung dieser Webseite werden in der Regel an einen Server von Google in den USA übertragen und dort gespeichert. Aufgrund der Aktivierung der IP-Anonymisierung auf diesen Webseiten, wird Ihre IP-Adresse von Google jedoch innerhalb von Mitgliedstaaten der Europäischen Union oder in anderen Vertragsstaaten des Abkommens über den Europäischen Wirtschaftsraum zuvor gekürzt. Nur in Ausnahmefällen wird die volle IP-Adresse an einen Server von Google in den USA übertragen und dort gekürzt. Im Auftrag des Betreibers dieser Webseite wird Google diese Informationen benutzen, um Ihre Nutzung der Webseite auszuwerten, um Reports über die Webseitenaktivitäten zusammenzustellen und um weitere mit der Webseitennutzung und der Internetnutzung verbundene Dienstleistungen gegenüber dem Webseitenbetreiber zu erbringen. Die im Rahmen von Google Analytics von Ihrem Browser übermittelte IP-Adresse wird nicht mit anderen Daten von Google zusammengeführt. Sie können die Speicherung der Cookies durch eine entsprechende Einstellung Ihrer Browser-Software verhindern; wir weisen Sie jedoch darauf hin, dass Sie in diesem Fall gegebenenfalls nicht sämtliche Funktionen dieser Webseite vollumfänglich werden nutzen können. Sie können darüber hinaus die Erfassung der durch das Cookie erzeugten und auf Ihre Nutzung der Webseite bezogenen Daten (inkl. Ihrer IP-Adresse) an Google sowie die Verarbeitung dieser Daten durch Google verhindern, indem sie das unter dem folgenden Link verfügbare Browser-Plugin herunterladen und installieren:

Link: Browser Add On zur Deaktivierung von Google Analytics

Zusätzlich oder als Alternative zum Browser-Add-On können Sie das Tracking durch Google Analytics auf unseren Seiten unterbinden, indem Sie diesen Link anklicken. Dabei wird ein Opt-Out-Cookie auf Ihrem Gerät installiert. Damit wird die Erfassung durch Google Analytics für diese Website und für diesen Browser zukünftig verhindert, so lange der Cookie in Ihrem Browser installiert bleibt.

Social Plugins

Auf unseren Webseiten werden Social Plugins der unten aufgeführten Anbieter eingesetzt. Die Plugins können Sie daran erkennen, dass sie mit dem entsprechenden Logo gekennzeichnet sind.

Über diese Plugins werden unter Umständen Informationen, zu denen auch personenbezogene Daten gehören können, an den Dienstebetreiber gesendet und ggf. von diesem genutzt. Wir verhindern die unbewusste und ungewollte Erfassung und Übertragung von Daten an den Diensteanbieter durch eine 2-Klick-Lösung. Um ein gewünschtes Social Plugin zu aktivieren, muss dieses erst durch Klick auf den entsprechenden Schalter aktiviert werden. Erst durch diese Aktivierung des Plugins wird auch die Erfassung von Informationen und deren Übertragung an den Diensteanbieter ausgelöst. Wir erfassen selbst keine personenbezogenen Daten mittels der Social Plugins oder über deren Nutzung.

Wir haben keinen Einfluss darauf, welche Daten ein aktiviertes Plugin erfasst und wie diese durch den Anbieter verwendet werden. Derzeit muss davon ausgegangen werden, dass eine direkte Verbindung zu den Diensten des Anbieters ausgebaut wird sowie mindestens die IP-Adresse und gerätebezogene Informationen erfasst und genutzt werden. Ebenfalls besteht die Möglichkeit, dass die Diensteanbieter versuchen, Cookies auf dem verwendeten Rechner zu speichern. Welche konkreten Daten hierbei erfasst und wie diese genutzt werden, entnehmen Sie bitte den Datenschutzhinweisen des jeweiligen Diensteanbieters. Hinweis: Falls Sie zeitgleich bei Facebook angemeldet sind, kann Facebook Sie als Besucher einer bestimmten Seite identifizieren.

Wir haben auf unserer Website die Social-Media-Buttons folgender Unternehmen eingebunden:

  • Facebook Inc. (1601 S. California Ave - Palo Alto - CA 94304 - USA)
  • Twitter Inc. (795 Folsom St. - Suite 600 - San Francisco - CA 94107 - USA)
  • XING AG (Gänsemarkt 43 - 20354 Hamburg - Deutschland)
  • LinkedIn Corporation (2029 Stierlin Court - Mountain View - CA 94043 - USA)

Cookies

Wie viele andere Webseiten verwenden wir auch so genannte "Cookies". Cookies sind kleine Textdateien, die von einem Webseitenserver auf Ihre Festplatte übertragen werden. Hierdurch erhalten wir automatisch bestimmte Daten wie z. B. IP-Adresse, verwendeter Browser, Betriebssystem über Ihren Computer und Ihre Verbindung zum Internet.

Cookies können nicht verwendet werden, um Programme zu starten oder Viren auf einen Computer zu übertragen. Anhand der in Cookies enthaltenen Informationen können wir Ihnen die Navigation erleichtern und die korrekte Anzeige unserer Webseiten ermöglichen.

In keinem Fall werden die von uns erfassten Daten an Dritte weitergegeben oder ohne Ihre Einwilligung eine Verknüpfung mit personenbezogenen Daten hergestellt.

Natürlich können Sie unsere Website grundsätzlich auch ohne Cookies betrachten. Internet-Browser sind regelmäßig so eingestellt, dass sie Cookies akzeptieren. Sie können die Verwendung von Cookies jederzeit über die Einstellungen Ihres Browsers deaktivieren. Bitte verwenden Sie die Hilfefunktionen Ihres Internetbrowsers, um zu erfahren, wie Sie diese Einstellungen ändern können. Bitte beachten Sie, dass einzelne Funktionen unserer Website möglicherweise nicht funktionieren, wenn Sie die Verwendung von Cookies deaktiviert haben.

Ihre Rechte auf Auskunft, Berichtigung, Sperre, Löschung und Widerspruch

Sie haben das Recht, jederzeit Auskunft über Ihre bei uns gespeicherten personenbezogenen Daten zu erhalten. Ebenso haben Sie das Recht auf Berichtigung, Sperrung oder, abgesehen von der vorgeschriebenen Datenspeicherung zur Geschäftsabwicklung, Löschung Ihrer personenbezogenen Daten. Bitte wenden Sie sich dazu an unseren Datenschutzbeauftragten. Die Kontaktdaten finden Sie ganz unten.

Damit eine Sperre von Daten jederzeit berücksichtigt werden kann, müssen diese Daten zu Kontrollzwecken in einer Sperrdatei vorgehalten werden. Sie können auch die Löschung der Daten verlangen, soweit keine gesetzliche Archivierungsverpflichtung besteht. Soweit eine solche Verpflichtung besteht, sperren wir Ihre Daten auf Wunsch.

Sie können Änderungen oder den Widerruf einer Einwilligung durch entsprechende Mitteilung an uns mit Wirkung für die Zukunft vornehmen.

Änderung unserer Datenschutzbestimmungen

Wir behalten uns vor, diese Datenschutzerklärung gelegentlich anzupassen, damit sie stets den aktuellen rechtlichen Anforderungen entspricht oder um Änderungen unserer Leistungen in der Datenschutzerklärung umzusetzen, z. B. bei der Einführung neuer Services. Für Ihren erneuten Besuch gilt dann die neue Datenschutzerklärung.

Fragen an den Datenschutzbeauftragten

Wenn Sie Fragen zum Datenschutz haben, schreiben Sie uns bitte eine E-Mail oder wenden Sie sich direkt an unseren Datenschutzbeauftragten:

  • Vincent Nguyen
  • activeMind AG
  • Potsdamer Str. 3, 80802 München, Deutschland
  • datenschutz@provectus.de

Quellen Nachweis

Auf der Webseite verwendete Bilder:
Wenn nicht folgend aufgeführt, wurden Bilder von Unsplash genutzt -> Lizenz

iStockphoto Standard Lizenz:
Titel Bild: MünchenAlpen (184102635)

Icons:
Font Awesome