Citrix Receiver for Web: Google deaktiviert NPAPI für Chrome

Aus Sicherheitsgründen stellt Google den Support für das Netscape Plugin Application Programming Interface (kurz: NPAPI) für Chrome im April 2015 teilweise ein.

Weil Citrix über genau diese Plugin-Architektur den Citrix Receiver als Standardapplikation für ICA-Dateien in Browsern hinterlegt und anspricht, hat diese Maßnahme die folgenden Auswirkungen auf alle Anwender, die den Receiver for Web mit Chrome verwenden:

  1. Die Anwender werden jedesmal dazu aufgefordert, den Citrix Receiver zu installieren, wenn sie eine Receiver for Web Seite aufrufen.
  2. Wenn Anwender eine Anwendung starten, wird eine ICA-Datei gespeichert, die explizit geöffnet werden muss, um eine ICA-Sitzung zu starten.
  3. Workspace Control wird unter Windows deaktiviert.

Die folgenden Workarounds werden seitens Citrix im ursprünglichen Post in den Citrix-Blogs angeboten:

  1. Bis September 2015 (erst dann wird NPAPI in Chrome vollständig abgeschaltet) kann NPAPI manuell wieder aktiviert werden, wie in dem folgenden Chromium-Guide beschrieben wird:
    NPAPI deprecation: developer guide
  2. Deaktivieren von Chrome Auto Updates, was natürlich Sicherheitslücken zur Folge haben kann!
  3. Scriptbasierte Anpassungen am Receiver for Web:

Die Aufforderung zum Client-Download für Chrome deaktivieren:

Hinzufügen des folgenden Codes in der Datei “custom.script.js” unter C:\inetpub\wwwroot\Citrix\StoreWeb\contrib (Pfad ist abhängig von der IIS-Konfiguration und dem bei der StoreFront Konfiguration angelegten Namen für den Store):

$(document).ready(function () {
function endPluginAssistant() {
CTXS.setCookie(CTXS.COOKIE_PLUGIN_ASSISTANT_STATE, CTXS.PLUGIN_ASSISTANT_DONE);
if (CTXS.getCookie(CTXS.COOKIE_PLUGIN_ASSISTANT_STATE) === null) {
CTXS.displayTemplate(“CookiesAreDisabled”);
} else {
CTXS.Application.displaySpinner();
CTXS.Events.publish(CTXS.Events.pluginAssistant.done);
}
};
var origInit = CTXS.PluginDetection.init;
CTXS.PluginDetection.init = function() {
if (CTXS.ClientInfo.isChrome()) {
endPluginAssistant();
return;
}

origInit();
}
});

Einen permanenten Download-Link für den Citrix Receiver in Chrome erzeugen:

Hinzufügen des folgenden Codes in der Datei “custom.script.js” unter “C:\inetpub\wwwroot\Citrix\<StoreName>Web\contrib”:

$(document).ready(function () {
$.ctxs.ctxsUserMenu.prototype._origGenerateDropDownMenu = $.ctxs.ctxsUserMenu.prototype._generateDropDownMenu;
$.ctxs.ctxsUserMenu.prototype._generateDropDownMenu = function(ddMenu) {
var self = this;
var $mBody = ddMenu.children(“.usermenu-body”);
if (CTXS.ClientInfo.isChrome() && (CTXS.ClientInfo.isWindows() || CTXS.ClientInfo.isMacOSX())) {
var clientUrl = CTXS.ClientInfo.isWindows() ? CTXS.Config.pluginAssistant.win32.path : CTXS.Config.pluginAssistant.macOS.path;
$mBody.append(‘<a id=”userdetails-downloadreceiver” class=”_ctxstxt_DownloadReceiver _ctxstip_DownloadReceiverToolTip” href=”{0}” role=”menuitem”></a>’.format(clientUrl));
}
self._origGenerateDropDownMenu(ddMenu);
};
});

Abhängig von der verwendeten Sprache ist noch die Datei “custom.wstrings.<language>.js” anzupassen:

DownloadReceiver: ‘Install Receiver’,
DownloadReceiverToolTip: ‘Install Receiver on your desktop’,

Mit deutscher Lokalisierung könnte dies dann folgendermaßen aussehen:

Citrix Receiver

Workspace Control unter Chrome für Windows wieder aktivieren:

Hinzufügen des folgenden Codes in der Datei “custom.script.js” unter “C:\inetpub\wwwroot\Citrix\<StoreName>Web\contrib”:

$(document).ready(function () {
var origIsAllowed = CTXS.WorkspaceControl.isAllowed;
CTXS.WorkspaceControl.isAllowed = function() {
if (CTXS.ClientInfo.isChrome()) {
return (CTXS.Config.userInterface.workspaceControl.enabled && ! CTXS.resources.isUnauthenticatedStore);
} else {
return origIsAllowed();
}
};

CTXS.WorkspaceControl.isSessionReconnectAllowed = function() {
var userHasAppsInStore = (CTXS.resources.numStoreResources > 0);
var appsAreShownToUser = (CTXS.Config.userInterface.uiViews.showAppsView == ‘true’);
var workspaceControlEnabled = CTXS.WorkspaceControl.isAllowed();

return workspaceControlEnabled && userHasAppsInStore && appsAreShownToUser;
};

var origIsAutoSessionReconnectAllowed = CTXS.WorkspaceControl.isAutoSessionReconnectAllowed;
CTXS.WorkspaceControl.isAutoSessionReconnectAllowed = function() {
if (CTXS.ClientInfo.isChrome()) {
var autoReconnectConfigured = CTXS.Config.userInterface.workspaceControl.autoReconnectAtLogon === ‘true’,
generalSessionReconnectAllowed = CTXS.WorkspaceControl.isSessionReconnectAllowed(),
allowedByAppShortcuts = !CTXS.AppShortcuts.isAppShortcutLaunch() ||
CTXS.Config.userInterface.appShortcuts.allowSessionReconnect === ‘true’,
desktopAutoLaunch = CTXS.Resources.autoLaunchSingleDesktop();

return autoReconnectConfigured && generalSessionReconnectAllowed &&
allowedByAppShortcuts && !desktopAutoLaunch;
} else {
return origIsAutoSessionReconnectAllowed();
}
};
});

Den Citrix Receiver verwenden um ICA-Dateien automatisch zu öffnen:

Nach dem Herunterladen der ICA-Datei kann mit einem Rechtsklick auf diese festgelegt werden, dass Dateien diesen Typs immer automatisch geöffnet werden.

Gerne unterstützen Sie die Spezialisten der CEMA beim Customizing des Receiver for Web und natürlich werden wir Sie informieren, sobald Citrix eine dauerhafte Lösung präsentiert.

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.