我使用 Citrix 的示例代码作为基础,并试图让它生成指示客户端使用其安全网关 (CSG) 提供程序的 ICA 文件。我的配置是,将 ICA 文件的服务器地址替换为 CSG 票证,并强制流量流向 CSG。
挑战在于 Citrix App Server(在 1494 上提供 ICA 会话)和 CSG 都必须通过 Secure Ticket Authority (STA) 进行协调。这意味着我的代码在创建 ICA 文件时需要与 STA 对话,因为 STA 持有 CSG 需要嵌入到 ICA 文件中的票证。令人困惑?当然!但它更安全。
预 CSG 代码如下所示:
AppLaunchInfo launchInfo = (AppLaunchInfo)userContext.launchApp(appID, new AppLaunchParams(ClientType.ICA_30));
ICAFile icaFile = userContext.convertToICAFile(launchInfo, null, null);
我尝试将 SSLEnabled 信息传递给 ICA 生成,但还不够。这是代码:
launchInfo.setSSLEnabled(true);
launchInfo.setSSLAddress(new ServiceAddress("CSG URL", 443));
现在,看起来我需要在配置我的场时注册 STA:
ConnectionRoutingPolicy policy = config.getDMZRoutingPolicy();
policy.getRules().clear();
//Set the Secure Ticketing Authorities (STAs).
STAGroup STAgr = new STAGroup();
STAgr.addSTAURL(@"http://CitrixAppServerURL/scripts/ctxsta.dll");
//creat Secure Gateway conenction
SGConnectionRoute SGRoute = new SGConnectionRoute(@"https://CSGURL");
SGRoute.setUseSessionReliability(false);
SGRoute.setGatewayPort(80);
SGRoute.setTicketAuthorities(STAgr);
// add the SGRoute to the policy
policy.setDefault(SGRoute);
这是基于我在Citrix 论坛上找到的代码;但是,它破坏了我与 Farm 连接并获取我的应用程序列表的能力!
有人可以指出一个有效的代码示例吗?还是参考文件?