SlideShare a Scribd company logo
1 of 42
Download to read offline
About Me
• Principal Consultant, Slalom Consulting, Chicago
• Current focus area Office 365 and SharePoint 2013
Contact Info
• Email - patenik2@yahoo.com
• Blog - Nik Patel’s Logs from the Field - http://nikpatel.net/
• Twitter - @nikxpatel
• LinkedIn - linkedin.com/in/nikspatel
• Slideshare - slideshare.net/patenik2









Overview of
SharePoint Add-ins
SharePoint
Hosted-Add Ins
Allows you to host your add-ins in
the SharePoint using client-side
technologies and declarative
workflows.
Provider
Hosted-Add Ins
Allows you to host your add-ins in
your own infrastructure,
technology, and server side code.
Deploying
SharePoint
Artifacts
Allows you to deploy SharePoint
artifacts rather than deploying
through full trust or sandbox
model.
Business
Widgets
Allows you to build SharePoint
web parts where code will run on
the remote web application.
Stand-Alone
Business Apps
Allows you to build standalone
remote business applications like
performance dashboard or
timesheet.
High-Trust Add-ins
Enables on-premises add-ins hosting environment to
host add-ins for the SharePoint 2013 on-premises
using Certificate based authorization.
Low-Trust Add-ins
Enables on-premises add-ins hosting
environment to host add-ins for the SharePoint
Online using Azure ACS OAuth based
authorization.
High Trust Low Trust
Trust Mechanism Digital Certs Azure ACS
Token Creator App itself Azure ACS
App Host On-Premises Azure PaaS
Usage On-Premises Only Both Office 365 and On-Premises
On-Premises
Only Add-ins
(High Trust)
Allows you to deploy provider
hosted add-ins on-premises for
SharePoint on-premises using
High Trust model.
Cloud Add-ins
for SharePoint
Online
(Low Trust)
Allows you to deploy provider
hosted add-ins in Azure for
SharePoint online using Low Trust
model.
Cloud Add-ins
for SharePoint
On-Premises
(Low Trust)
Allows you to deploy provider
hosted add-ins in Azure for
SharePoint on-premises using Low
Trust model.
SharePoint 2013
HostWeb
App Web
Add-in Hosting Servers
CSS
png
aspx
master
js
Web Services
Databases
•
•
•
Deep Dive in
High-Trust
Provider Hosted Add-ins
Configuration
Step 1 –
Preparing Infrastructure for
High-Trust
Provider Hosted Add-ins
Infrastructure
• Configure Add-ins Domain (either isolated or subdomain)
• Wildcard DNS entries for SharePoint Add-ins (optional)
• Wildcard Certificates for SharePoint Add-ins SSL communication (optional)
SharePoint Servers
• SharePoint Environment Configured, optionally with SSL
• Routing SharePoint Web App configured for SharePoint Add-ins (optional)
• App Management and Subscription Settings Services & Service Applications
• Add-in Settings - App Prefix, App Hosting Domain, and App Catalog Site Collection
Provider Hosted Servers
• IIS and Application Server Role, .NET Framework 4.5 and later
• Install Web Deploy Tool for deployment
• Configure DNS Entries, SSL Certs, and IIS_IUSERS permissions to the cert.













 Mirjam Van Olst’s classic article -
http://sharepointchick.com/archive/2012/07/29/setting-up-your-
app-domain-for-sharepoint-2013.aspx






























#Specify parameters for your environment
$ServiceAppPoolName = “SharePoint Hosted Services” #See Shared Services App Pool Account in Service Accounts page in central admin
$AppManagementServiceDB = "NikSP_AppManagement" #Specify Prefix to App management database
$SubscriptionSettingsServiceDB = "NikSP_SubscriptionSettings" #Specify prefix to subscription settings database
$appHostDomain = "apps.niks.local" #Specify App hosts domain
# Load SharePoint PowerShell snapin
$snapin = Get-PSSnapin | Where-Object {$_.Name -eq 'Microsoft.SharePoint.PowerShell'}
if ($snapin -eq $null) {
Add-PSSnapin "Microsoft.SharePoint.PowerShell"
}
#Set the SharePoint 2013 App Domain
Set-SPAppDomain $appHostDomain
#Start if the SharePoint App Management Service isn’t running
$appMgmtSvcInstance = Get-SPServiceInstance | Where-Object { $_.GetType().Name -eq "AppManagementServiceInstance" }
if ($appMgmtSvcInstance.Status -ne "Online") {
$silence = Start-SPServiceInstance -Identity $appMgmtSvcInstance
}
#Start if the SharePoint Subscription Settings Service isn’t running
$appSubSettingSvcInstance = Get-SPServiceInstance | Where-Object { $_.GetType().Name -eq "SPSubscriptionSettingsServiceInstance"}
if ($appSubSettingSvcInstance.Status -ne "Online") {
$serviceInstance = Start-SPServiceInstance -Identity $appSubSettingSvcInstance
}
#Get Application Pool for hosting service applications
$appPoolServiceApps = Get-SPServiceApplicationPool -Identity $ServiceAppPoolName
#Provision Subscription Settings Service Application
$appSubSvc = New-SPSubscriptionSettingsServiceApplication –ApplicationPool $appPoolServiceApps –Name "Settings Service Application" –
DatabaseName $SubscriptionSettingsServiceDB
$proxySubSvc = New-SPSubscriptionSettingsServiceApplicationProxy –ServiceApplication $appSubSvc
#Create App Management Service Application
$appAppSvc = New-SPAppManagementServiceApplication -ApplicationPool $appPoolServiceApps -Name "App Management Service Application" -
DatabaseName $AppManagementServiceDB
$proxyAppSvc = New-SPAppManagementServiceApplicationProxy -ServiceApplication $appAppSvc
#Recycle IIS
IISRESET
#Set Default On-Premises Tenant Add-in Prefix for Add-ins
Set-SPAppSiteSubscriptionName -Name "app" -Confirm:$false
#Complete configuring SharePoint 2013 to host add-ins






 http://www.iis.net/downloads/microsoft/web-deploy

http://go.microsoft.com/?linkid=9278654
 Add DNS entries to resolve provider hosted add-in URL
 Import a High Trust certificate on Add-ins Host Servers
 If you don't have PFX and CER files from the external/internal CA, one way to obtain is
exporting with private key (e.g. NiksHighTrustCert.pfx) and with public key (e.g.
NiksHighTrustCert.cer) for all the certs including root CAs and other parent certs in chain
(RootCAHighTrustCert.cer) from the SharePoint servers.
 CER format requires to register cert with SharePoint, PFX format requires for Add-ins
 Usually, high trust certificate would be same as wildcard cert used for the SharePoint web
applications if high trust Add-ins and SharePoint shares same domain.
 Configure BUILTINIIS_IUSRS access to the High Trust cert
 For the separate IIS server hosting Add-ins, configure BUILTINIIS_IUSRS users to the full
control permission to cert
 On Windows Server 2012 R2, Use command line tool - Windows HTTP Services Certificate
Configuration Tool - WinHttpCertCfg.exe
 On Windows Server 2008 R2, you can use Microsoft WSE 2.0 SP3 GUI tool, look up wildcard
cert (e.g. *.niks.local) and gave full control IIS_IUSRS from the machine, restart the IIS
 If IIS_IUSERs don’t have permission, it will throw Keyset doesn't exists eroor -
http://webservices20.blogspot.com/2011/02/wcf-keyset-does-not-exist.html
Step 2 –
Configuring High-Trust for
Provider Hosted Add-ins
Remove existing SPTrustedSecurityTokenIssuer if exists
Run PowerShell to configure High Trust
– Trust cert using New-SPTrustedSecurityTokenIssuer
Configure valid AllowOAuthOverHTTP settings for SSL or Non-SSL
communication between SharePoint and Provider Hosted Add-ins
 Remove existing SPTrustedSecurityTokenIssuer if exists
 On the SP Server, Log in as Setup account to run PowerShell script and check if any
previously registered SPTrustedSecurityTokenIssuer exists.
 If there is a mal-functioned one and if the –IsTrustBroker switch was used then the bad tokenissuer
might be getting called.
 If this is the first time you are configuring the high trust add-in then you can skip this step.
 Run Get-SPTrustedSecurityTokenIssuer.
 If no Azure workflow is configured then this command should return empty.
 If you get any issuer other than the workflow then run the Remove-SPTrustedSecurityTokenIssuer
(pass the Id value from the above output) to delete it.
 Configure the High Trust using
Certificates
 Run the PowerShell script from the SP Server to register
cert with SharePoint by using public (cer) key to configure
trust for your add-in
 Each certificate in the chain is added to SharePoint's list of
trusted root authorities with a call of the New-
SPTrustedRootAuthority cmdlet.
 It is important that IssuerID is needed each time you
create add-ins in Visual Studio so put it somewhere safe
(e.g. 9F0FF6C4-0DA6-429B-959A-07847DF6BF37)
 Get the Serial Number from the App Cert -
6114c562000000000005 (here are the steps -
https://msdn.microsoft.com/EN-
US/library/office/jj860570.aspx#ConfigureRemote)
https://msdn.microsoft.com/en-us/library/office/fp179901.aspx
 Configure valid settings for
AllowOAuthOverHTTP
 Configure AllowOAuthOverHTTP to FALSE for SSL
communication between SharePoint and Provider
Hosted Add-ins.
 If any of your IIS web (either SharePoint or Provider
hosted web add-in) has HTTP bindings then you must
have AllowOAuthOverHTTP to TRUE otherwise you
will get 403 error
$serviceConfig = Get-SPSecurityTokenServiceConfig
$serviceConfig.AllowOAuthOverHttp = $false
$serviceConfig.Update()
Step 3 –
High-Trust Provider Hosted
Add-ins Deployment
 On the DNS Servers
 Make sure DNS entry is available for Add-ins URL, PING to verify
 On Provider Hosted Server
 Create IIS Web Site and Virtual Directories to host Add-ins









 Remote web can be deployed on IIS, make sure asp.net is
included as features
 Web Site Name (e.g. ProviderHostedProdApp) and local folder
(e.g. C:inetpubwwwrootphprodapp)
 Add New DNS entry for remote web add-in (e.g.
phprodapp.niks.local to server or load-balancer IP) and see if you
can ping it
 Bind this cert with SSL (e.g. *.niks.local), Host Header (e.g.
phprodapp.niks.local), and IP (e.g. 192.168.1.51)
 Ensure .NET 4.0 framework is selected as target framework - Make
sure Application Pool is using v4.0 otherwise you will get error
while deploying code
 Configure Authentication of the Remote Web on IIS
 Disable Anonymous Authentication for the IIS site hosting Remote
Web
 Enable Windows Authentication for the IIS site hosting remote
web and plan to have Provider NTLM is selected above Negotiate
 Add Virtual Directories to host Add-ins
 Alias (e.g. prodphapp), Path – (e.g.
C:inetpubwwwrootphprodappprodphapp)
App Id: f5b99211-2f48-4747-8af0-bdfbbcf1b1b5
App Secret: ER8VtsjIfOU1Y2NrTMCfph+2LACCeOUpiaEMqr/zE2Y=
Title: Prod Provider Hosted App
App Domain: phprodapp.niks.local
Redirect URI: https://phprodapp.niks.local/prodphapp/pages/default.aspx
• App Registration – ~siteURL/_layouts/15/appregnew.aspx
• App Lookup - ~siteURL/_layouts/15/appinv.aspx
 Appid - generate
 App secret - generate
 App domain - phprodapp.niks.local
 Redirect URL - https://phprodapp.niks.local/prodphapp/pages/default.aspx

 Update the Web.Config file of App Web
 VS adds ClientSigningCertificatePath and ClientSigningCertificatePassword. This requires certificate
downloaded and stored on the local file system.
<appSettings>
<add key="ClientId" value="f5b99211-2f48-4747-8af0-bdfbbcf1b1b5" />
<add key="ClientSigningCertificatePath" value="C:CertsNiksHighTrustCert.pfx" />
<add key="ClientSigningCertificatePassword" value="pass@word1" />
<add key="IssuerId" value="9f0ff6c4-0da6-429b-959a-07847df6bf37" />
</appSettings>
 No changes in the Token Issuer file in VS project
 Visual studio template for Provider hosted add-in contains code to create access token based on
certificate location.
 Update the Web.Config file of App Web
 VS adds ClientSigningCertificatePath and ClientSigningCertificatePassword. This shouldn’t be used for
production add-ins. Instead use ClientSigningCertificateSerialNumber.
 Find the ClientSigningCertificateSerialNumber from the cert binded to the provider hosted add-in
(e.g. *.niks.local)
<appSettings>
<add key="ClientId" value="f5b99211-2f48-4747-8af0-bdfbbcf1b1b5" />
<add key="ClientSigningCertificateSerialNumber" value="6114c562000000000005" />
<add key="IssuerId" value="9f0ff6c4-0da6-429b-959a-07847df6bf37" />
</appSettings>
 Update Token Issuer file in VS project
 Since you are using on Serial Number instead of cert path and password for authorization, you need
to update code to retrieve cert based on serial number - See Token Issuer section here -
https://msdn.microsoft.com/en-us/library/office/jj860570.aspx
 Provider Hosted Add-ins are consists of two projects in Visual
Studio
 Publishing App Web Package
 Publishing App web copies files are remote web server and deployed on
IIS
 Create AppWeb package from the Visual Studio using publish approach
 Create Profile (e.g. NiksRemote)
 Connection - Publish Method - Web deploy package, Package Location (e.g.
C:DeployProdProviderHostedAppWebProdProviderHostedAppWeb.zip) and
Remote IIS Web Site Name (e.g. ProviderHostedProdApp/prodphapp)
 Click Next - Release and Publish Package
 Publishing Add-ins Package
 Publishing App produces App file (.app extension) and that needs to be
uploaded on App Catalog site to make it available for SharePoint sites
 Create App package from the Visual Studio using publish approach
 Remote Add-ins URL where web site is hosted (e.g.
https://phprodapp.niks.local/prodphapp)
 Remote Add-ins Client ID (e.g. f5b99211-2f48-4747-8af0-bdfbbcf1b1b5)
 Deploying App Web Package
 Copy the Package to the Remote Add-ins server,
make sure webdeploy is installed on the
additional server
 Open cmd file and run Appweb deployment
command (e.g.
C:DeployProdProviderHostedAppWeb>ProdPr
oviderHostedAppWeb.deploy.cmd /y)
 Verify all the contents are getting published on
the IIS virtual directory
 Deploy App Package to App Catalog





 https://msdn.microsoft.com/en-
us/library/office/fp179921.aspx








Q&A
• Blog - http://nikpatel.net/
• Twitter - @nikxpatel
• Slideshare - slideshare.net/patenik2
SharePoint Fest Chicago 2015  - Anatomy of configuring provider hosted add-in infrastructure for sharepoint 2013 on-premises, real-world end-to-end configuration blueprint

More Related Content

What's hot

Understanding SharePoint Apps, authentication and authorization infrastructur...
Understanding SharePoint Apps, authentication and authorization infrastructur...Understanding SharePoint Apps, authentication and authorization infrastructur...
Understanding SharePoint Apps, authentication and authorization infrastructur...SPC Adriatics
 
Introducing the new SharePoint 2013 app model
Introducing the new SharePoint 2013 app modelIntroducing the new SharePoint 2013 app model
Introducing the new SharePoint 2013 app modelJeremy Thake
 
Kako pravilno konfigurisati SharePoint on-premises za SharePoint Add-ins (Sha...
Kako pravilno konfigurisati SharePoint on-premises za SharePoint Add-ins (Sha...Kako pravilno konfigurisati SharePoint on-premises za SharePoint Add-ins (Sha...
Kako pravilno konfigurisati SharePoint on-premises za SharePoint Add-ins (Sha...Dragan Panjkov
 
Develop iOS and Android apps with SharePoint/Office 365
Develop iOS and Android apps with SharePoint/Office 365Develop iOS and Android apps with SharePoint/Office 365
Develop iOS and Android apps with SharePoint/Office 365Kashif Imran
 
SharePoint 2013 apps overview
SharePoint 2013 apps overviewSharePoint 2013 apps overview
SharePoint 2013 apps overviewElie Kash
 
SharePoint 2016 Hybrid Overview
SharePoint 2016 Hybrid OverviewSharePoint 2016 Hybrid Overview
SharePoint 2016 Hybrid OverviewRoy Kim
 
SharePoint 2013 REST APIs
SharePoint 2013 REST APIsSharePoint 2013 REST APIs
SharePoint 2013 REST APIsGiuseppe Marchi
 
Tutorial, Part 2: SharePoint 101: Jump-Starting the Developer by Rob Windsor ...
Tutorial, Part 2: SharePoint 101: Jump-Starting the Developer by Rob Windsor ...Tutorial, Part 2: SharePoint 101: Jump-Starting the Developer by Rob Windsor ...
Tutorial, Part 2: SharePoint 101: Jump-Starting the Developer by Rob Windsor ...SPTechCon
 
[Vončina] Configuring SharePoint 2016 for BI Scenarios
[Vončina] Configuring SharePoint 2016 for BI Scenarios[Vončina] Configuring SharePoint 2016 for BI Scenarios
[Vončina] Configuring SharePoint 2016 for BI ScenariosEuropean Collaboration Summit
 
Android SharePoint
Android SharePointAndroid SharePoint
Android SharePointBenCox35
 
SharePoint 2016 The Future is Hybrid, what you need to know about it
SharePoint 2016 The Future is Hybrid, what you need to know about itSharePoint 2016 The Future is Hybrid, what you need to know about it
SharePoint 2016 The Future is Hybrid, what you need to know about itKnut Relbe-Moe [MVP, MCT]
 
Introduction to the SharePoint Client Object Model and REST API
Introduction to the SharePoint Client Object Model and REST APIIntroduction to the SharePoint Client Object Model and REST API
Introduction to the SharePoint Client Object Model and REST APIRob Windsor
 
SharePoint Intersections - SP11 - SharePoint and IaaS - The OnPrem in the Cloud
SharePoint Intersections - SP11 - SharePoint and IaaS - The OnPrem in the CloudSharePoint Intersections - SP11 - SharePoint and IaaS - The OnPrem in the Cloud
SharePoint Intersections - SP11 - SharePoint and IaaS - The OnPrem in the CloudDan Usher
 
[McDermott] Configuring SharePoint Hybrid Search and Taxonomy
[McDermott] Configuring SharePoint Hybrid Search and Taxonomy[McDermott] Configuring SharePoint Hybrid Search and Taxonomy
[McDermott] Configuring SharePoint Hybrid Search and TaxonomyEuropean Collaboration Summit
 
Office 365 Groups and Tasks API - Getting Started
Office 365 Groups and Tasks API - Getting StartedOffice 365 Groups and Tasks API - Getting Started
Office 365 Groups and Tasks API - Getting StartedDragan Panjkov
 
Identity Management in SharePoint 2013
Identity Management in SharePoint 2013Identity Management in SharePoint 2013
Identity Management in SharePoint 2013SPC Adriatics
 
Hooking SharePoint APIs with Android
Hooking SharePoint APIs with AndroidHooking SharePoint APIs with Android
Hooking SharePoint APIs with AndroidKris Wagner
 
SPCAdriatics - Search Administration and Troubleshooting in SharePoint 2013
SPCAdriatics - Search Administration and Troubleshooting in SharePoint 2013SPCAdriatics - Search Administration and Troubleshooting in SharePoint 2013
SPCAdriatics - Search Administration and Troubleshooting in SharePoint 2013Agnes Molnar
 
Best Practices to SharePoint Architecture Fundamentals NZ & AUS
Best Practices to SharePoint Architecture Fundamentals NZ & AUSBest Practices to SharePoint Architecture Fundamentals NZ & AUS
Best Practices to SharePoint Architecture Fundamentals NZ & AUSguest7c2e070
 

What's hot (20)

Understanding SharePoint Apps, authentication and authorization infrastructur...
Understanding SharePoint Apps, authentication and authorization infrastructur...Understanding SharePoint Apps, authentication and authorization infrastructur...
Understanding SharePoint Apps, authentication and authorization infrastructur...
 
Introducing the new SharePoint 2013 app model
Introducing the new SharePoint 2013 app modelIntroducing the new SharePoint 2013 app model
Introducing the new SharePoint 2013 app model
 
OAuth in SharePoint 2013
OAuth in SharePoint 2013OAuth in SharePoint 2013
OAuth in SharePoint 2013
 
Kako pravilno konfigurisati SharePoint on-premises za SharePoint Add-ins (Sha...
Kako pravilno konfigurisati SharePoint on-premises za SharePoint Add-ins (Sha...Kako pravilno konfigurisati SharePoint on-premises za SharePoint Add-ins (Sha...
Kako pravilno konfigurisati SharePoint on-premises za SharePoint Add-ins (Sha...
 
Develop iOS and Android apps with SharePoint/Office 365
Develop iOS and Android apps with SharePoint/Office 365Develop iOS and Android apps with SharePoint/Office 365
Develop iOS and Android apps with SharePoint/Office 365
 
SharePoint 2013 apps overview
SharePoint 2013 apps overviewSharePoint 2013 apps overview
SharePoint 2013 apps overview
 
SharePoint 2016 Hybrid Overview
SharePoint 2016 Hybrid OverviewSharePoint 2016 Hybrid Overview
SharePoint 2016 Hybrid Overview
 
SharePoint 2013 REST APIs
SharePoint 2013 REST APIsSharePoint 2013 REST APIs
SharePoint 2013 REST APIs
 
Tutorial, Part 2: SharePoint 101: Jump-Starting the Developer by Rob Windsor ...
Tutorial, Part 2: SharePoint 101: Jump-Starting the Developer by Rob Windsor ...Tutorial, Part 2: SharePoint 101: Jump-Starting the Developer by Rob Windsor ...
Tutorial, Part 2: SharePoint 101: Jump-Starting the Developer by Rob Windsor ...
 
[Vončina] Configuring SharePoint 2016 for BI Scenarios
[Vončina] Configuring SharePoint 2016 for BI Scenarios[Vončina] Configuring SharePoint 2016 for BI Scenarios
[Vončina] Configuring SharePoint 2016 for BI Scenarios
 
Android SharePoint
Android SharePointAndroid SharePoint
Android SharePoint
 
SharePoint 2016 The Future is Hybrid, what you need to know about it
SharePoint 2016 The Future is Hybrid, what you need to know about itSharePoint 2016 The Future is Hybrid, what you need to know about it
SharePoint 2016 The Future is Hybrid, what you need to know about it
 
Introduction to the SharePoint Client Object Model and REST API
Introduction to the SharePoint Client Object Model and REST APIIntroduction to the SharePoint Client Object Model and REST API
Introduction to the SharePoint Client Object Model and REST API
 
SharePoint Intersections - SP11 - SharePoint and IaaS - The OnPrem in the Cloud
SharePoint Intersections - SP11 - SharePoint and IaaS - The OnPrem in the CloudSharePoint Intersections - SP11 - SharePoint and IaaS - The OnPrem in the Cloud
SharePoint Intersections - SP11 - SharePoint and IaaS - The OnPrem in the Cloud
 
[McDermott] Configuring SharePoint Hybrid Search and Taxonomy
[McDermott] Configuring SharePoint Hybrid Search and Taxonomy[McDermott] Configuring SharePoint Hybrid Search and Taxonomy
[McDermott] Configuring SharePoint Hybrid Search and Taxonomy
 
Office 365 Groups and Tasks API - Getting Started
Office 365 Groups and Tasks API - Getting StartedOffice 365 Groups and Tasks API - Getting Started
Office 365 Groups and Tasks API - Getting Started
 
Identity Management in SharePoint 2013
Identity Management in SharePoint 2013Identity Management in SharePoint 2013
Identity Management in SharePoint 2013
 
Hooking SharePoint APIs with Android
Hooking SharePoint APIs with AndroidHooking SharePoint APIs with Android
Hooking SharePoint APIs with Android
 
SPCAdriatics - Search Administration and Troubleshooting in SharePoint 2013
SPCAdriatics - Search Administration and Troubleshooting in SharePoint 2013SPCAdriatics - Search Administration and Troubleshooting in SharePoint 2013
SPCAdriatics - Search Administration and Troubleshooting in SharePoint 2013
 
Best Practices to SharePoint Architecture Fundamentals NZ & AUS
Best Practices to SharePoint Architecture Fundamentals NZ & AUSBest Practices to SharePoint Architecture Fundamentals NZ & AUS
Best Practices to SharePoint Architecture Fundamentals NZ & AUS
 

Similar to SharePoint Fest Chicago 2015 - Anatomy of configuring provider hosted add-in infrastructure for sharepoint 2013 on-premises, real-world end-to-end configuration blueprint

John Burkholder: SharePoint 2010 in a multi tenant and hosted environment-nyc
John Burkholder: SharePoint 2010 in a multi tenant and hosted environment-nycJohn Burkholder: SharePoint 2010 in a multi tenant and hosted environment-nyc
John Burkholder: SharePoint 2010 in a multi tenant and hosted environment-nycSharePoint Saturday NY
 
SPugPt Meeting 35: Manage govern and drive adoption of share point online wit...
SPugPt Meeting 35: Manage govern and drive adoption of share point online wit...SPugPt Meeting 35: Manage govern and drive adoption of share point online wit...
SPugPt Meeting 35: Manage govern and drive adoption of share point online wit...Comunidade Portuguesa de SharePoiint
 
CIS14: Enterprise Identity APIs
CIS14: Enterprise Identity APIsCIS14: Enterprise Identity APIs
CIS14: Enterprise Identity APIsCloudIDSummit
 
An IT Pro Guide to Deploying and Managing SharePoint 2013 Apps
An IT Pro Guide to Deploying and Managing SharePoint 2013 AppsAn IT Pro Guide to Deploying and Managing SharePoint 2013 Apps
An IT Pro Guide to Deploying and Managing SharePoint 2013 AppsRandy Williams
 
Sp2013 apps with vs2013
Sp2013 apps with vs2013Sp2013 apps with vs2013
Sp2013 apps with vs2013Bas Lijten
 
Developing share point 2013 apps with mvc 5, signalr 2.0, webapi 2 and visual...
Developing share point 2013 apps with mvc 5, signalr 2.0, webapi 2 and visual...Developing share point 2013 apps with mvc 5, signalr 2.0, webapi 2 and visual...
Developing share point 2013 apps with mvc 5, signalr 2.0, webapi 2 and visual...Bas Lijten
 
SharePoint Add-Ins - the Next Level
SharePoint Add-Ins - the Next LevelSharePoint Add-Ins - the Next Level
SharePoint Add-Ins - the Next LevelPaul Schaeflein
 
February 2020 Salesforce API Review
February 2020 Salesforce API ReviewFebruary 2020 Salesforce API Review
February 2020 Salesforce API ReviewLydon Bergin
 
Make Web, Not War - Installfest: Extend Your Web Server, Rodney Buike
Make Web, Not War - Installfest: Extend Your Web Server, Rodney BuikeMake Web, Not War - Installfest: Extend Your Web Server, Rodney Buike
Make Web, Not War - Installfest: Extend Your Web Server, Rodney BuikeMake Web Not War
 
Heading to the Cloud : Introduction to deploying a Provider-Hosted App in Azure
Heading to the Cloud : Introduction to deploying a Provider-Hosted App in AzureHeading to the Cloud : Introduction to deploying a Provider-Hosted App in Azure
Heading to the Cloud : Introduction to deploying a Provider-Hosted App in AzureXenox Garavito
 
Exposing Salesforce REST Services Using Swagger
Exposing Salesforce REST Services Using SwaggerExposing Salesforce REST Services Using Swagger
Exposing Salesforce REST Services Using SwaggerSalesforce Developers
 
Automatizacion de Procesos en Modelos Tabulares
Automatizacion de Procesos en Modelos TabularesAutomatizacion de Procesos en Modelos Tabulares
Automatizacion de Procesos en Modelos TabularesGaston Cruz
 
OWA And SharePoint Integration
OWA And SharePoint IntegrationOWA And SharePoint Integration
OWA And SharePoint Integrationjems7
 
Building microservices sample application
Building microservices sample applicationBuilding microservices sample application
Building microservices sample applicationAnil Allewar
 
Power Shell and Sharepoint 2013
Power Shell and Sharepoint 2013Power Shell and Sharepoint 2013
Power Shell and Sharepoint 2013Mohan Arumugam
 
The art of .net deployment automation
The art of .net deployment automationThe art of .net deployment automation
The art of .net deployment automationMidVision
 
SharePoint Intersections - SP09 - Introduction to SharePoint 2013 for IT Pros
SharePoint Intersections - SP09 - Introduction to SharePoint 2013 for IT ProsSharePoint Intersections - SP09 - Introduction to SharePoint 2013 for IT Pros
SharePoint Intersections - SP09 - Introduction to SharePoint 2013 for IT ProsDan Usher
 
Share point 2013 in a hybrid world
Share point 2013 in a hybrid worldShare point 2013 in a hybrid world
Share point 2013 in a hybrid worldJethro Seghers
 

Similar to SharePoint Fest Chicago 2015 - Anatomy of configuring provider hosted add-in infrastructure for sharepoint 2013 on-premises, real-world end-to-end configuration blueprint (20)

John Burkholder: SharePoint 2010 in a multi tenant and hosted environment-nyc
John Burkholder: SharePoint 2010 in a multi tenant and hosted environment-nycJohn Burkholder: SharePoint 2010 in a multi tenant and hosted environment-nyc
John Burkholder: SharePoint 2010 in a multi tenant and hosted environment-nyc
 
SPugPt Meeting 35: Manage govern and drive adoption of share point online wit...
SPugPt Meeting 35: Manage govern and drive adoption of share point online wit...SPugPt Meeting 35: Manage govern and drive adoption of share point online wit...
SPugPt Meeting 35: Manage govern and drive adoption of share point online wit...
 
CIS14: Enterprise Identity APIs
CIS14: Enterprise Identity APIsCIS14: Enterprise Identity APIs
CIS14: Enterprise Identity APIs
 
An IT Pro Guide to Deploying and Managing SharePoint 2013 Apps
An IT Pro Guide to Deploying and Managing SharePoint 2013 AppsAn IT Pro Guide to Deploying and Managing SharePoint 2013 Apps
An IT Pro Guide to Deploying and Managing SharePoint 2013 Apps
 
Sp2013 apps with vs2013
Sp2013 apps with vs2013Sp2013 apps with vs2013
Sp2013 apps with vs2013
 
Developing share point 2013 apps with mvc 5, signalr 2.0, webapi 2 and visual...
Developing share point 2013 apps with mvc 5, signalr 2.0, webapi 2 and visual...Developing share point 2013 apps with mvc 5, signalr 2.0, webapi 2 and visual...
Developing share point 2013 apps with mvc 5, signalr 2.0, webapi 2 and visual...
 
SharePoint Add-Ins - the Next Level
SharePoint Add-Ins - the Next LevelSharePoint Add-Ins - the Next Level
SharePoint Add-Ins - the Next Level
 
February 2020 Salesforce API Review
February 2020 Salesforce API ReviewFebruary 2020 Salesforce API Review
February 2020 Salesforce API Review
 
Make Web, Not War - Installfest: Extend Your Web Server, Rodney Buike
Make Web, Not War - Installfest: Extend Your Web Server, Rodney BuikeMake Web, Not War - Installfest: Extend Your Web Server, Rodney Buike
Make Web, Not War - Installfest: Extend Your Web Server, Rodney Buike
 
Heading to the Cloud : Introduction to deploying a Provider-Hosted App in Azure
Heading to the Cloud : Introduction to deploying a Provider-Hosted App in AzureHeading to the Cloud : Introduction to deploying a Provider-Hosted App in Azure
Heading to the Cloud : Introduction to deploying a Provider-Hosted App in Azure
 
Exposing Salesforce REST Services Using Swagger
Exposing Salesforce REST Services Using SwaggerExposing Salesforce REST Services Using Swagger
Exposing Salesforce REST Services Using Swagger
 
Automatizacion de Procesos en Modelos Tabulares
Automatizacion de Procesos en Modelos TabularesAutomatizacion de Procesos en Modelos Tabulares
Automatizacion de Procesos en Modelos Tabulares
 
OWA And SharePoint Integration
OWA And SharePoint IntegrationOWA And SharePoint Integration
OWA And SharePoint Integration
 
Building microservices sample application
Building microservices sample applicationBuilding microservices sample application
Building microservices sample application
 
Power Shell and Sharepoint 2013
Power Shell and Sharepoint 2013Power Shell and Sharepoint 2013
Power Shell and Sharepoint 2013
 
Bh Win 03 Rileybollefer
Bh Win 03 RileybolleferBh Win 03 Rileybollefer
Bh Win 03 Rileybollefer
 
The art of .net deployment automation
The art of .net deployment automationThe art of .net deployment automation
The art of .net deployment automation
 
SharePoint Intersections - SP09 - Introduction to SharePoint 2013 for IT Pros
SharePoint Intersections - SP09 - Introduction to SharePoint 2013 for IT ProsSharePoint Intersections - SP09 - Introduction to SharePoint 2013 for IT Pros
SharePoint Intersections - SP09 - Introduction to SharePoint 2013 for IT Pros
 
Share point 2013 in a hybrid world
Share point 2013 in a hybrid worldShare point 2013 in a hybrid world
Share point 2013 in a hybrid world
 
06 web api
06 web api06 web api
06 web api
 

More from Nik Patel

Chicago Office 365 User Group 2018 - Better Together SharePoint and OneDrive...
Chicago Office 365 User Group 2018 -  Better Together SharePoint and OneDrive...Chicago Office 365 User Group 2018 -  Better Together SharePoint and OneDrive...
Chicago Office 365 User Group 2018 - Better Together SharePoint and OneDrive...Nik Patel
 
Cloud Saturday Chicago 2016 - Modern Intranet Development Best Practices on S...
Cloud Saturday Chicago 2016 - Modern Intranet Development Best Practices on S...Cloud Saturday Chicago 2016 - Modern Intranet Development Best Practices on S...
Cloud Saturday Chicago 2016 - Modern Intranet Development Best Practices on S...Nik Patel
 
SharePoint Saturday Chicago Suburbs 2016 - Modern Intranet Development Best P...
SharePoint Saturday Chicago Suburbs 2016 - Modern Intranet Development Best P...SharePoint Saturday Chicago Suburbs 2016 - Modern Intranet Development Best P...
SharePoint Saturday Chicago Suburbs 2016 - Modern Intranet Development Best P...Nik Patel
 
Designing Corporate News Application Using SharePoint 2013 Web Content Manage...
Designing Corporate News Application Using SharePoint 2013 Web Content Manage...Designing Corporate News Application Using SharePoint 2013 Web Content Manage...
Designing Corporate News Application Using SharePoint 2013 Web Content Manage...Nik Patel
 
Building Search Driven Applications in SharePoint 2010 - SharePoint Fest 2012
Building Search Driven Applications in SharePoint 2010 - SharePoint Fest 2012Building Search Driven Applications in SharePoint 2010 - SharePoint Fest 2012
Building Search Driven Applications in SharePoint 2010 - SharePoint Fest 2012Nik Patel
 
Real World InfoPath with SharePoint 2010 - List vs Library Forms
Real World InfoPath with SharePoint 2010 - List vs Library FormsReal World InfoPath with SharePoint 2010 - List vs Library Forms
Real World InfoPath with SharePoint 2010 - List vs Library FormsNik Patel
 
Access Services in SharePoint 2010 - All You Need to Know
Access Services in SharePoint 2010 - All You Need to KnowAccess Services in SharePoint 2010 - All You Need to Know
Access Services in SharePoint 2010 - All You Need to KnowNik Patel
 

More from Nik Patel (7)

Chicago Office 365 User Group 2018 - Better Together SharePoint and OneDrive...
Chicago Office 365 User Group 2018 -  Better Together SharePoint and OneDrive...Chicago Office 365 User Group 2018 -  Better Together SharePoint and OneDrive...
Chicago Office 365 User Group 2018 - Better Together SharePoint and OneDrive...
 
Cloud Saturday Chicago 2016 - Modern Intranet Development Best Practices on S...
Cloud Saturday Chicago 2016 - Modern Intranet Development Best Practices on S...Cloud Saturday Chicago 2016 - Modern Intranet Development Best Practices on S...
Cloud Saturday Chicago 2016 - Modern Intranet Development Best Practices on S...
 
SharePoint Saturday Chicago Suburbs 2016 - Modern Intranet Development Best P...
SharePoint Saturday Chicago Suburbs 2016 - Modern Intranet Development Best P...SharePoint Saturday Chicago Suburbs 2016 - Modern Intranet Development Best P...
SharePoint Saturday Chicago Suburbs 2016 - Modern Intranet Development Best P...
 
Designing Corporate News Application Using SharePoint 2013 Web Content Manage...
Designing Corporate News Application Using SharePoint 2013 Web Content Manage...Designing Corporate News Application Using SharePoint 2013 Web Content Manage...
Designing Corporate News Application Using SharePoint 2013 Web Content Manage...
 
Building Search Driven Applications in SharePoint 2010 - SharePoint Fest 2012
Building Search Driven Applications in SharePoint 2010 - SharePoint Fest 2012Building Search Driven Applications in SharePoint 2010 - SharePoint Fest 2012
Building Search Driven Applications in SharePoint 2010 - SharePoint Fest 2012
 
Real World InfoPath with SharePoint 2010 - List vs Library Forms
Real World InfoPath with SharePoint 2010 - List vs Library FormsReal World InfoPath with SharePoint 2010 - List vs Library Forms
Real World InfoPath with SharePoint 2010 - List vs Library Forms
 
Access Services in SharePoint 2010 - All You Need to Know
Access Services in SharePoint 2010 - All You Need to KnowAccess Services in SharePoint 2010 - All You Need to Know
Access Services in SharePoint 2010 - All You Need to Know
 

Recently uploaded

Human Factors of XR: Using Human Factors to Design XR Systems
Human Factors of XR: Using Human Factors to Design XR SystemsHuman Factors of XR: Using Human Factors to Design XR Systems
Human Factors of XR: Using Human Factors to Design XR SystemsMark Billinghurst
 
GenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationGenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationMichael W. Hawkins
 
FULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | Delhi
FULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | DelhiFULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | Delhi
FULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | Delhisoniya singh
 
Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...
Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...
Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...HostedbyConfluent
 
Pigging Solutions Piggable Sweeping Elbows
Pigging Solutions Piggable Sweeping ElbowsPigging Solutions Piggable Sweeping Elbows
Pigging Solutions Piggable Sweeping ElbowsPigging Solutions
 
AI as an Interface for Commercial Buildings
AI as an Interface for Commercial BuildingsAI as an Interface for Commercial Buildings
AI as an Interface for Commercial BuildingsMemoori
 
Swan(sea) Song – personal research during my six years at Swansea ... and bey...
Swan(sea) Song – personal research during my six years at Swansea ... and bey...Swan(sea) Song – personal research during my six years at Swansea ... and bey...
Swan(sea) Song – personal research during my six years at Swansea ... and bey...Alan Dix
 
Azure Monitor & Application Insight to monitor Infrastructure & Application
Azure Monitor & Application Insight to monitor Infrastructure & ApplicationAzure Monitor & Application Insight to monitor Infrastructure & Application
Azure Monitor & Application Insight to monitor Infrastructure & ApplicationAndikSusilo4
 
08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking MenDelhi Call girls
 
Next-generation AAM aircraft unveiled by Supernal, S-A2
Next-generation AAM aircraft unveiled by Supernal, S-A2Next-generation AAM aircraft unveiled by Supernal, S-A2
Next-generation AAM aircraft unveiled by Supernal, S-A2Hyundai Motor Group
 
Making_way_through_DLL_hollowing_inspite_of_CFG_by_Debjeet Banerjee.pptx
Making_way_through_DLL_hollowing_inspite_of_CFG_by_Debjeet Banerjee.pptxMaking_way_through_DLL_hollowing_inspite_of_CFG_by_Debjeet Banerjee.pptx
Making_way_through_DLL_hollowing_inspite_of_CFG_by_Debjeet Banerjee.pptxnull - The Open Security Community
 
SQL Database Design For Developers at php[tek] 2024
SQL Database Design For Developers at php[tek] 2024SQL Database Design For Developers at php[tek] 2024
SQL Database Design For Developers at php[tek] 2024Scott Keck-Warren
 
Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024BookNet Canada
 
The Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptxThe Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptxMalak Abu Hammad
 
Hyderabad Call Girls Khairatabad ✨ 7001305949 ✨ Cheap Price Your Budget
Hyderabad Call Girls Khairatabad ✨ 7001305949 ✨ Cheap Price Your BudgetHyderabad Call Girls Khairatabad ✨ 7001305949 ✨ Cheap Price Your Budget
Hyderabad Call Girls Khairatabad ✨ 7001305949 ✨ Cheap Price Your BudgetEnjoy Anytime
 
CloudStudio User manual (basic edition):
CloudStudio User manual (basic edition):CloudStudio User manual (basic edition):
CloudStudio User manual (basic edition):comworks
 
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 3652toLead Limited
 
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure service
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure serviceWhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure service
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure servicePooja Nehwal
 

Recently uploaded (20)

Human Factors of XR: Using Human Factors to Design XR Systems
Human Factors of XR: Using Human Factors to Design XR SystemsHuman Factors of XR: Using Human Factors to Design XR Systems
Human Factors of XR: Using Human Factors to Design XR Systems
 
GenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationGenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day Presentation
 
FULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | Delhi
FULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | DelhiFULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | Delhi
FULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | Delhi
 
Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...
Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...
Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...
 
Pigging Solutions Piggable Sweeping Elbows
Pigging Solutions Piggable Sweeping ElbowsPigging Solutions Piggable Sweeping Elbows
Pigging Solutions Piggable Sweeping Elbows
 
AI as an Interface for Commercial Buildings
AI as an Interface for Commercial BuildingsAI as an Interface for Commercial Buildings
AI as an Interface for Commercial Buildings
 
Swan(sea) Song – personal research during my six years at Swansea ... and bey...
Swan(sea) Song – personal research during my six years at Swansea ... and bey...Swan(sea) Song – personal research during my six years at Swansea ... and bey...
Swan(sea) Song – personal research during my six years at Swansea ... and bey...
 
Azure Monitor & Application Insight to monitor Infrastructure & Application
Azure Monitor & Application Insight to monitor Infrastructure & ApplicationAzure Monitor & Application Insight to monitor Infrastructure & Application
Azure Monitor & Application Insight to monitor Infrastructure & Application
 
08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men
 
Next-generation AAM aircraft unveiled by Supernal, S-A2
Next-generation AAM aircraft unveiled by Supernal, S-A2Next-generation AAM aircraft unveiled by Supernal, S-A2
Next-generation AAM aircraft unveiled by Supernal, S-A2
 
Making_way_through_DLL_hollowing_inspite_of_CFG_by_Debjeet Banerjee.pptx
Making_way_through_DLL_hollowing_inspite_of_CFG_by_Debjeet Banerjee.pptxMaking_way_through_DLL_hollowing_inspite_of_CFG_by_Debjeet Banerjee.pptx
Making_way_through_DLL_hollowing_inspite_of_CFG_by_Debjeet Banerjee.pptx
 
SQL Database Design For Developers at php[tek] 2024
SQL Database Design For Developers at php[tek] 2024SQL Database Design For Developers at php[tek] 2024
SQL Database Design For Developers at php[tek] 2024
 
Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
 
Vulnerability_Management_GRC_by Sohang Sengupta.pptx
Vulnerability_Management_GRC_by Sohang Sengupta.pptxVulnerability_Management_GRC_by Sohang Sengupta.pptx
Vulnerability_Management_GRC_by Sohang Sengupta.pptx
 
The Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptxThe Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptx
 
E-Vehicle_Hacking_by_Parul Sharma_null_owasp.pptx
E-Vehicle_Hacking_by_Parul Sharma_null_owasp.pptxE-Vehicle_Hacking_by_Parul Sharma_null_owasp.pptx
E-Vehicle_Hacking_by_Parul Sharma_null_owasp.pptx
 
Hyderabad Call Girls Khairatabad ✨ 7001305949 ✨ Cheap Price Your Budget
Hyderabad Call Girls Khairatabad ✨ 7001305949 ✨ Cheap Price Your BudgetHyderabad Call Girls Khairatabad ✨ 7001305949 ✨ Cheap Price Your Budget
Hyderabad Call Girls Khairatabad ✨ 7001305949 ✨ Cheap Price Your Budget
 
CloudStudio User manual (basic edition):
CloudStudio User manual (basic edition):CloudStudio User manual (basic edition):
CloudStudio User manual (basic edition):
 
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365
 
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure service
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure serviceWhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure service
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure service
 

SharePoint Fest Chicago 2015 - Anatomy of configuring provider hosted add-in infrastructure for sharepoint 2013 on-premises, real-world end-to-end configuration blueprint

  • 1.
  • 2. About Me • Principal Consultant, Slalom Consulting, Chicago • Current focus area Office 365 and SharePoint 2013 Contact Info • Email - patenik2@yahoo.com • Blog - Nik Patel’s Logs from the Field - http://nikpatel.net/ • Twitter - @nikxpatel • LinkedIn - linkedin.com/in/nikspatel • Slideshare - slideshare.net/patenik2
  • 5. SharePoint Hosted-Add Ins Allows you to host your add-ins in the SharePoint using client-side technologies and declarative workflows. Provider Hosted-Add Ins Allows you to host your add-ins in your own infrastructure, technology, and server side code.
  • 6. Deploying SharePoint Artifacts Allows you to deploy SharePoint artifacts rather than deploying through full trust or sandbox model. Business Widgets Allows you to build SharePoint web parts where code will run on the remote web application. Stand-Alone Business Apps Allows you to build standalone remote business applications like performance dashboard or timesheet.
  • 7. High-Trust Add-ins Enables on-premises add-ins hosting environment to host add-ins for the SharePoint 2013 on-premises using Certificate based authorization. Low-Trust Add-ins Enables on-premises add-ins hosting environment to host add-ins for the SharePoint Online using Azure ACS OAuth based authorization. High Trust Low Trust Trust Mechanism Digital Certs Azure ACS Token Creator App itself Azure ACS App Host On-Premises Azure PaaS Usage On-Premises Only Both Office 365 and On-Premises
  • 8. On-Premises Only Add-ins (High Trust) Allows you to deploy provider hosted add-ins on-premises for SharePoint on-premises using High Trust model. Cloud Add-ins for SharePoint Online (Low Trust) Allows you to deploy provider hosted add-ins in Azure for SharePoint online using Low Trust model. Cloud Add-ins for SharePoint On-Premises (Low Trust) Allows you to deploy provider hosted add-ins in Azure for SharePoint on-premises using Low Trust model.
  • 9. SharePoint 2013 HostWeb App Web Add-in Hosting Servers CSS png aspx master js Web Services Databases • • •
  • 10. Deep Dive in High-Trust Provider Hosted Add-ins Configuration
  • 11. Step 1 – Preparing Infrastructure for High-Trust Provider Hosted Add-ins
  • 12. Infrastructure • Configure Add-ins Domain (either isolated or subdomain) • Wildcard DNS entries for SharePoint Add-ins (optional) • Wildcard Certificates for SharePoint Add-ins SSL communication (optional) SharePoint Servers • SharePoint Environment Configured, optionally with SSL • Routing SharePoint Web App configured for SharePoint Add-ins (optional) • App Management and Subscription Settings Services & Service Applications • Add-in Settings - App Prefix, App Hosting Domain, and App Catalog Site Collection Provider Hosted Servers • IIS and Application Server Role, .NET Framework 4.5 and later • Install Web Deploy Tool for deployment • Configure DNS Entries, SSL Certs, and IIS_IUSERS permissions to the cert.
  • 14.        Mirjam Van Olst’s classic article - http://sharepointchick.com/archive/2012/07/29/setting-up-your- app-domain-for-sharepoint-2013.aspx
  • 19. #Specify parameters for your environment $ServiceAppPoolName = “SharePoint Hosted Services” #See Shared Services App Pool Account in Service Accounts page in central admin $AppManagementServiceDB = "NikSP_AppManagement" #Specify Prefix to App management database $SubscriptionSettingsServiceDB = "NikSP_SubscriptionSettings" #Specify prefix to subscription settings database $appHostDomain = "apps.niks.local" #Specify App hosts domain # Load SharePoint PowerShell snapin $snapin = Get-PSSnapin | Where-Object {$_.Name -eq 'Microsoft.SharePoint.PowerShell'} if ($snapin -eq $null) { Add-PSSnapin "Microsoft.SharePoint.PowerShell" } #Set the SharePoint 2013 App Domain Set-SPAppDomain $appHostDomain #Start if the SharePoint App Management Service isn’t running $appMgmtSvcInstance = Get-SPServiceInstance | Where-Object { $_.GetType().Name -eq "AppManagementServiceInstance" } if ($appMgmtSvcInstance.Status -ne "Online") { $silence = Start-SPServiceInstance -Identity $appMgmtSvcInstance } #Start if the SharePoint Subscription Settings Service isn’t running $appSubSettingSvcInstance = Get-SPServiceInstance | Where-Object { $_.GetType().Name -eq "SPSubscriptionSettingsServiceInstance"} if ($appSubSettingSvcInstance.Status -ne "Online") { $serviceInstance = Start-SPServiceInstance -Identity $appSubSettingSvcInstance }
  • 20. #Get Application Pool for hosting service applications $appPoolServiceApps = Get-SPServiceApplicationPool -Identity $ServiceAppPoolName #Provision Subscription Settings Service Application $appSubSvc = New-SPSubscriptionSettingsServiceApplication –ApplicationPool $appPoolServiceApps –Name "Settings Service Application" – DatabaseName $SubscriptionSettingsServiceDB $proxySubSvc = New-SPSubscriptionSettingsServiceApplicationProxy –ServiceApplication $appSubSvc #Create App Management Service Application $appAppSvc = New-SPAppManagementServiceApplication -ApplicationPool $appPoolServiceApps -Name "App Management Service Application" - DatabaseName $AppManagementServiceDB $proxyAppSvc = New-SPAppManagementServiceApplicationProxy -ServiceApplication $appAppSvc #Recycle IIS IISRESET #Set Default On-Premises Tenant Add-in Prefix for Add-ins Set-SPAppSiteSubscriptionName -Name "app" -Confirm:$false #Complete configuring SharePoint 2013 to host add-ins
  • 22.  Add DNS entries to resolve provider hosted add-in URL  Import a High Trust certificate on Add-ins Host Servers  If you don't have PFX and CER files from the external/internal CA, one way to obtain is exporting with private key (e.g. NiksHighTrustCert.pfx) and with public key (e.g. NiksHighTrustCert.cer) for all the certs including root CAs and other parent certs in chain (RootCAHighTrustCert.cer) from the SharePoint servers.  CER format requires to register cert with SharePoint, PFX format requires for Add-ins  Usually, high trust certificate would be same as wildcard cert used for the SharePoint web applications if high trust Add-ins and SharePoint shares same domain.  Configure BUILTINIIS_IUSRS access to the High Trust cert  For the separate IIS server hosting Add-ins, configure BUILTINIIS_IUSRS users to the full control permission to cert  On Windows Server 2012 R2, Use command line tool - Windows HTTP Services Certificate Configuration Tool - WinHttpCertCfg.exe  On Windows Server 2008 R2, you can use Microsoft WSE 2.0 SP3 GUI tool, look up wildcard cert (e.g. *.niks.local) and gave full control IIS_IUSRS from the machine, restart the IIS  If IIS_IUSERs don’t have permission, it will throw Keyset doesn't exists eroor - http://webservices20.blogspot.com/2011/02/wcf-keyset-does-not-exist.html
  • 23. Step 2 – Configuring High-Trust for Provider Hosted Add-ins
  • 24. Remove existing SPTrustedSecurityTokenIssuer if exists Run PowerShell to configure High Trust – Trust cert using New-SPTrustedSecurityTokenIssuer Configure valid AllowOAuthOverHTTP settings for SSL or Non-SSL communication between SharePoint and Provider Hosted Add-ins
  • 25.  Remove existing SPTrustedSecurityTokenIssuer if exists  On the SP Server, Log in as Setup account to run PowerShell script and check if any previously registered SPTrustedSecurityTokenIssuer exists.  If there is a mal-functioned one and if the –IsTrustBroker switch was used then the bad tokenissuer might be getting called.  If this is the first time you are configuring the high trust add-in then you can skip this step.  Run Get-SPTrustedSecurityTokenIssuer.  If no Azure workflow is configured then this command should return empty.  If you get any issuer other than the workflow then run the Remove-SPTrustedSecurityTokenIssuer (pass the Id value from the above output) to delete it.
  • 26.  Configure the High Trust using Certificates  Run the PowerShell script from the SP Server to register cert with SharePoint by using public (cer) key to configure trust for your add-in  Each certificate in the chain is added to SharePoint's list of trusted root authorities with a call of the New- SPTrustedRootAuthority cmdlet.  It is important that IssuerID is needed each time you create add-ins in Visual Studio so put it somewhere safe (e.g. 9F0FF6C4-0DA6-429B-959A-07847DF6BF37)  Get the Serial Number from the App Cert - 6114c562000000000005 (here are the steps - https://msdn.microsoft.com/EN- US/library/office/jj860570.aspx#ConfigureRemote)
  • 28.
  • 29.  Configure valid settings for AllowOAuthOverHTTP  Configure AllowOAuthOverHTTP to FALSE for SSL communication between SharePoint and Provider Hosted Add-ins.  If any of your IIS web (either SharePoint or Provider hosted web add-in) has HTTP bindings then you must have AllowOAuthOverHTTP to TRUE otherwise you will get 403 error $serviceConfig = Get-SPSecurityTokenServiceConfig $serviceConfig.AllowOAuthOverHttp = $false $serviceConfig.Update()
  • 30. Step 3 – High-Trust Provider Hosted Add-ins Deployment
  • 31.  On the DNS Servers  Make sure DNS entry is available for Add-ins URL, PING to verify  On Provider Hosted Server  Create IIS Web Site and Virtual Directories to host Add-ins         
  • 32.  Remote web can be deployed on IIS, make sure asp.net is included as features  Web Site Name (e.g. ProviderHostedProdApp) and local folder (e.g. C:inetpubwwwrootphprodapp)  Add New DNS entry for remote web add-in (e.g. phprodapp.niks.local to server or load-balancer IP) and see if you can ping it  Bind this cert with SSL (e.g. *.niks.local), Host Header (e.g. phprodapp.niks.local), and IP (e.g. 192.168.1.51)  Ensure .NET 4.0 framework is selected as target framework - Make sure Application Pool is using v4.0 otherwise you will get error while deploying code  Configure Authentication of the Remote Web on IIS  Disable Anonymous Authentication for the IIS site hosting Remote Web  Enable Windows Authentication for the IIS site hosting remote web and plan to have Provider NTLM is selected above Negotiate  Add Virtual Directories to host Add-ins  Alias (e.g. prodphapp), Path – (e.g. C:inetpubwwwrootphprodappprodphapp)
  • 33. App Id: f5b99211-2f48-4747-8af0-bdfbbcf1b1b5 App Secret: ER8VtsjIfOU1Y2NrTMCfph+2LACCeOUpiaEMqr/zE2Y= Title: Prod Provider Hosted App App Domain: phprodapp.niks.local Redirect URI: https://phprodapp.niks.local/prodphapp/pages/default.aspx • App Registration – ~siteURL/_layouts/15/appregnew.aspx • App Lookup - ~siteURL/_layouts/15/appinv.aspx  Appid - generate  App secret - generate  App domain - phprodapp.niks.local  Redirect URL - https://phprodapp.niks.local/prodphapp/pages/default.aspx
  • 34.
  • 35.  Update the Web.Config file of App Web  VS adds ClientSigningCertificatePath and ClientSigningCertificatePassword. This requires certificate downloaded and stored on the local file system. <appSettings> <add key="ClientId" value="f5b99211-2f48-4747-8af0-bdfbbcf1b1b5" /> <add key="ClientSigningCertificatePath" value="C:CertsNiksHighTrustCert.pfx" /> <add key="ClientSigningCertificatePassword" value="pass@word1" /> <add key="IssuerId" value="9f0ff6c4-0da6-429b-959a-07847df6bf37" /> </appSettings>  No changes in the Token Issuer file in VS project  Visual studio template for Provider hosted add-in contains code to create access token based on certificate location.
  • 36.  Update the Web.Config file of App Web  VS adds ClientSigningCertificatePath and ClientSigningCertificatePassword. This shouldn’t be used for production add-ins. Instead use ClientSigningCertificateSerialNumber.  Find the ClientSigningCertificateSerialNumber from the cert binded to the provider hosted add-in (e.g. *.niks.local) <appSettings> <add key="ClientId" value="f5b99211-2f48-4747-8af0-bdfbbcf1b1b5" /> <add key="ClientSigningCertificateSerialNumber" value="6114c562000000000005" /> <add key="IssuerId" value="9f0ff6c4-0da6-429b-959a-07847df6bf37" /> </appSettings>  Update Token Issuer file in VS project  Since you are using on Serial Number instead of cert path and password for authorization, you need to update code to retrieve cert based on serial number - See Token Issuer section here - https://msdn.microsoft.com/en-us/library/office/jj860570.aspx
  • 37.  Provider Hosted Add-ins are consists of two projects in Visual Studio  Publishing App Web Package  Publishing App web copies files are remote web server and deployed on IIS  Create AppWeb package from the Visual Studio using publish approach  Create Profile (e.g. NiksRemote)  Connection - Publish Method - Web deploy package, Package Location (e.g. C:DeployProdProviderHostedAppWebProdProviderHostedAppWeb.zip) and Remote IIS Web Site Name (e.g. ProviderHostedProdApp/prodphapp)  Click Next - Release and Publish Package  Publishing Add-ins Package  Publishing App produces App file (.app extension) and that needs to be uploaded on App Catalog site to make it available for SharePoint sites  Create App package from the Visual Studio using publish approach  Remote Add-ins URL where web site is hosted (e.g. https://phprodapp.niks.local/prodphapp)  Remote Add-ins Client ID (e.g. f5b99211-2f48-4747-8af0-bdfbbcf1b1b5)
  • 38.  Deploying App Web Package  Copy the Package to the Remote Add-ins server, make sure webdeploy is installed on the additional server  Open cmd file and run Appweb deployment command (e.g. C:DeployProdProviderHostedAppWeb>ProdPr oviderHostedAppWeb.deploy.cmd /y)  Verify all the contents are getting published on the IIS virtual directory  Deploy App Package to App Catalog  
  • 41. Q&A • Blog - http://nikpatel.net/ • Twitter - @nikxpatel • Slideshare - slideshare.net/patenik2