SharePoint 2013 开发——Provider-hosted APP准备工作
后续的内容我们来一步一步开发一个SharePoint Porvider-hosted APP,本篇主要介绍一些准备工作。
SharePoint需要一系列步骤包括证书和创建唯一的客户端ID来使用服务器到服务器(STS)的通信协议。使用STS通信协议的APP叫做高信任应用程序,因为APP允许使用用户的访问令牌(access token)来模拟用户身份。STS协议是通用的通信协议,需要临时的access token来访问,被微软的应用广泛使用,如Exchange,Lync等。本地服务器创建的SharePoint provider-hosted app不能像云端那样使用上下文令牌来识别用户身份,高信任应用程序并不是完全信任的应用程序,它必须请求安装它的用户来获取权限。
下面我们就来看看如何做:
1. 创建一个证书。
在SharePoint服务器上打开IIS管理器,选择服务器节点,双击服务器证书。
点击右侧菜单中的创建自签名证书。
为证书取一个好记的名称,我们这里叫HighTrustTest了。
点击确定之后就可以看到我们创建的证书了,右键点击证书选择导出,通常我们导出到Visual Studio的项目文件夹目录,这里还没有创建,先导出到桌面,密码随便起一个,我们这里起abc123。
证书先放这,后面会用。
2. 创建一个相应的.cer文件。
在服务器证书视图中,双击我们之前创建的证书显示证书明细,并选择到详细信息标签页。
点击复制到文件按钮,选择下一步,默认值下一步,重复默认值下一步,在文件名这里,我们起作HighTrustTestCert,下一步,点击完成完成导出。
注意:.pfx文件必须跟Visual Studio在同一个机器,.cer文件必须跟SharePoint 2013在同一个机器。.pfx文件必须部署到你的Web应用程序所在Web服务器。
3. 配置SharePoint 2013上的服务供STS应用程序使用,确保配置了应用程序管理服务和用户配置文件应用程序。
管理中心->应用程序管理->管理服务应用程序,确保用户配置文件应用程序和应用程序管理服务启动了。管理中心->应用程序管理->服务器上的服务,确保用户配置文件服务启动了。
4. 配置SharePoint 2013以使用证书并配置对你的应用程序的信任
a. 在文本编辑器或 Windows PowerShell 编辑器中,启动一个新文件并向其添加下面的行以创建证书对象
$publicCertPath = "C:\HighTrustTestCert.cer"
$certificate = New-Object System.Security.Cryptography.X509Certificates.X509Certificate2($publicCertPath)
b. 添加下面的行以确保 SharePoint 将证书视为根证书颁发机构
New-SPTrustedRootAuthority -Name "HighTrustTestCert" -Certificate $certificate
c. 添加下面的行以获取授权领域的ID
$realm = Get-SPAuthenticationRealm
d. 你的远程 Web 应用程序将使用访问令牌获取对 SharePoint 数据的访问权限。该访问令牌必须是由 SharePoint 信任的令牌颁发者颁发的。在高信任 SharePoint 相关应用程序 中,该证书是令牌颁发者。添加下面的行以 SharePoint 需要的格式构造颁发者 ID:specific_issuer_GUID@realm_GUID。(ID可以用Visual Studio自带的GUID创建工具生成一个,注意要小写)
$specificIssuerId = "ed5182f0-3090-4e83-a58b-9eb145619993"
$fullIssuerIdentifier = $specificIssuerId + '@' + $realm
e. 添加下面的行以将证书注册为受信任的令牌颁发者。-Name 参数必须是唯一的,以便在生产配置中,通常可以使用 GUID 作为部分(或全部)名称,但是在此上下文中,你可以使用友好名称。需要 –IsTrustBroker 开关以确保可以为你开发的所有高信任应用程序使用相同的证书。要立即注册令牌颁发者,需要 iisreset 命令。如果没有该命令,你可能需要等待 24 小时才能注册新的颁发者。
New-SPTrustedSecurityTokenIssuer -Name "High Trust Test Cert" -Certificate $certificate -RegisteredIssuerName $fullIssuerIdentifier -IsTrustBroker
iisreset
f. SharePoint 2013 通常不接受自签名证书。因此当你使用自签名证书进行调试时,请添加下面的行以关闭在远程 Web 应用程序调用到 SharePoint 中时使用的 HTTPS 的 SharePoint 的一般要求。如果未添加,则当远程 Web 应用程序使用自签名证书调用 SharePoint 时,你将收到"403(已禁止)"消息。你将在之后的过程中撤销此步骤。关闭 HTTPS 要求意味着从远程 Web 应用程序到 SharePoint 的请求未加密,但是该证书仍然可以用作访问令牌的受信任的颁发者,这是其在高信任 SharePoint 相关应用程序 中的主要目的。
$serviceConfig = Get-SPSecurityTokenServiceConfig
$serviceConfig.AllowOAuthOverHttp = $true
$serviceConfig.Update()
g. 使用名称 HighTrustConfig-ForDebugOnly.ps1 保存该文件
h. 以管理员身份打开"SharePoint Management Shell",然后使用下面的行运行文件
./HighTrustConfig-ForDebugOnly.ps1
下一篇我们将用Visual Studio进行Provider-hosted APP的开发和部署。
SharePoint 2013 开发——Provider-hosted APP准备工作的更多相关文章
- SharePoint 2013 开发——概述
博客地址:http://blog.csdn.net/FoxDave 近来阅读SharePoint 2013开发一书,带着与大家一起分享其中的内容. 部署场景: 本地部署(On-Premise D ...
- SharePoint 2013 开发——开发自定义操作APP
博客地址:http://blog.csdn.net/FoxDave 自定义操作即我们所说的Ribbon和ECB(Edit Control Block),在SharePoint 2013之前,我们可以 ...
- SharePoint 2013 开发——开发并部署第一个APP
博客地址:http://blog.csdn.net/FoxDave 本篇我们开始对开发APP应用程序进行了解. 本篇基于本地SharePoint环境(如果是Office 365的话会方便许多),需 ...
- SharePoint 2013 开发——APP安全模型
博客地址:http://blog.csdn.net/FoxDave 除非开启了SharePoint网站的匿名访问,否则对于入站的请求,必须要有一个身份验证的过程(Authentication),这个 ...
- SharePoint 2013 开发——SharePoint APP介绍
博客地址:http://blog.csdn.net/FoxDave 新的APP模型让我们能够创建看起来像是SharePoint的一部分的应用程序,但是它完全运行在独立于SharePoint服务器 ...
- SharePoint 2013 开发——APP开发的考虑和建议
博客地址:http://blog.csdn.net/FoxDave 需要考虑的方面: 1. 记得CSOM授予网站集及以下的权限,而场解决方案需要整个场的访问权限. 2. 由于应用程序是彼此完全独立 ...
- SharePoint 2013 开发教程
做了SharePoint有三年了,大家经常会问到,你的SharePoint是怎么学的,想想自己的水平,也不过是初级开发罢了.因为,SharePoint开发需要接触的东西太多了,Windows操作系统. ...
- 系列文章--SharePoint 2013 开发教程
做了SharePoint有三年了,大家经常会问到,你的SharePoint是怎么学的,想想自己的水平,也不过是初级开发罢了.因为,SharePoint开发需要接触的东西太多了,Windows操作系统. ...
- sharepoint 2013 开发环境安装
Sharepoint 介绍 Sharepoint 可以帮助企业用户轻松完成日常工作中诸如文档审批.在线申请等业务流程,同时提供多种接口实现后台业务系统的集成,它将 Office 桌面端应用的优势结合 ...
随机推荐
- QT对话框模式与非模式
QT模态对话框及非模态对话框 非模态对话框(Modeless Dialog)的概念不是模态对话框就是在其没有被关闭之前,用户不能与同一个应用程序的其他窗口进行交互,直到该对话框关闭.对于在模态来显示对 ...
- Python设计模式之单例模式
1.由于语言的特性不同,设计模式的实现方式和实现难度也会不同 2.有的模式已经在语言内置了,比如迭代器模式. 3.单例模式可以直接用模块级变量来实现 4.普通工厂模式可以直接通过传入"类名& ...
- Python核心编程-描述符
python中,什么描述符.描述符就是实现了"__get__"."__set__"或"__delete__" 方法中至少一个的对象.什么是非 ...
- wampserver2.5 apache2.4.9:forbidden,本机可以访问,局域网内部能访问。
wampserver2.5 apache2.4.9:forbidden,本机可以访问,局域网内部能访问. 因为做项目,多人分工,需要局域网内访问各自的项目. 然后安装了wampserver2.5,Ap ...
- qq 换密保方法 只要有密保就好换手机
特别提醒:必须先绑定手机再做其它操作!!否则有几率冻结更换密保手机号后审核时间2-12小时,请您确定审核通过后再使用(本链接所有号码不需要挂七天常用IP即可绑定手机后改密)电脑换绑定手机方法:复制账号 ...
- 微信小程序初体验(上)
版权声明:本文由练小习原创文章,转载请注明出处: 文章原文链接:https://www.qcloud.com/community/article/204 来源:腾云阁 https://www.qclo ...
- 20145218 《Java程序设计》第二周学习总结
Java中的注释格式 单行注释 //注释文字 多行注释 /注释文字/ 文档注释 /**注释文字*/ 注释不仅仅是对代码进行解释,在上一篇博客中也写过,注释也可以用来检查程序中的错误,可以说是一个小窍门 ...
- ubuntu 系统出错一览
1.系统升级出错:打开终端输入:sudo apt-get install -f
- CSDN中的Bug
简述 在用CSDN的过程中,发现了许许多多的Bug.之前没有做记录,直接反馈给客服了,有时没图说得不太清楚,现在不都追求有图有真相么O(∩_∩)O~,所以在此记录一下. 作为程序员的一份子,Bug对我 ...
- Java 迭代器理解
1.Iterator(迭代器) 作为一种设计模式,迭代器可以用于遍历一个对象,对于这个对象的底层结构不必去了解. java中的Iterator一般称为“轻量级”对象,创建它的代价是比较小的.这里笔者不 ...