SmartAcess是思杰云桌面在通过Netscaler访问的情况下,匹配一些条件时才能访问指定桌面云资源的一种功能。例如:只能在A网段才能访问一个交付组,在其他网段不能访问。如果客户端是以其他的网段的IP地址访问的,那么出现的StoreFront界面中将不显示配置过SmartAccess的交付组。


配置SmartAcess,首先要做的一些配置: Netscaler上: 找到你选择的Gateway Virtual Servers,进行编辑。 在最上方有一个Basic Settings,点击右方的铅笔图案。 再点More 下方ICA Only不能选。注意是不能选

在Dc上: 进入DC服务器,打开powershell,依次输入如下的命令:

asnp citrix*
Set-BrokerSite -TrustRequestsSentToTheXmlServicePort $true

在StoreFront服务器上: 在配置StoreFront的控制台中: 如上图,填好箭头处的网址,内容为gateway的fqdn。


准备工作完成了,接下来开始配置策略。策略为Netscaler的Session Policy。 配置路径在:Citrix Gateway / Policies / Citrix Gateway Session Policies and Profiles / Session Policies

配置界面默认包含两条策略,一条是网页访问gateway,一条是receiver访问。 我现在要加一条策略。 如上图,我加了一条策略。策略包括:name,profile,expression三个部分。 name就是策略名,没有格式要求,看得懂就行。 profile中设定着命中这条策略之后所做的操作。在我演示的配置中,命中就进storefront了,所以用的就是现有的profile。 expression是命中的表达式。有citrix自己的写法(不同版本的netscaler还不一样。)可以用右边的编辑器生成。 例如我的这个条件表达式为:CLIENT.IP.SRC.BETWEEN(192.1.31.1,192.1.31.254) 也就是31网段的意思。

好,接下来开始应用策略。 还是进入到Gateway Virtual Server。 在下方有一个Polices的选项,我要加的是session policies。 如上图,可以通过add binding加上前面配置的policy。这里还需要注意priority(优先级)。数字越小的策略优先匹配。一旦匹配就按此policy的对应的profile操作,不会再去对比下一条。


在DDC的交付组中配置:

在编辑交付组中,访问策略如上图配置。注意场和过滤器的写法。 场为Gateway Virtual Server的配置名: 也就是红框部分。 过滤器就是session policy的名称(name)。一定要让客户端命中过滤器的策略才能在storefront中显示这个交付组。否则交付组会看不到。 例如你将新的policy的优先级设成120,在默认的100,110之下,那么跟据默认策略的特性,会优先配置110策略,也就不会匹配120的策略了,就算条件满足也不会在storefront中出现。


高级表达式

有一些表达式在编辑器里没有,需要到官网去查一下写法 高级表达式格式: https://docs.citrix.com/en-us/citrix-adc/current-release/appexpert/policies-and-expressions/advanced-policy-exp-evaluation-text/basic-text-operations.html 返回数据类型: https://developer-docs.citrix.com/projects/netscaler-advanced-policy-expression-reference/en/12.0/mac_address_at/mac_address_at/

例如用户端的MAC地址作为policy的限制,写法如下: CLIENT.ETHER.SRCMAC.EQ(11:22:33:44:55:66) || CLIENT.ETHER.SRCMAC.EQ(11:22:33:44:55:67)

CLIENT.ETHER.SRCMAC.GET1.EQ(0x00) && CLIENT.ETHER.SRCMAC.GET2.EQ(0x50)

这是一些例子