当用户单击链接启动应用程序时,为该应用程序配置的登录脚本将连接至应用服务器,处理验证过程并启动应用程序。
执行协议引擎是运行登录脚本的 SGD 组件。登录脚本通过提交 SGD 应用服务器密码缓存中存储的用户名和密码来对用户进行应用服务器验证。如果用户凭证有问题,SGD 将显示应用程序验证对话框,如下所示:
应用程序验证对话框允许用户输入他们的凭证并将其存储在应用服务器密码缓存中,以便下一次他们在该应用服务器上运行应用程序时不再收到提示。
用户也可以通过在 Webtop 上单击应用程序链接时按住 Shift 键,强制 SGD 显示应用程序验证对话框。
本节包括以下主题:
SGD 使用登录脚本处理与应用服务器的连接、运行应用程序以及执行其他任务。
通常,登录脚本执行以下任务:
登录到应用服务器,需要时提示用户输入密码。
设置环境变量。这些是应用程序对象 "Launch"(启动)选项卡上的 "Environment Variables"(环境变量)属性指定的变量。
启动任何窗口管理器程序。这些是应用程序对象 "Presentation"(表示)选项卡上的 "Window Manager"(窗口管理器)属性指定的程序。
需要输入方法时,启动一种输入方法(仅限 UNIX 平台应用程序)。
运行命令以启动应用程序。
登录脚本考虑应用服务器之间的差异,并检查登录过程中可能发生的任何错误。如果遇到无法处理的错误,则会将控制传回给用户。
SGD 登录脚本设计为尽可能的通用和强大。但是,您可能需要处理不常见的情况。例如,如果具有未处理的系统提示,则可以将其添加到脚本识别的提示列表中。
SGD 随附的登录脚本还包含可用于定制应用程序验证对话框的显示的命令和过程,例如通过为 "Username"(用户名)和 "Password"(密码)字段添加您自己的标签。
如果需要定制登录脚本,请复制 SGD 登录脚本,然后处理该副本。请勿修改标准的 SGD 登录脚本。附录 E, 登录脚本中包含有关 SGD 登录脚本的详细参考信息。
在管理控制台中,"Global Settings"(全局设置)→ "Application Authentication"(应用程序验证)选项卡上的属性可控制应用程序验证。这些属性允许您配置以下内容:
如果缓存了用户的 SGD 用户名和密码详细信息,则登录到应用服务器时是否自动尝试这些信息
用户的应用服务器密码过期时应该采取的措施
是否使用智能卡登录到 Microsoft Windows 应用服务器
何时显示应用程序验证对话框、该对话框上的默认设置是什么以及是否允许用户更改这些设置
默认情况下,SGD 将用于运行应用程序的用户名和密码存储在其应用服务器密码缓存中。SGD 还存储用于登录 SGD 的用户名和密码。
如果用户通过第三方验证进行验证,则 SGD 无法存储用于登录 SGD 的用户名和密码。
对于 Windows 应用程序,由远程桌面会话主机处理验证过程。不会向 SGD 返回信息以指示验证是成功还是失败,以及保留在 SGD 密码缓存中的详细信息是否正确。
在管理控制台中,可以管理应用服务器密码缓存,如下所述:
"Caches"(缓存)→ "Passwords"(密码)选项卡-此选项卡允许您管理密码缓存中的所有项
用户配置文件对象的 "Passwords"(密码)选项卡-此选项卡允许您管理选定用户配置文件的密码缓存项
应用服务器对象的 "Passwords"(密码)选项卡-此选项卡允许您管理选定应用服务器的密码缓存项
动态应用服务器对象的 "Passwords"(密码)选项卡-此选项卡允许您管理选定动态应用服务器的密码缓存项
在命令行中,使用 tarantella passcache 命令系列管理应用服务器密码缓存。
您可以使用管理控制台和密码行列出和删除密码缓存中的项。也可以在密码缓存中创建项。使用 tarantella passcache 命令,可以通过批处理脚本填充密码缓存。
密码缓存中的每项都包含以下元素:
用户名-应用服务器的用户名
密码-应用服务器的密码
资源-为其缓存密码的应用服务器、动态应用服务器或域名
用户身份-“拥有”密码缓存中的项的用户身份
用户的 SGD 密码也可以存储在密码缓存中。
应用服务器密码缓存中的项使用加密密钥进行加密。当启动应用程序时,会根据需要解密密码。
默认情况下,用于密码缓存的加密密钥永远不会更改。您可以配置 SGD 以在 SGD 服务器重新启动时为密码缓存生成新的加密密钥。在管理控制台中,转至 "Global Settings"(全局设置)→ "Security"(安全)选项卡,并选中 "New Password Encryption Key"(新密码加密密钥)复选框。或者,也可以使用以下命令:
$ tarantella config edit --security-newkeyonrestart 1
密码缓存中的现有项将使用新密钥进行重新加密。
当 SGD 缓存用户的 Microsoft Windows 应用服务器密码时,使用 Windows 域名创建密码缓存项。
可以使用应用服务器对象、Windows 应用程序对象或用户配置文件对象上的 "Domain Name"(域名)属性指定域名。用户也可以在应用程序验证对话框上指定域名。
当用户启动应用程序时,SGD 会执行以下过程以建立要使用的域名和密码缓存项:
检查是否已在应用服务器对象上设置域名。
如果设置了域名,SGD 会在密码缓存中搜索该用户身份的项。
如果没有域名,或密码缓存中没有项,则移至步骤 2。
检查是否已在应用程序对象上设置域名。
如果设置了域名,SGD 会在密码缓存中搜索该用户身份的项。
如果没有域名,或密码缓存中没有项,则移至步骤 3。
检查是否已在用户配置文件对象上设置域名。
如果设置了域名,SGD 会在密码缓存中搜索该用户身份的项。
如果没有域名,或者密码缓存中没有项,SGD 将显示应用程序验证对话框。
应用程序验证对话框中包含 "NT Domain"(NT 域)字段,可让用户设置域名。如果为应用服务器或应用程序对象设置了 "Domain Name"(域名)属性,或者在密码缓存中缓存了域,则自动填写该字段。如果仅在用户配置文件对象上设置了 "Domain Name"(域名)属性,则不会填写 "NT Domain"(NT 域)字段。
要在用户首次启动 Windows 应用程序时强制用户指定域,您必须确保用户配置文件对象、应用服务器对象和应用程序对象的 "Domain Name"(域名)属性为空。
如果用户的 SGD 密码也是他们的 Windows 域密码,则在符合以下条件时可以缓存域名和密码:
SGD 必须配置为将用户的 SGD 用户名和密码保存在密码缓存中。SGD 默认执行此操作。
必须在用户配置文件对象上设置 "Domain Name"(域名)属性。
输入方法是允许用户输入其键盘上找不到的字符和符号的程序或操作系统组件。
默认情况下,SGD 针对所有语言环境运行 IM(除了 C 和 POSIX)。
要更改 IM 配置,您可以在 vars.exp
登录脚本中编辑变量。变量如下:
IM_runByDefault
-此变量控制默认情况下是启用 IM(变量设置为 1
)还是禁用 IM(变量设置为 0
)。默认值为 1
。
IM_localeNotList
-如果 IM_runByDefault
设置为 1
,SGD 会针对有所语言环境运行 IM(除了 IM_localeNotList
变量中列出的语言环境)。
IM_localeList
-如果 IM_runByDefault
设置为 0
,则 SGD 仅针对 IM_localeList
变量中列出的语言环境运行 IM。
SGD 使用以下环境变量确定语言环境:TTA_PreferredLocale
、TTA_HostLocale
和 LANG
。请参见第 E.3 节 “登录脚本变量”。
默认情况下,SGD 随附的登录脚本在应用服务器上支持英语系统提示。SGD 管理员可以添加对其他语言的系统提示的支持。
要执行此操作,请编辑 vars.exp
登录脚本并添加定义的每个英语提示的翻译。vars.exp
登录脚本位于 SGD 服务器上的 /opt/tarantella/var/serverresources/expect
目录中。您无需翻译每条提示,只需翻译不同于英语版本的提示即可。文件中包含可帮助您入门的示例。您也可以提供变量、字符串和错误消息部分的翻译,以与客户端或用户语言环境相匹配。
在管理控制台中,配置应用服务器对象的 "General"(常规)选项卡 → "Prompt Locale"(提示语言环境)属性,以与 vars.exp
中定义的语言环境相匹配。
SGD 支持 X 和字符应用程序的 RSA SecurID 验证。
要使用 SecurID 验证,请在引入 SGD 之前确保用户可以登录使用 SecurID 的应用服务器。当准备使用 SecurID 验证时,将应用程序对象配置为使用 securid.exp
登录脚本。
当登录使用 SecurID 验证的应用服务器时,用户输入用户名和密码。当单击 "OK"(确定)时,系统提示用户输入验证码。
在管理控制台中,转至 "Global Settings"(全局设置)→ "Application Authentication"(应用程序验证)选项卡,并取消选中 "Password Cache Usage"(密码缓存的使用情况)复选框。这可防止 SGD 在登录应用服务器时使用 SGD 登录详细信息。
SGD 支持 Windows 应用程序的使用 CredSSP 的网路级别验证 (network level authentication, NLA)。NLA 通过在建立与远程桌面会话主机的连接之前验证用户来提供增强的安全性。
NLA 可以与 Windows 2008 R2、Windows 7 和 Windows 2008 应用服务器一起使用。
要使用 NLA 验证,请配置 Windows 应用程序对象的 "Enhanced Network Security"(增强的网络安全性)(--enhancednetworksecurity
) 属性。
对于 Windows 应用程序,默认情况下启用 "Enhanced Network Security"(增强的网络安全性)。如果禁用此属性,则在进行应用服务器验证时使用 RDP 安全性。
您可以针对远程桌面会话主机强制使用 NLA。例如,在 Windows Server 2008 R2 上,通过在 Computer Configuration\Policies\Administrative Templates\Windows Components\Remote Desktop Services\Remote Desktop Session Host\Security
中使用组策略对象的 "Network Level Authentication"(网路级别验证)设置,启用远程连接的必要用户验证。
当 SGD 配置为从其密码缓存提供应用服务器的密码时,如果 NLA 失败,则会显示警告信息,提示用户使用 Shift 键重新尝试启动。如果 SGD 凭证与远程桌面会话主机凭证不匹配,则 NLA 可能会失败。在按住 Shift 键的同时单击可强制显示应用服务器提示,如第 4.9.7.2 节 “远程桌面会话主机提示用户”中所述。