桌面会话是一组服务或应用程序,其与验证令牌相关联并由会话管理器控制。桌面会话位于 Sun Ray 服务器上,并可定向至任何 Sun Ray Client 或 Oracle Virtual Desktop Client。从用户的角度来说,桌面会话通常是 OS 桌面的实例。
会话有两种状态,即“已连接”和“已断开连接”:
已连接:状态为“已连接”的所有会话都将显示在客户端中。当用户移除智能卡或将客户端显式切换到其他会话(例如,使用 utswitch 或 utselect 命令)时,会话将自动断开连接。
已断开连接:这些会话仍在服务器上执行,但未连接到客户端,因此也未显示。然而,用户可以重新连接已断开连接的会话,例如,通过将包含有相应令牌的智能卡插入客户端的读卡器中。这会将会话的状态更改为“已连接”并使其显示在该客户端上。
会话可进一步分为两个类别:
空闲会话:这些会话通常仅显示登录屏幕(或登录问候程序,如 dtlogin)而尚无用户登录。这些会话的会话生存期由 Sun Ray 系统控制。例如,已断开连接的空闲会话会在特定时间间隔后由系统自动终止(收回)。
用户会话(或非闲置会话):有 UNIX 用户登录的对话。用户可以在会话中启动其他应用程序,因而会潜在消耗大量的系统资源。因此,相对于空闲会话,管理员对用户会话更感兴趣。要释放系统资源,请监视处于“已断开连接”状态的长时间运行的用户会话数,并在适当的时候终止不再使用的会话。
验证管理器会实施选定的策略,以标识和验证桌面客户端上的用户,同时使用称为模块的可插拔组件来验证用户身份,并实施管理员定义的站点访问策略。对已获得 Sun Ray 服务管理权限的用户所进行的操作,也可通过它来进行审计跟踪。验证管理器对于用户是不可见的。
图 7.1 “验证管理器与会话管理器的交互”展示了验证管理器与客户端之间的交互,其原理如下:
用户访问客户端。
客户端将该用户的令牌信息发送到验证管理器并请求访问。如果用户在客户端中插入智能卡,则该卡的类型和 ID 将用作令牌。如果没有插入智能卡,则该客户端的以太网地址将用作伪令牌。
验证管理器根据系统管理定义的策略接受或拒绝访问请求。
如果接受用户访问请求,验证管理器会指示会话管理器启动 X Windows 会话,其会显示登录屏幕。Oracle Solaris 10 实现使用 dtlogin 显示管理器。Oracle Linux 和 Oracle Solaris 11 实现使用 gdm 显示管理器或 GNOME Display Manager (GDM)。
如果未找到可提供会话的 Sun Ray 服务器(请参见第 2 章 规划 Sun Ray 网络环境),则客户端会针对其子网上的任何验证管理器发送一个广播请求。
会话管理器会与验证管理器进行交互,将服务定向到用户。服务指任何可以直接连接到 Sun Ray Client 的应用程序。此类应用程序可能包括音频、视频、XServer 以及对客户端的设备控制。例如,典型的邮件应用程序不是一项服务,因为它通过 Xserver 访问,而不能直接访问。
会话管理器在服务启动时使用,以管理屏幕的空间,并作为验证管理器的会聚点。
会话管理器通过将服务映射到会话并将相关服务与特定客户端绑定或解除绑定来实现对会话和服务的跟踪。会话管理器只从列于 /etc/opt/SUNWut/auth.permit
文件中的经授权的验证管理器获取验证。
以下序列描述了进程如何启动、结束和重新启动:
用户的令牌通过验证后,验证管理器会确定此令牌是否存在会话。如果不存在会话,验证管理器将要求会话管理器创建一个会话,然后根据管理员采取的验证策略为此会话启动相应的服务。创建会话通常需要为该会话启动 Xserver 进程。
服务启动后,它们通过与会话管理器联系以明确地加入会话。
验证管理器通知会话管理器,与令牌关联的会话将连接到特定的桌面客户端。会话管理器随后通知会话中的每个服务必须直接连接到客户端。
然后,用户可以与会话进行交互。会话管理器调整会话中相互竞争的服务对屏幕空间的控制,并通知它们屏幕空间分配的变更。
当用户移除智能卡、在 NSCM 会话中按下 Shift-Pause 键、对客户端进行关开机循环、或非活动时间长于屏幕锁定闲置超时设置时间间隔时,验证管理器将决定与该令牌关联的会话必须从该客户端断开。验证管理器通知会话管理器,会话管理器再通知会话中的所有服务和任何 USB 设备即将断开。
当用户重新插入智能卡或再次登录以访问 NSCM 会话时,验证管理器会请求会话管理器创建新的临时会话,然后使用该会话验证用户。这称为远程漫游办公验证 (Remote Hotdesk Authentication, RHA)。验证用户后,桌面客户端将直接连接到用户的会话。
RHA 不适用于匿名 Kiosk 模式或令牌读取器。可对 Sun Ray Software 进行配置,以关闭此安全策略功能。
只有当会话的状态更改或添加了其他服务时,才会咨询会话管理器。当用户的令牌不再映射到客户端(例如卡被移除)时,会话管理器会从客户端上断开服务,但服务器上的服务仍处于活动状态。例如,连接到 XServer 的程序仍继续运行,尽管它们的输出是不可见的。会话管理器守护进程必须继续运行。可以使用 ps 命令查找 utsessiond 来验证会话管理器守护进程是否正在运行。
如果验证管理器退出,会话管理器将断开所有已授权的会话,并要求它们进行重新验证。这些服务已断开连接,但是仍处于活动状态。如果会话管理器中断,它会自动重新启动。每个服务都会与会话管理器联系以请求重新连接到特定会话。