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. ...
随机推荐
- jQuery源码分析系列(36) : Ajax - 类型转化器
什么是类型转化器? jQuery支持不同格式的数据返回形式,比如dataType为 xml, json,jsonp,script, or html 但是浏览器的XMLHttpRequest对象对数据的 ...
- JAVA--继承
项目开发遇到一个问题,稀里糊涂给实现了,现在重点讨论一下这是个什么情况,大神们如果看到希望给点指点. 问题:子类与父类具有相同的属性和方法,将子类实例化为父类,调用对应属性的get.set方法,打印出 ...
- spring整合hibernate的详细步骤
Spring整合hibernate需要整合些什么? 由IOC容器来生成hibernate的sessionFactory. 让hibernate使用spring的声明式事务 整合步骤: 加入hibern ...
- TSQL查询45道题
一.设有一数据库,包括四个表:学生表(Student).课程表(Course).成绩表(Score)以及教师信息表(Teacher). 四个表的结构分别如表1-1的表(一)~表(四)所示,数据如表1- ...
- SQL Server SQL性能优化之--pivot行列转换减少扫描计数优化查询语句
原文出处:http://www.cnblogs.com/wy123/p/5933734.html 先看常用的一种表结构设计方式: 那么可能会遇到一种典型的查询方式,主子表关联,查询子表中的某些(或者全 ...
- jQuery-1.9.1源码分析系列(十) 事件系统——主动触发事件和模拟冒泡处理
发现一个小点,先前没有注意的 stopPropagation: function() { var e = this.originalEvent; ... if ( e.stopPropagation ...
- CSS魔法堂:重拾Border之——不仅仅是圆角
前言 当CSS3推出border-radius属性时我们是那么欣喜若狂啊,一想到终于不用再添加额外元素来模拟圆角了,但发现border-radius还分水平半径和垂直半径,然后又发现border-t ...
- [Web API] Web API 2 深入系列(4) Action的选择
目录 ApiController HttpActionDescriptor IHttpActionSelector ApiController 在上节中,讲到如何选择并激活对应的IHttpContro ...
- 迷惑很久,仅以个人想法谈谈MVC架构,希望大家多给点意见
博主是非科班出身,所以和大部分新手有着一样的困惑,究竟什么才能算是MVC框架,总是在谈Model,View,Controller分离,可是究竟什么才能算是分离,而他们又是负责什么样的分工呢. 大二的时 ...
- VS2012 C#使用/配置Log4Net
最近悟出来一个道理,在这儿分享给大家:学历代表你的过去,能力代表你的现在,学习代表你的将来. 十年河东十年河西,莫欺少年穷 学无止境,精益求精 本节探讨如何在VS2012中使用Log4Net 1. ...





