SharePoint 2013 User Profile Services之跨场发布
在之前博客中已经描述了User Profile的两种配置场景,这篇博客将详细介绍微软官方推荐的配置方法。
测试环境的架构可以参考之前的博客内容,这里就不做介绍了,直接切入主题。
1. 在sp-farm1中创建User Profile Services服务应用程序。创建的过程因为不是这篇博客的重点就不做过多描述。
2. 配置AD的连接器,将contoso.com中需要加入网站的用户,全部同步到User Profile中,在同步之前需要确认user Profile同步服务是否启动,如果没有启动,将这个服务启动,这个启动过程会比较慢,启动的要看机器的性能,请耐心等待。
3. 配置个人网站,可参考http://technet.microsoft.com/zh-cn/library/ee624362.aspx,如果你还是看不明白,那你可以使用向导的方式添加User Profile Services。这样我的网站功能自动就会被创建了。
4.配置其他场与User Profile Services场的互相信任。微软官方叫这两个场为 PublishingFarm(发布场)和ConsumingFarm(消费场),我看到所有的相关的内容中也都用这个名字,索性我也用这名字来称呼它们,免得弄混。我的发布场是sp-farm1,消费场是sp-farm2。
5.在配置互相信任之前,需要将两个场的证书导出。使用下面的PowerShell 命令分别在两个场中导出证书。在运行所有PowerShell命令完成时,都不要关闭PowerShell窗口,因为很多变量会多次引用。
a. 在消费场中运行
$rootCert = (Get-SPCertificateAuthority).RootCertificate
$rootCert.Export("Cert") | Set-Content <C:\ConsumingFarmRoot.cer> -Encoding byte
$stsCert = (Get-SPSecurityTokenServiceConfig).LocalLoginProvider.SigningCertificate
$stsCert.Export("Cert") | Set-Content <C:\ConsumingFarmSTS.cer> -Encoding byte
b.在发布场中运行
$rootCert = (Get-SPCertificateAuthority).RootCertificate
$rootCert.Export("Cert") | Set-Content <C:\PublishingFarmRoot.cer> -Encoding byte
6. 将消费场中导出到证书文件拷贝到发布场中,同时将发布场中的证书拷贝到消费场中。我建议大家使用剪切的方式,免得文件同时在一个目录下的时候会搞混。我第一次配置的时候没成功,可能就是因为证书弄混了。
7. 确认所有证书的正确性,是否正确的复制了证书。然后就需要配置服务场的信任关系了。
a.在消费场中运行,其中 "sp-farm1"这个名字,叫什么都可以,只要能区分出来这是什么。
$trustCert = Get-PfxCertificate "C:\PublishingFarmRoot.cer"
New-SPTrustedRootAuthority "sp-farm1" -Certificate $trustCert
b.在发布场中运行
$trustCert = Get-PfxCertificate <C:\ConsumingFarmRoot.cer>
New-SPTrustedRootAuthority "sp-farm2" -Certificate $trustCert
$stsCert = Get-PfxCertificate <c:\ConsumingFarmSTS.cer>
New-SPTrustedServiceTokenIssuer "sp-farm2" -Certificate $stsCert
$farmid = "<guid>"; #farmid是要消费场中运行PowerShell "Get-SPFarm | Select Id"可以取到。
$security = Get-SPTopologyServiceApplication | Get-SPServiceApplicationSecurity
$claimProvider = (Get-SPClaimProvider System).ClaimProvider
$principal = New-SPClaimsPrincipal -ClaimType http://schemas.microsoft.com/sharepoint/2009/08/claims/farmid -ClaimProvider $claimProvider -ClaimValue $farmid
Grant-SPObjectSecurity -Identity $security -Principal $principal -Rights "完全控制"
Get-SPTopologyServiceApplication | Set-SPServiceApplicationSecurity -ObjectSecurity $security
8. 到目前为止,我们配置服务器的互相信任,并为消费场设置了应用程序的控制权限。但要是实现关注功能,还是在做一些Power Shell命令
a. 在发布场中运行以下命令,其中realm是为了给发布场配置一个别名,也只能这么理解了。那一串00000003……的guid是固定值,不能变。
Set-SPAuthenticationRealm -realm "myrealm"
$sts=Get-SPSecurityTokenServiceConfig
$Realm=Get-SpAuthenticationRealm
$nameId = "00000003-0000-0ff1-ce00-000000000000@$Realm"
Write-Host "Setting STS NameId to $nameId"
$sts.NameIdentifier = $nameId
$sts.Update()
$c = Get-SPSecurityTokenServiceConfig
$c.AllowMetadataOverHttp = $true #needed if you are not using ssl
$c.AllowOAuthOverHttp=$true #needed if you are not using ssl
$c.Update()
iisreset
b. 在消费场中同样要执行一段类似的PowerShell
Set-SPAuthenticationRealm -realm "myrealm"
$sts=Get-SPSecurityTokenServiceConfig
$Realm=Get-SpAuthenticationRealm
$nameId = "00000003-0000-0ff1-ce00-000000000000@$Realm"
Write-Host "Setting STS NameId to $nameId"
$sts.NameIdentifier = $nameId
$sts.Update()
$c = Get-SPSecurityTokenServiceConfig
$c.AllowMetadataOverHttp = $true #needed if you are not using ssl
$c.AllowOAuthOverHttp=$true #needed if you are not using ssl
$c.Update()
iisreset
9.到这里还没有结束,因为在2013这个版本中,SharePoint使用OAuth协议,所以我们需要配置以下OAuth的信任节点。如果你配置过SharePoint 2013和Exchange2013,lync 2013的信任,对这个一定不陌生,话说之前配置 SharePoint网站邮箱时,也把我折磨的够呛啊。
a. 在消费场运行以下PowerShell命令。
New-SPTrustedSecurityTokenIssuer –MetadataEndpoint "http://sp-farm1/_layouts/15/metadata/json/1" –Name "sp-farm1.contoso.com" -RegisteredIssuerName $nameId
执行完成时输入个Y直接运行就ok。
b. 在发布场运行
New-SPTrustedSecurityTokenIssuer –MetadataEndpoint "http://sp-farm2/_layouts/15/metadata/json/1" –Name "sp-farm2.contoso.com" -RegisteredIssuerName $nameId
同样输入一个Y。
运行完成后,PowerShell命令就执行到此为止了。接下来要做的就是发布User Profile Services。
10. 通过管理中心进入到管理服务应用程序,找到user Profile Services,选中。确认选中后在Ribbon菜单中点击“发布”
11. 在弹出窗口中,选中“向其他场发布此服务应用程序”,这里就会看到说要不这个应用程序一定要做户型信任。点击这个链接就可以看到之前用PowerShell添加的服务器名称了。要是没有证明你PowerShell执行的不正确。
拷贝“发布的URL”那一串地址到一个txt文件,一会你会用的到。然后点击确定。
12. 发布已经完成了,接下来就是要在消费场中添加一个User Profile Services的链接了。打开消费场的管理中心,同样进入到管理服务应用程序页面。
点击ribbon上的连接。找到User Profile Services。
13. 在弹出窗口中输入之前拷贝出来的那一长串URL地址。就是发布出来User Profile Servies的地址,输入完以后点击确定。这个地方,可能会有些反应迟钝,点完以后没啥反应,别急等一会就好了。点完以后还会有一个确认画面,在那个画面中也会有一个确定要点一下,不过你会发现那个按钮是灰的根本点不了,这个时候你只要点一下页面中的User Profile Services的那个链接地址一下,就可以点确定。(我是没找到原因为什么要这样)。到这里User Profile Services的发布就完成了。
14. 我们需要注意一点,在没有User Profile Services的服务时,用户登录网站时(见图),新闻源,SkyDrive Pro,网站 是没有地。只有提供User Profile服务才会出现。
15. 到这里基本配置已经完成了,但你会发现你的消费场里,为啥还看不到 “新闻源、SkyDrive Pro”这些东西呢,原因是你需要在发布场中运行一下 用户配置文件同步。同步完成以后就会有了。用户登录以后点击新闻源就会跳转到发布场也就是sp-farm1场中创建个人站点。同样其他场要想使用User Profile Services需要使用同样的操作在来一遍。到此为止我们已将微软官方推荐的User Profile 服务配置完成了, 整个企业环境内就提供了一个 User Profile Services 实现了用户信息的统一管理。但你别高兴的太早。你点一下网站或文档的关注看一下。针对用户的关注是没有问题地,因为所有用户都在同一个场里,但你关注网站和文档的时候就会报错。因为他们不在一个场里。错误信息全部都是数据库报出来的,这也是我通过SharePoint Log文件中得到的信息,所以就开始针对数据库动手了。
16. 首先需要将消费场中的系统账户,添加到发布场中3个User Profile的数据库中并赋予Owner的权限。这一步很关键,如果不做这一步,关注功能就没戏了,当然如果你的两个场使用的同一个系统账户,那就没问题了。实际生产环境中基本也不会用同一个。
17. 需要在发布场防火墙中开启1433的端口,如果你的数据库端口换了,就开启你换的那个。推荐在生产环境中,更换1433的端口。
知道这里才算是大功告成。
找个用户点一下消费场的网站关注功能看看。如果能像图中标注那样,那证明你成功了。如果还有错误,你可以发邮件给我。我帮你分析下原因。
后面的一篇blog将介绍多个场中都有User Profile Services情况下将如何设置。当然如果你能根据这篇内容就配置出来第二个场景来,说明你已经清楚了跨场发布都在干些什么了。
参考文献
http://technet.microsoft.com/ZH-CN/library/ee704552.aspx
http://technet.microsoft.com/ZH-CN/library/ee704545.aspx
http://technet.microsoft.com/ZH-CN/library/ff700211.aspx
http://technet.microsoft.com/ZH-CN/library/jj992595.aspx
SharePoint 2013 User Profile Services之跨场发布的更多相关文章
- SharePoint 2013 User Profile Services之跨场设置
这段时间有个客户需要在不同SharePoint场中使用网站.文档和用户关注功能.但实际使用中发现默认的关注功能不能跨场使用,这也引出了我接下来的博客,我将在博客中详细描述整个过程. 因为“关注”功能是 ...
- SharePoint 2013 配置Excel Services
前言:本文主要介绍如何启用SharePoint 2013版本Excel Services服务,并配置Excel Web Access部件,使Excel文档可以显示在Web页面中. 简单说一下流程,Sh ...
- SharePoint 2013 Excel Services ECMAScript 示例之明日限行
前言:最近遇到一个“明日限行”的功能,北京的交通啊,这个不在今天讨论范围内,暂不吐槽,想想代码开发,还要写WebPart部署,很麻烦,而且部署服务器,需要领导审批,想绕过这个麻烦事儿,就想到客户端了, ...
- sharepoint 2013 reporting services 远程server返回错误: (500) 内部server错误。
在sharepoint 2013部署reporting services过程中,点击管理中心,server上的服务.系统配置.提示了一个错误: 远程server返回错误: (500) 内部server ...
- SharePoint 2013 入门教程
以下文章是自己在学习SharePoint的过程中,不断积累和总结的博文,现在总结一个目录,分享给大家.这个博客也是自己从SharePoint入门,到一个SharePoint开发的成长记录,里面记录的都 ...
- SharePoint 2013 入门教程--系列文章
转:http://www.cnblogs.com/jianyus/p/3381415.html 以下文章是自己在学习SharePoint的过程中,不断积累和总结的博文,现在总结一个目录,分享给大家.这 ...
- SharePoint 2013 入门教程 [不断更新~]
以下文章是自己在学习SharePoint的过程中,不断积累和总结的博文,现在总结一个目录,分享给大家.这个博客也是自己从SharePoint入门,到一个SharePoint开发的成长记录,里面记录的都 ...
- 在 SharePoint 2013 中针对地理位置字段创建地图视图
在 SharePoint 2013 中针对地理位置字段创建地图视图 了解如何通过在 SharePoint 2013 列表中使用地图视图来显示位置信息.您可以通过 SharePoint 用户界面 (UI ...
- 关于SharePoint 2013 UserProfile跨场的几点注意
1.跨场中需要以下几个Service实例,没有这几个会遇到各种问题 2.发布场和消费场同时需要创建Host站点,否则消费场的SiteFeed无法使用. 3.跨场关注的问题请参考:http://www. ...
随机推荐
- VS2015 Enterprise 安装之惊险及收获
前言 园子早早的就有人安装了VS 2015,自己也按捺不住了,也要赶快尝尝鲜!结果在其安装过程中一个小小的问题却困扰了我一天,这其中多亏了dudu耐心的解答才得以顺利完成,如果你也遇见这个问题,看过这 ...
- 关于SubSonic3.0插件使用SqlQuery或Select查询时产生的System.NullReferenceException异常修复
早上在编写执行用例时,突然爆异常System.NullReferenceException: 未将对象引用设置到对象的实例 执行代码:
- How to make a not-so-boring speech?
For almost 26 years, even a trivial boy like me, have made over 100 and listened uncountable speeche ...
- Word基础
1.页面设置 默认大小A4,长宽比0.618 页面布局 2.字体设置 选择要设置的字体->右键->字体 3.选择性粘贴 4.段落设置 选择文字->右键->段落 5.表格 =SU ...
- Dean-Edward的事件系统实现
jQuery早期的事件系统,主要借鉴自Dean-Edward的事件模型.虽说早期的该事件模型也有些许bug,诸如: 1,绑定的事件及其处理程序等数据并未存储到缓存中,而是直接存储在dom元素上,这样不 ...
- ZOJ Problem Set - 1045 HangOver
#include <stdio.h> int main() { float c; int i; while(scanf("%f",&c)!=EOF&&a ...
- Openfire 4.1.0
http://www.igniterealtime.org/downloads/index.jsp 服务器端口 接口 端口 类型 描述 所有的地址 5222 客户端到服务器 客户端使用标准端口连接 ...
- Android Lint Checks
Android Lint Checks Here are the current list of checks that lint performs as of Android Studio 2.3 ...
- jQuery仿阿里云购买选择购买时间长度
效果:http://hovertree.com/texiao/jquery/61/ jQuery仿阿里云购买服务器选择时间长度,操作简单,只需点击所要选的时间段 代码: <!doctype ht ...
- Ehcache 缓存使用
在开发高并发量,高性能的网站应用系统时,缓存Cache起到了非常重要的作用.本文主要介绍EHCache的使用,以及使用EHCache的实践经验. 笔者使用过多种基于Java的开源Cache组件,其中包 ...





