我使用Citrix的示例代碼作爲基礎,並試圖讓它生成引導客戶端使用其安全網關(CSG)提供程序的ICA文件。我的配置是將ICA文件的服務器地址替換爲CSG票據,並且流量被強制轉至CSG。如何將Citrix網站編碼爲使用安全網關(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 Forums發現;然而,它打破了我與農場連接並獲得我的應用程序列表的能力!
有人能告訴我一個有用的代碼示例嗎?還是參考文件?