doskias
Goto Top

Java - Einstellung auf Terminalservern benutzerabhängig steuern

Hallo zusammen,

ich habe folgende Ausgangslage:

- mehr als 10 Terminalserver im Endzustand (Windows 2012 R2)
- alle Programme werden ausschließlich via Citrix Reciver gestartet

Und ich habe passend dazu folgende Bedingung:

1. Java wird auf den Servern selbst nicht benötigt. Es muss daher nicht installiert werden, oder soll global deaktiviert werden.
2. Die Java-Plugins werden für bestimmte Websiten benötigt, die üer Citrix geöffnet werden können.
3. Die Anzahl der User, die via Citrix diese Websiten öffnen ist kleiner als 15.

Die Aufgabe ist nun dies irgendwie zu realisieren. Leider habe ich bislang keine Lösung gefunden nur die Plugins zu installieren ohne Java komplett. Die letzte Möglchkeit die Java-Plugins ohne Java zu installieren, die ich finden konnte endet bei Windows 98. Also leider keine Lösung.
http://www.oracle.com/technetwork/java/all-137794.html

Die Idee vor der ich nun stehe ist, dass wir Java komplett installieren und dann via GPO deaktivieren. Gleichzeitig wollen wir die Java-Plugins ebenfalls komplett deaktivieren und durch eine andere GPO für die betroffenen User nun wieder aktivieren. Die Frage die ich mir nun stelle ist, ob diese Lösung funktionieren kann und würde gerne Wissen, ob jemand diese Konstellation ebenfalls (wünschenswerter Weise erfolgreich) eingesetzt hat.

Wie gesagt: Ich brauche im Prinzip nur die Java-Plugins. Der Rest soll weg.

Als Alternative (sozusagen als letzten Ausweg) bestünde noch die Möglichkeit 2 Terminalserver mit Java auszustatten und den Rest nicht, so dass die Websiten über die zwei spezfifischen Server geladn werden. Daran stört mich jedoch, dass
1. die Server nicht mehr einheitlich sind
2. es eine große Ressourcenverschwendung darstellt, wenn zwei Terminalserver für 15 User einige Websiten öffnen.

Bin für Vorschläge offen.

Nachtrag:
Die Lösung muss parallel für den FF und den IE funktionieren.

Content-Key: 256545

Url: https://administrator.de/contentid/256545

Printed on: April 20, 2024 at 03:04 o'clock

Member: colinardo
Solution colinardo Dec 03, 2014, updated at Dec 04, 2014 at 16:00:22 (UTC)
Goto Top
Hallo Doskias,
erst mal, du kannst Java nicht komplett deaktivieren und gleichzeitig die Plugins aktivieren, diese setzten ja auf der Java-Runtime auf, gehören also zusammen. Du kannst Java aber detailliert über die Deployment-Config-Datei konfigurieren, mit dieser lässt sich Java also auf User-Basis konfigurieren (aktivieren/deaktivieren).
http://docs.oracle.com/javase/7/docs/technotes/guides/jweb/jcp/properti ...
Z.B. deaktiviert folgende Zeile in der Deployment-Config die Nutzung von Java in den Browsern:
deployment.webjava.enabled=false
Das Deployment-File muss dann für die userbasierte Verteilung in diesem Verzeichnis platziert werden:
<User Application Data Folder>\LocalLow\Sun\Java\Deployment\deployment.properties
TIPP: Am einfachsten ist es wenn du dir auf einem Testsystem die Java-Systemsteuerung vor knüpfst, und so konfigurierst wie du es für die User haben möchtest. Die Systemsteuerung legt dann nämlich solch ein Deployment-File automatisch in folgendem Verzeichnis an:
"C:\Users\%username%\AppData\LocalLow\Sun\Java\Deployment\deployment.properties"
Daraus kannst du dir die benötigten Settings entnehmen und brauchst nicht alle Einstellungen in der Doku nachschlagen.

Dann gibt es auch noch eine Methode die Seiten welche in den Browsern aufgerufen werden dürfen, mit einem Deployment-Ruleset einzuschränken. Dazu habe ich hier mal ein detailliertes Tutorial geschrieben:
Explizites Freigeben von bestimmten Java-Applets im Browser via Deployment-Config (Sicherheitswarnung deaktivieren)

Grüße Uwe
Member: Doskias
Doskias Dec 03, 2014 at 19:14:08 (UTC)
Goto Top
Hallo Uwe,

ja das habe ich befürchtet, dass ich es nicht deaktivieren kann und gleichzeitig die Plugins aktiviert lassen kann. Wäre ja auch zu schön gewesen. Da seht man sich manchmal die Zeiten herbei als die JRE und die Plugins noch getrennt waren ;)

Auf den ersten Blick sieht das File ganz gut aus. Ich werde es mir morgen mal genauer anschauen.
Member: Doskias
Doskias Dec 04, 2014 at 10:09:20 (UTC)
Goto Top
Zitat von @colinardo:
Z.B. deaktiviert folgende Zeile in der Deployment-Config die Nutzung von Java in den Browsern:
<code type="plain">
deployment.webjava.enabled=false

Gilt das global oder nur für den IE?

Ich hab mitlerweile auch hier was dazu gefunden: https://www.java.com/de/download/help/disable_browser.xml
Zumindest mein Test in der Testumgebung hat gezeigt, dass wenn ich deployment.webjava.enabled=false setze die Plugins unter FF weiterhin auf "immer ausführen" stehen.

Im IE funktioniert das ganze mit eingetragenen Ausnahmen unter security\exception.sites auch ganz gut. Einziges Manko: Wenn ich eine Ausnahmeseite (in dem Fall www.oracle.com/technetwork/java/example1-138100.html) öffne, so erhalte ich die Meldung:


Angegebene Konfigurationsdatei wurde nicht gefunden. Sie können keine Applets im Browser anzeigen, da eine erforderliche Konfigurationsdatei im angegebenen Verzeichnis nicht gefunden wurde: null. Sie müssen den Brwoser neu starten, wenn das Konfigurationsproblem behoben ist.

Das kuriose: Diese Meldung erhalte ich permanent bei jeder Seite. Bei den Ausnahmen, wird die Seite im Anschluss fehlerfrei geladen. Bei Seiten ohne Ausnahme, erhalte ich dann die Nachricht "Ihre Sicherheitseinstellungen haben die Ausführung einer nicht vertrauenswürdigen Anwendung blockiert."

Beim IE muss ich folglich nur noch die Meldung mit der Konfigurationsdatei eliminieren.

Beim FF hingegen sagt er nun permanent, dass ein Plugin benötigt wird um den Inhalt darzustellen und ich werde aufgefordert das Plugin zu installieren. Dabei ist Java laut den Add-Ons immer aktiviert. Die Meldung gibts sowohl bei Ausnahmeseiten als auch bei regulären.

Zwei Fragen:
1. Kann es daran liegen, dass im Java Control Panel unter "Standard-Java für Browser" der Haken bei Mozilla-Familie nicht gesetzt bleibt wenn ich diesen setze?
2. Bei dem FF handelt es sich übrigens um ein vom Kunden customized Installationspaket. Vielleicht liegt es auch hierdran?
Member: colinardo
Solution colinardo Dec 04, 2014 updated at 16:00:28 (UTC)
Goto Top
Zitat von @Doskias:
> deployment.webjava.enabled=false
Gilt das global oder nur für den IE?
Global für alle Browser

Im IE funktioniert das ganze mit eingetragenen Ausnahmen unter security\exception.sites auch ganz gut. Einziges Manko: Wenn ich
eine Ausnahmeseite (in dem Fall www.oracle.com/technetwork/java/example1-138100.html) öffne, so erhalte ich die Meldung:

> Angegebene Konfigurationsdatei wurde nicht gefunden. Sie können keine Applets im Browser anzeigen, da eine erforderliche
Konfigurationsdatei im angegebenen Verzeichnis nicht gefunden wurde: null. Sie müssen den Brwoser neu starten, wenn das
Konfigurationsproblem behoben ist.
Halte dich exakt an mein Tutorial, dann klappt das hervorragend. :.-) Darin überließt du ganz schnell wichtige Dinge ! Nur überfliegen führt da nicht zum Erfolg !

Zwei Fragen:
1. Kann es daran liegen, dass im Java Control Panel unter "Standard-Java für Browser" der Haken bei Mozilla-Familie
nicht gesetzt bleibt wenn ich diesen setze?
kann ich gerade nicht sagen.
2. Bei dem FF handelt es sich übrigens um ein vom Kunden customized Installationspaket. Vielleicht liegt es auch hierdran?
könnte schon sein ..

Grüße Uwe
Member: Doskias
Doskias Dec 04, 2014 at 12:53:53 (UTC)
Goto Top
ich schon wieder face-smile

Also zumindest im IE hat es funktioniert (bis ich mir das Testsystem zerlegt habe) face-smile

jetzt habe ich aber noch einmal eine Verständnisfrage:

Ich konfiguriere die deployment.properties einmal mit deaktivierten und einmal mit aktivierten Java und verteile diese in die entsprechenden Ordner, je nachdem welche Berechtigungen der user haben soll. Anschließend implementiere ich die Lösung deines Tutorials. In dem Fall werden die Websites auch bei deaktiviertem java nicht geladen, korrekt?
Member: colinardo
colinardo Dec 04, 2014 updated at 12:57:42 (UTC)
Goto Top
Anschließend implementiere ich die Lösung deines Tutorials.
In dem Fall werden die Websites auch bei deaktiviertem java nicht geladen, korrekt?
Wenn du das Ruleset entsprechend mit einer Default-Block-Regel am Ende konfigurierst, ja. Dann sind ja nur die angegebenen Seiten bzw. Applets freigegeben und alles andere nicht mehr.
Member: Doskias
Doskias Dec 04, 2014 at 13:45:48 (UTC)
Goto Top
Also du schreibst zwar "ja" aber die deine Erklärung ist doch eher ein "nein" (oder ich steh grad auf dem Schlauch)? Es geht also nochmal um folgendes:

Gruppe A: Soll Java komplett deaktiviert haben, auch auf den speziellen Seiten
Gruppe B. Soll Java aktiviert haben und auf die speziellen Seiten mit Java zugreifen.

Die Lösung mit der deployment.properties löst ja den ersten Teil, also deaktiviertes bzw. aktiviertes Java. Soweit, so gut.

Dein Tutorial erlaubt ja aber http://www.oracle.com/technetwork/java/. Da es sich hierbei ja aber um eine serverweite Eisntellung handelt (liegt ja unter C:\Windows\...) haben, dann nicht alle Benutzer die Rechte auf die freigegebenen Seiten?
Oder greift hier die deplyment.properties vor der DeploymentRuleSet.jar?
Member: colinardo
Solution colinardo Dec 04, 2014 updated at 16:00:39 (UTC)
Goto Top
Zitat von @Doskias:
Dein Tutorial erlaubt ja aber http://www.oracle.com/technetwork/java/. Da es sich hierbei ja aber um eine serverweite Eisntellung
handelt (liegt ja unter C:\Windows\...) haben, dann nicht alle Benutzer die Rechte auf die freigegebenen Seiten?
Oder greift hier die deplyment.properties vor der DeploymentRuleSet.jar?
Das sind zwei verschiedene Dinge. Die Deployment.Properties legt fest ob Java generell aktiviert oder deaktiviert ist (bzw. deine Einstellungen), und das DeploymentRuleSet.jar legt nur fest welche Seiten bzw. Applets bei "aktiviertem" Java besucht werden dürfen !!! Bei deaktiviertem Java für den User, ist die DeploymentRuleSet.jar also obsolet, da Java für Ihn ja sowieso deaktiviert ist !
Die beiden Dinge sind also getrennt zu sehen, in der DeploymentRuleSet.jar liegt ja nur das XML-File und keine "Deployment.properties".

Hoffe das war jetzt klar face-wink

Grüße Uwe
Member: Doskias
Doskias Dec 04, 2014 at 14:03:53 (UTC)
Goto Top
Ja jetzt hab selbst ich das verstanden :D

Das es zwei verschidene Dinge sind war mir schon klar, daher ja nochmal die Rückfrage ob sich aktiviertes/deaktiviertes Java auf die DeploymentRuleSet auswirkt.

Gruppe A mit deaktivierten Java ist also völlig egal was in der DeploymentRuleSet.jar steht.
Gruppe B mit aktivierten Java, greift auf die DeploymentRuleSet vor.

Ich werds dann nochmal mit entsprechender internen Dokumentation nachbauen und (vermutlich) dann deine ganzen Beiträge mit "Zur Lösung beigetragen" abhaken. Hab ein gutes Gefühl dabei.
Member: Doskias
Doskias Dec 04, 2014 updated at 14:49:31 (UTC)
Goto Top
Ich hasse spontane Änderungen.

Jetzt soll es so sein, dass Gruppe B ebenfalls lokal Java (faktisch deaktiviert sein soll) und die Plugins funktionieren sollen. Siehst du über die deployment.properties eine Möglichkeit Java so einzustellen, dass es faktisch deaktiviert ist (extrem stark eingeschränkte Berechtigungen für die lokale Umgebung, außerhalb des Browsers)?

Ich hatte es im ersten Beitrag ja schon geschrieben, damals war es aber nur "wünschenswert", jetzt sieht der Kunde es allerdings als "erforderlich" an.
Member: colinardo
colinardo Dec 04, 2014 updated at 14:58:15 (UTC)
Goto Top
Zitat von @Doskias:
Jetzt soll es so sein, dass Gruppe B ebenfalls lokal Java (faktisch deaktiviert sein soll) und die Plugins funktionieren sollen.
Siehst du über die deployment.properties eine Möglichkeit Java so einzustellen, dass es faktisch deaktiviert ist (extrem
stark eingeschränkte Berechtigungen für die lokale Umgebung, außerhalb des Browsers)?

IMHO no .

Ihr solltet vielleicht mal über Application Sandboxing (z.B. Thinapp) nachdenken.
Member: Doskias
Doskias Dec 04, 2014 at 15:11:03 (UTC)
Goto Top
In der Umgebung wird Citrix-Provising eingesetzt. Deswegen wollen wir ja möglich nur einen Server installieren und den dann Clonen, und die Java-Einstellung per GPO kontrollieren. Das Propertie-kopieren wäre da gut gewesen. So wie es jedoch aktuell aussieht werden wr uns an der Stelle von der 1-Server-Lösung verbaschieden müssen.