SharePoint 2010、2013多个域之间互信(Domain Trust)的设计与实施

在现实的业务场景中,有时为了更好的管理域用户和服务。我们往往会创建多个分散式的域,每个域的Administrator专注于维护特定域中的用户和资源,Administrator也可以定义安全策略,比如账号策略等。

场景介绍

现有如下场景,一个二层拓扑的SharePoint Farm包含一台SharePoint Server,DB Server,AD(假设Contoso.com) ,毫无疑问AD Contoso.com承载了SharePoint的身份认证。现需要再加入一台AD(假设为Mintcode.Local),如下图所示:

如上图所示那样,contoso.com与mintcode.local之间建立了单向(One-Way)的外传信任关系,即Contoso.com信任Mintcode.Local。这样Mintcode.local域中用户能被Contoso.com域验证,但Contoso.com域中用户不能被mintcode.local域认证。

理清了业务场景后,接下来就是怎样去实现了。

准备工作

回顾下上述的拓扑图,有如下两台AD域服务器:

Contoso.com的IP 地址:192.168.123.14 Mintcode.local的IP 地址:192.168.16.7

好了,磨刀不误砍柴工,让我们开始实现吧,首先需准备如下工作——

  • 域服务器之间必须有同样的域功能级别(Domain Functional Level),因为承载了SharePoint 身份认证的域服务器已经是域控了,那么另一台AD也必须提升域功能级别为域控。

打开Active Directory域和信任关系à选中Domainà提升域功能级别

  • DNS或者NETBIOS能够互相被解析,即 Ping 域名可以解析成对应的IP 地址或者nslookup域名也可以成功诊断DNS结构信息。要实现这个有3种方式——

1.DNS指向

设置IP地址,使其DNS指向目标服务器,如下所示:

记得刷新DNS解析缓存

2.建立条件转发器

在Contoso.com DNS中新建条件转发器,记得刷新

3.建立辅助区域

3.1.打开mintcode.local(192.168.16.7)DNS

3.2.选中mintcode.localà属性à允许区域传送à只允许到下列服务器

3.3.打开contoso.com(192.168.123.14)DNS

3.4.新建辅助区域

3.5.指定主服务器IP地址

上述3中实现方式,采用任意一种实现方式都行。不管怎样实现,最总的目的都是相同的,能将域名解析成IP地址,如下所示:

建立域之间的信任关系

怎样建立域之间的信任关系,One-Way、Two-Way,微软给了详细的操作步骤(http://technet.microsoft.com/zh-cn/library/cc816837(v=WS.10).aspx)。 按照上述的拓扑图,需要Mintcode.local中的用户能够在Contoso.com域中认证,为此我需要建立一种One-Way的信任,即Contoso.com信任Mintcode.local。 有了上述的准备工作后,让我们来实现One-Way Trust吧,当然你也可以Two-Way,只不过在我的场景中One-Way足矣了。

  • 打开Active Directory域和信任关系à属性à信任选项卡à新建信任
  • 指定信任名称
  • 信任类型为外部信任
  • 信任方向为单向:外传,即指定域的用户可以在这个域中得到身份验证
  • 确定下信任方
  • 输入mintcode.local的用户名和密码
  • 选择身份验证范围
  • 成功创建信任关系
  • 信任创建完毕
  • 确认传出信任
  • 成功创建好了信任关系
  • 创建成功后,在信任选项卡中已成功创建了外向信任mintcode.local
  • 登陆mintcode.local(192.168.16.7),检查下是否已经自动创建了内向信任(contoso.com)

自定义SharePoint PeoplePicker

结束了吗,当然没,可以做的更好,对人员选择器进行搜索的定制,使其在指定的域中抓取人员信息。

在SharePoint Server上键入如下命令行:

微软也给了很好的解释,详见http://technet.microsoft.com/en-us/library/gg602075(v=office.15).aspx

最后记得同步下User Profile Service,在Populate Containers把mintcode.local包含进来(怎样配置UPS,这是个繁琐的事,详见后续文章

小结

根据不同的场景,你可以选择一个或者多个AD域服务器,优势利弊,不做过多分析,根据实际的需求来即可。

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏JAVA高级架构

阿里和vivo面试题目汇集 【文末有福利】

1802
来自专栏FreeBuf

一名代码审计新手的实战经历与感悟

blueCMS介绍 个人认为,作为一个要入门代码审计的人,审计流程应该从简单到困难,逐步提升。因此我建议大家的审计流程为——DVWA——blueCMS——其他小...

4086
来自专栏数据之美

flask 流式响应 RuntimeError: working outside of request context

1、问题 最近要实现这样一个功能:某个 cgi 处理会很耗时,需要把处理的结果实时的反馈给前端,而不能等到后台全完成了再咔一下全扔前端,那样的用户体验谁都没法接...

3737
来自专栏华章科技

Python 开发者的 6 个必备库

无论你是正在使用 Python 进行快速开发,还是在为 Python 桌面应用制作原生 UI ,或者是在优化现有的 Python 代码,以下这些 Python ...

712
来自专栏IT 指南者专栏

指南者博客测试版正式上线,没有域名,只有IP,欢迎访问!

指南者博客访问地址: http://120.79.207.130/ 其实是有域名的,由于没有备案的原因,访问一个月后,基本就不可以访问了,详情如下图。 ? 因...

3688
来自专栏数据之美

玩转 SHELL 脚本之:Shell 命令 Buffer 知多少?

1、问题: 下午有同学问了这么一个问题: tail -n +$(tail -n1 /root/tmp/n) -F /root/tmp/ip.txt 2>...

3876
来自专栏崔庆才的专栏

对你没有看错!不到 10 行代码完成抖音热门视频的爬取!

最近研究了一下抖音的爬虫,目前实现了热门话题和热门音乐下面所有相关视频的爬取,并且我已经将该爬虫打包成了一个 Python 库并发布,名称就叫做 douyin,...

2463
来自专栏一名合格java开发的自我修养

IT咨询顾问:一次吐血的项目救火

  年后的一个合作公司上线了一个子业务系统,对接公司内部的单点系统。我收到该公司的技术咨询:项目启动后没有规律的突然无法登录了,重新启动后,登录一断时间后又无法...

972
来自专栏杨建荣的学习笔记

通过shell脚本添加备库日志 (r9笔记第94天)

今天下午的时候,准备顺手写一个简单的脚本,但是发现很多事情较真起来真是寸步难行。在写脚本的过程中碰到了太多的问题,很多时候感觉像要实现的功能更通用,就得做更多的...

3786
来自专栏小怪聊职场

HTTP|GET 和 POST 区别?网上多数答案都是错的!

33510

扫码关注云+社区

领取腾讯云代金券