完成了前面两篇文章之后,我们的多租户托管Exchange已经有了一些样子,但这还远远不够,我们还需要进一步的配置详细的地址列表权限,以免租户A的用户看到租户B的地址列表。
PS.今天这一篇与下一篇的内容可能有些枯燥,但为了多租户就拼了!
首先,我们需要在AD用户和计算机中确保我们的租户OU以及租户OU下的用户已经成功的被分配到租户的用户组。由于环境出了点问题,这两篇文章大家会看到租户A、租户B,也会看到租户1\租户2\租户3,但原理还是一样的。
建立某个租户的用户组。
把某个租户OU下的用户全部加到相应租户的用户组中。
添加到对应的租户用户组。
检查租户用户组下的成员。
OK,打开ADSI编辑器,准备开搞,连接到配置分区。
定位到Configuration-Services-Microsoft Exchange-域名-Address List Container,然后右键某个租户地址列表的属性,这里就以A租户为例。(注意是某个租户的全局地址列表,并非系统自建的默认全局地址列表)
首先,我们选择everyone,把权限全部去掉。
然后把Authenticated users的权限全部取消掉。
然后单击高级进去高级界面,单击高级权限设置界面的添加。
选择主体为A租户用户组。
并参考以下进行设置。
接下来,更改主体为B租户用户组,把类型改为拒绝,以及修改应用于为 这个对象及全部后代,权限设置参考下图。
回到高级安全设置,可以看到B租户的拒绝条目已经添加进去了。
返回到A租户地址列不属性界面,确保A租户用户组具备读取和打开地址列表权限。B租户用户组则确认具备拒绝权限。
然后我们再打开默认全局地址列表,设置Authenticated Users的权限为空,即所有用户均无法看到默认的全局地址列表。
之所以枯燥,是因为我们要套用此方法,把所有的地址列表都做相应的修改,并且包括创建的地址列表、会议室地址列表等。
规则很简单,就是把应该A租户看到的地址列表,一律把A租户用户组的权限设置为可以打开及读取并应用到该租户用户组的所有对象及后代;对应的,也需要把B租户用户组的权限设置为拒绝并应用到所有对象及后代。
这样完成之后,A租户就只能看到A租户的地址列表、B租户就只能看到B租户的地址列表,虽然方法土了一点,但目前我确实还没想到更好的方法,只是估计大规模应用的时候应该能够通过脚本、PS1之类的快速配置。