SlideShare uma empresa Scribd logo
1 de 30
Developing hybrid SharePoint apps
that run on-premise and in the cloud
Bram de Jager
Macaw, The Netherlands
Microsoft Certified Solutions Master: SharePoint
Agenda
• Why do we need a new authentication model?
• Where does the new App model fit in?
• Inside OAuth
• Hybrid Apps
• Wrap-up
ANOTHER AUTHENTICATION MODEL?!
Why do we need a new authentication model?
WHERE DOES THE (NEW) APP MODEL
FIT IN?
Developing hybrid SharePoint apps that run on-premise and in the cloud
Customization Options
Sandbox
 Hosted in isolated
process
 Limited server side
SharePoint API
access
 No external
service calls
Full Trust
(a.k.a. Farm)
SharePoint
Apps
 Server side
SharePoint API
access (SSOM)
 Customizations to
file system or
servers
 Hosted in same
process as
SharePoint
 Classic model since
2007
 New Apps model
 Deployed from
corporate catalog
or Office Store
 Runs outside of
SharePoint process
 Can be deployed
on Azure, IIS,
Apache,…
 Simple install and
upgrade process
Code sandboxed
solutions are
deprecated in
SharePoint 2013
Cloud, On-Premise, and Hybrid
• Cloud
– Azure AD (WAAD) in O365
– Apps use OAuth
• On-Premises
– Apps user cert based trust
– On-prem to on-prem
• Hybrid
– Combination of Azure AD
and on-prem SharePoint
Azure AD
Office 365App
App SharePoint
Bram de Jager
SharePoint-hosted apps
on-premise and online
Scenario
• Build simple SharePoint-hosted app (list count)
• Deploy to on-premise App Catalog
• Deploy to online App Catalog
• Show lists in SharePoint Client Browser
Limitations SharePoint-hosted
• No custom server-side code (only HTML & JavaScript)
– Only supports current user in a page
– Can’t use elevated privileges
• No off-box logic
– Based on event in SharePoint
– No timer jobs available
INSIDE OAUTH
Developing hybrid SharePoint apps that run on-premise and in the cloud
Access token and issuer
OAuth-authenticated request
POST http://teams.contoso.com/sites/dev/_api/client.svc/ProcessQuery HTTP/1.1
Authorization: Bearer eyJ0eXAiOiJKV1QiLCJhbGciOiJub25lIn0.eyJhdWQiOi...
Content-Type: text/xml
Host: teams.contoso.com
Content-Length: 615
Expect: 100-continue
Accept-Encoding: gzip, deflate
<Request AddExpandoFieldTypeSuffix="true" SchemaVersion="15.0.0.0" LibraryVersion="15.0.0.0"
ApplicationName=".NET Library"
xmlns="http://schemas.microsoft.com/sharepoint/clientquery/2009"><Actions><ObjectPath Id="41"
ObjectPathId="40" /><ObjectPath Id="43" ObjectPathId="42" /><Query Id="44"
ObjectPathId="42"><Query SelectAllProperties="false"><Properties><Property Name="Title"
ScalarProperty="true" /></Properties>…
Decoded access token
{
"typ":JWT
"alg":RS256
"x5t":34-64-C5-BD-D2-BE-7F-2B-61-12-E2-F0-8E-9C-00-24-E3-3D-9F-E0
}
{
"aud": "00000003-0000-0ff1-ce00-000000000000/teams.contoso.com@3c2483eb-b061-4985-9bac-da7989c7f820",
"iss": "de89e8c4-9f67-48b7-bf42-368af4db1369@3c2483eb-b061-4985-9bac-da7989c7f820",
"nbf": "1372429268", (Friday June 28 2013 23:44:38)
"exp": "1372429868", (Friday June 28 2013 23:56:28)
"nameid": "s-1-5-21-785527463-2883119929-1484527358-500",
"nii": "urn:office:idp:activedirectory",
"actortoken":
"eyJ0eXAiOiJKV1QiLCJhbGciOiJSUzI1NiIsIng1dCI6IjNUYnY3cThmZzhGVWg5YkdyZnVtS3FUR1VZSSJ9.eyJhdWQiOiIwMDAwMDAwMy0
wMDAwLTBmZjEtY2UwMC0wMDAwMDAwMDAwMDAvdm0tc3AtMDFAM2MyNDgzZWItYjA2MS00OTg1LTliYWMtZGE3OTg5YzdmO
DIwIiwiaXNzIjoiYTU4ZTIzNDctMGVhZC00YmEwLWI0YjctNzUxMjBhYTA5ZTRlQDNjMjQ4M2ViLWIwNjEtNDk4NS05YmFjLWRhNzk4OW
M3ZjgyMCIsIm5iZiI6IjEzNzI0MjkyNjgiLCJleHAiOiIxNDMyNDI5MjY4IiwibmFtZWlkIjoiZGU4OWU4YzQtOWY2Ny00OGI3LWJmNDItMzY4
YWY0ZGIxMzY5QDNjMjQ4M2ViLWIwNj…"
}
Online authentication
On-premise authentication
Bram de Jager
Building a High-Trust (S2S)
app on-premise
Scenario
• Setup the server-to-server (S2S) trust
• Build a High-Trust app
• Show the “on behalf of”
HYBRID APPS
Developing hybrid SharePoint apps that run on-premise and in the cloud
Hybrid app
Office Developer Tools support
• In Visual Studio 2012 the app checks availability of
the ContextToken (present or not)
– TokenHelper class, app helper class
• Visual Studio 2013 with the new release of Office
Developer Tools introduces a new class
– SharePointContext class, takes care of switching
between ACS or S2S trust
Bram de Jager
Building a Hybrid app
Scenario
• Set-up trust between on-premise SharePoint Farm
and Azure Control Services (ACS)
• Build Hybrid SharePoint app that runs in
– SharePoint on-premise
– SharePoint Online
WRAP UP
Developing hybrid SharePoint apps that run on-premise and in the cloud
Summary
• The new App model is designed for both cloud and on-
premise
• Use the high-trust (S2S) authentication model for on-
premise scenarios
• In a hybrid environment connect on-premise SharePoint
farms to Apps in the cloud
• Build a single codebase hybrid App that works both on-
premise as in the cloud
Key takeaways
• Understanding authentication flow is a must for
every developer
• Don’t use Visual Studio 2012 any more
• Use Visual Studio 2013, make life a lot easier!
Resources
• Decode JWT, http://openidtest.uninett.no/jwt
• How to: Use an Office 365 SharePoint site to authorize
provider-hosted apps on an on-premises SharePoint site,
http://msdn.microsoft.com/en-
us/library/office/dn155905(v=office.15).aspx
– Microsoft Online Services Sign-In Assistant for IT Professionals
RTW (64-bit), http://www.microsoft.com/en-
us/download/details.aspx?id=41950
– Microsoft Online Services Module for Windows PowerShell (64-
bit), http://go.microsoft.com/fwlink/p/?linkid=236297
Thank you
• http://bramdejager.wordpress.com
• @bramdejager
• bram.de.jager@macaw.nl
• http://spcb.codeplex.com

Mais conteúdo relacionado

Mais procurados

O365Con18 - Hybrid SharePoint Deep Dive - Thomas Vochten
O365Con18 - Hybrid SharePoint Deep Dive - Thomas VochtenO365Con18 - Hybrid SharePoint Deep Dive - Thomas Vochten
O365Con18 - Hybrid SharePoint Deep Dive - Thomas VochtenNCCOMMS
 
SharePoint 2013 APIs demystified
SharePoint 2013 APIs demystifiedSharePoint 2013 APIs demystified
SharePoint 2013 APIs demystifiedSPC Adriatics
 
Building SharePoint 2013 Apps - Architecture, Authentication & Connectivity API
Building SharePoint 2013 Apps - Architecture, Authentication & Connectivity APIBuilding SharePoint 2013 Apps - Architecture, Authentication & Connectivity API
Building SharePoint 2013 Apps - Architecture, Authentication & Connectivity APISharePointRadi
 
O365Con18 - Azure AD Connect Inside and Out - Sander Berkouwer
O365Con18 - Azure AD Connect Inside and Out - Sander BerkouwerO365Con18 - Azure AD Connect Inside and Out - Sander Berkouwer
O365Con18 - Azure AD Connect Inside and Out - Sander BerkouwerNCCOMMS
 
Developer’s Independence Day: Introducing the SharePoint App Model
Developer’s Independence Day:Introducing the SharePoint App ModelDeveloper’s Independence Day:Introducing the SharePoint App Model
Developer’s Independence Day: Introducing the SharePoint App Modelbgerman
 
O365Con18 - External Collaboration with Azure B2B - Sjoukje Zaal
O365Con18 - External Collaboration with Azure B2B - Sjoukje ZaalO365Con18 - External Collaboration with Azure B2B - Sjoukje Zaal
O365Con18 - External Collaboration with Azure B2B - Sjoukje ZaalNCCOMMS
 
Apps 101 - Moving to the SharePoint 2013 App Model - Presented 7/27/13 at Sha...
Apps 101 - Moving to the SharePoint 2013 App Model - Presented 7/27/13 at Sha...Apps 101 - Moving to the SharePoint 2013 App Model - Presented 7/27/13 at Sha...
Apps 101 - Moving to the SharePoint 2013 App Model - Presented 7/27/13 at Sha...BlueMetalInc
 
Designing for SharePoint Provider Hosted Apps
Designing for SharePoint Provider Hosted AppsDesigning for SharePoint Provider Hosted Apps
Designing for SharePoint Provider Hosted AppsRoy Kim
 
Oauth and SharePoint 2013 Provider Hosted apps
Oauth and SharePoint 2013 Provider Hosted appsOauth and SharePoint 2013 Provider Hosted apps
Oauth and SharePoint 2013 Provider Hosted appsJames Tramel
 
SharePoint 2013 apps overview
SharePoint 2013 apps overviewSharePoint 2013 apps overview
SharePoint 2013 apps overviewElie Kash
 
Tutorial: Building Apps for SharePoint 2013 Inside and Outside of the Firewal...
Tutorial: Building Apps for SharePoint 2013 Inside and Outside of the Firewal...Tutorial: Building Apps for SharePoint 2013 Inside and Outside of the Firewal...
Tutorial: Building Apps for SharePoint 2013 Inside and Outside of the Firewal...SPTechCon
 
SPCA2013 - Developing Provider-Hosted Apps for SharePoint 2013
SPCA2013 - Developing Provider-Hosted Apps for SharePoint 2013SPCA2013 - Developing Provider-Hosted Apps for SharePoint 2013
SPCA2013 - Developing Provider-Hosted Apps for SharePoint 2013NCCOMMS
 
App Model For SharePoint 2013
App Model For SharePoint 2013App Model For SharePoint 2013
App Model For SharePoint 2013Toni Il Caiser
 
O365Con18 - PowerApps build custom forms for SharePoint with Azure Maps - Bra...
O365Con18 - PowerApps build custom forms for SharePoint with Azure Maps - Bra...O365Con18 - PowerApps build custom forms for SharePoint with Azure Maps - Bra...
O365Con18 - PowerApps build custom forms for SharePoint with Azure Maps - Bra...NCCOMMS
 
Spca2014 keynote johnson
Spca2014 keynote johnsonSpca2014 keynote johnson
Spca2014 keynote johnsonNCCOMMS
 
Improving the SharePoint Development Process with Continuous Integration
Improving the SharePoint Development Process with Continuous IntegrationImproving the SharePoint Development Process with Continuous Integration
Improving the SharePoint Development Process with Continuous IntegrationSharePoint Saturday New Jersey
 
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
 
[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
 

Mais procurados (20)

O365Con18 - Hybrid SharePoint Deep Dive - Thomas Vochten
O365Con18 - Hybrid SharePoint Deep Dive - Thomas VochtenO365Con18 - Hybrid SharePoint Deep Dive - Thomas Vochten
O365Con18 - Hybrid SharePoint Deep Dive - Thomas Vochten
 
SharePoint 2013 APIs demystified
SharePoint 2013 APIs demystifiedSharePoint 2013 APIs demystified
SharePoint 2013 APIs demystified
 
Building SharePoint 2013 Apps - Architecture, Authentication & Connectivity API
Building SharePoint 2013 Apps - Architecture, Authentication & Connectivity APIBuilding SharePoint 2013 Apps - Architecture, Authentication & Connectivity API
Building SharePoint 2013 Apps - Architecture, Authentication & Connectivity API
 
O365Con18 - Azure AD Connect Inside and Out - Sander Berkouwer
O365Con18 - Azure AD Connect Inside and Out - Sander BerkouwerO365Con18 - Azure AD Connect Inside and Out - Sander Berkouwer
O365Con18 - Azure AD Connect Inside and Out - Sander Berkouwer
 
Developer’s Independence Day: Introducing the SharePoint App Model
Developer’s Independence Day:Introducing the SharePoint App ModelDeveloper’s Independence Day:Introducing the SharePoint App Model
Developer’s Independence Day: Introducing the SharePoint App Model
 
O365Con18 - External Collaboration with Azure B2B - Sjoukje Zaal
O365Con18 - External Collaboration with Azure B2B - Sjoukje ZaalO365Con18 - External Collaboration with Azure B2B - Sjoukje Zaal
O365Con18 - External Collaboration with Azure B2B - Sjoukje Zaal
 
Apps 101 - Moving to the SharePoint 2013 App Model - Presented 7/27/13 at Sha...
Apps 101 - Moving to the SharePoint 2013 App Model - Presented 7/27/13 at Sha...Apps 101 - Moving to the SharePoint 2013 App Model - Presented 7/27/13 at Sha...
Apps 101 - Moving to the SharePoint 2013 App Model - Presented 7/27/13 at Sha...
 
Designing for SharePoint Provider Hosted Apps
Designing for SharePoint Provider Hosted AppsDesigning for SharePoint Provider Hosted Apps
Designing for SharePoint Provider Hosted Apps
 
Oauth and SharePoint 2013 Provider Hosted apps
Oauth and SharePoint 2013 Provider Hosted appsOauth and SharePoint 2013 Provider Hosted apps
Oauth and SharePoint 2013 Provider Hosted apps
 
SharePoint 2013 apps overview
SharePoint 2013 apps overviewSharePoint 2013 apps overview
SharePoint 2013 apps overview
 
OAuth in SharePoint 2013
OAuth in SharePoint 2013OAuth in SharePoint 2013
OAuth in SharePoint 2013
 
Tutorial: Building Apps for SharePoint 2013 Inside and Outside of the Firewal...
Tutorial: Building Apps for SharePoint 2013 Inside and Outside of the Firewal...Tutorial: Building Apps for SharePoint 2013 Inside and Outside of the Firewal...
Tutorial: Building Apps for SharePoint 2013 Inside and Outside of the Firewal...
 
SPCA2013 - Developing Provider-Hosted Apps for SharePoint 2013
SPCA2013 - Developing Provider-Hosted Apps for SharePoint 2013SPCA2013 - Developing Provider-Hosted Apps for SharePoint 2013
SPCA2013 - Developing Provider-Hosted Apps for SharePoint 2013
 
App Model For SharePoint 2013
App Model For SharePoint 2013App Model For SharePoint 2013
App Model For SharePoint 2013
 
O365Con18 - PowerApps build custom forms for SharePoint with Azure Maps - Bra...
O365Con18 - PowerApps build custom forms for SharePoint with Azure Maps - Bra...O365Con18 - PowerApps build custom forms for SharePoint with Azure Maps - Bra...
O365Con18 - PowerApps build custom forms for SharePoint with Azure Maps - Bra...
 
Spca2014 keynote johnson
Spca2014 keynote johnsonSpca2014 keynote johnson
Spca2014 keynote johnson
 
Improving the SharePoint Development Process with Continuous Integration
Improving the SharePoint Development Process with Continuous IntegrationImproving the SharePoint Development Process with Continuous Integration
Improving the SharePoint Development Process with Continuous Integration
 
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...
 
[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
 
[Roine] Serverless: Don't Take It Literally
[Roine] Serverless: Don't Take It Literally[Roine] Serverless: Don't Take It Literally
[Roine] Serverless: Don't Take It Literally
 

Semelhante a Developing Hybrid Apps for On-Premise and Cloud

SharePoint and Office 365 Development Workshop
SharePoint and Office 365 Development WorkshopSharePoint and Office 365 Development Workshop
SharePoint and Office 365 Development WorkshopEric Shupps
 
Windays14 - How to (remote) control Office 365 with Azure
Windays14 - How to (remote) control Office 365 with AzureWindays14 - How to (remote) control Office 365 with Azure
Windays14 - How to (remote) control Office 365 with Azureatwork
 
Power behind power apps and Ms flow
Power behind power apps and Ms flowPower behind power apps and Ms flow
Power behind power apps and Ms flowsamarcot
 
November 2022 CIAOPS Need to Know Webinar
November 2022 CIAOPS Need to Know WebinarNovember 2022 CIAOPS Need to Know Webinar
November 2022 CIAOPS Need to Know WebinarRobert Crane
 
淺談 Startup 公司的軟體開發流程 v2
淺談 Startup 公司的軟體開發流程 v2淺談 Startup 公司的軟體開發流程 v2
淺談 Startup 公司的軟體開發流程 v2Wen-Tien Chang
 
Agile startup company management and operation
Agile startup company management and operationAgile startup company management and operation
Agile startup company management and operationJiang Zhu
 
Microsoft PowerApps- 'What can really I do with it?'
Microsoft PowerApps- 'What can really I do with it?'Microsoft PowerApps- 'What can really I do with it?'
Microsoft PowerApps- 'What can really I do with it?'samarcot
 
ApacheCon NA 2019 : Customer segmentation and personalization using apache unomi
ApacheCon NA 2019 : Customer segmentation and personalization using apache unomiApacheCon NA 2019 : Customer segmentation and personalization using apache unomi
ApacheCon NA 2019 : Customer segmentation and personalization using apache unomiSerge Huber
 
Automating Application over OpenStack using Workflows
Automating Application over OpenStack using WorkflowsAutomating Application over OpenStack using Workflows
Automating Application over OpenStack using WorkflowsYaron Parasol
 
Building Business Applications in Office 365 SharePoint Online Using Logic Apps
Building Business Applications in Office 365 SharePoint Online Using Logic AppsBuilding Business Applications in Office 365 SharePoint Online Using Logic Apps
Building Business Applications in Office 365 SharePoint Online Using Logic AppsPrashant G Bhoyar (Microsoft MVP)
 
Streamlining Workflows: Unleashing Automation with Azure and Power Automate
Streamlining Workflows: Unleashing Automation with Azure and Power AutomateStreamlining Workflows: Unleashing Automation with Azure and Power Automate
Streamlining Workflows: Unleashing Automation with Azure and Power AutomateHamida Rebai Trabelsi
 
Microsoft Graph: Connect to essential data every app needs
Microsoft Graph: Connect to essential data every app needsMicrosoft Graph: Connect to essential data every app needs
Microsoft Graph: Connect to essential data every app needsMicrosoft Tech Community
 
Microsoft Graph: Connect to essential data every app needs
Microsoft Graph: Connect to essential data every app needsMicrosoft Graph: Connect to essential data every app needs
Microsoft Graph: Connect to essential data every app needsMicrosoft Tech Community
 
SPS Zurich 2018 - Azure Logic Apps: the new workflow engine
SPS Zurich 2018 - Azure Logic Apps: the new workflow engineSPS Zurich 2018 - Azure Logic Apps: the new workflow engine
SPS Zurich 2018 - Azure Logic Apps: the new workflow engineDavid Schneider
 
Programming with Azure Active Directory
Programming with Azure Active DirectoryProgramming with Azure Active Directory
Programming with Azure Active DirectoryJoonas Westlin
 
O365 saturday: How to (remote) control office 365 with windows azure-slideshare
O365 saturday: How to (remote) control office 365 with windows azure-slideshareO365 saturday: How to (remote) control office 365 with windows azure-slideshare
O365 saturday: How to (remote) control office 365 with windows azure-slideshareatwork
 
GIB2020 - Building Event-Driven Integration Architectures
GIB2020 - Building Event-Driven Integration ArchitecturesGIB2020 - Building Event-Driven Integration Architectures
GIB2020 - Building Event-Driven Integration ArchitecturesDaniel Toomey
 
Integrating Azure Machine Learning and Predictive Analytics with SharePoint O...
Integrating Azure Machine Learning and Predictive Analytics with SharePoint O...Integrating Azure Machine Learning and Predictive Analytics with SharePoint O...
Integrating Azure Machine Learning and Predictive Analytics with SharePoint O...Bhakthi Liyanage
 
Forge - DevCon 2016: Introduction to Forge 3D Print API Through Sample Applic...
Forge - DevCon 2016: Introduction to Forge 3D Print API Through Sample Applic...Forge - DevCon 2016: Introduction to Forge 3D Print API Through Sample Applic...
Forge - DevCon 2016: Introduction to Forge 3D Print API Through Sample Applic...Autodesk
 

Semelhante a Developing Hybrid Apps for On-Premise and Cloud (20)

SharePoint and Office 365 Development Workshop
SharePoint and Office 365 Development WorkshopSharePoint and Office 365 Development Workshop
SharePoint and Office 365 Development Workshop
 
Windays14 - How to (remote) control Office 365 with Azure
Windays14 - How to (remote) control Office 365 with AzureWindays14 - How to (remote) control Office 365 with Azure
Windays14 - How to (remote) control Office 365 with Azure
 
Power behind power apps and Ms flow
Power behind power apps and Ms flowPower behind power apps and Ms flow
Power behind power apps and Ms flow
 
November 2022 CIAOPS Need to Know Webinar
November 2022 CIAOPS Need to Know WebinarNovember 2022 CIAOPS Need to Know Webinar
November 2022 CIAOPS Need to Know Webinar
 
淺談 Startup 公司的軟體開發流程 v2
淺談 Startup 公司的軟體開發流程 v2淺談 Startup 公司的軟體開發流程 v2
淺談 Startup 公司的軟體開發流程 v2
 
Agile startup company management and operation
Agile startup company management and operationAgile startup company management and operation
Agile startup company management and operation
 
Microsoft PowerApps- 'What can really I do with it?'
Microsoft PowerApps- 'What can really I do with it?'Microsoft PowerApps- 'What can really I do with it?'
Microsoft PowerApps- 'What can really I do with it?'
 
OpenStack DevOps Workflows with TOSCA
OpenStack DevOps Workflows with TOSCAOpenStack DevOps Workflows with TOSCA
OpenStack DevOps Workflows with TOSCA
 
ApacheCon NA 2019 : Customer segmentation and personalization using apache unomi
ApacheCon NA 2019 : Customer segmentation and personalization using apache unomiApacheCon NA 2019 : Customer segmentation and personalization using apache unomi
ApacheCon NA 2019 : Customer segmentation and personalization using apache unomi
 
Automating Application over OpenStack using Workflows
Automating Application over OpenStack using WorkflowsAutomating Application over OpenStack using Workflows
Automating Application over OpenStack using Workflows
 
Building Business Applications in Office 365 SharePoint Online Using Logic Apps
Building Business Applications in Office 365 SharePoint Online Using Logic AppsBuilding Business Applications in Office 365 SharePoint Online Using Logic Apps
Building Business Applications in Office 365 SharePoint Online Using Logic Apps
 
Streamlining Workflows: Unleashing Automation with Azure and Power Automate
Streamlining Workflows: Unleashing Automation with Azure and Power AutomateStreamlining Workflows: Unleashing Automation with Azure and Power Automate
Streamlining Workflows: Unleashing Automation with Azure and Power Automate
 
Microsoft Graph: Connect to essential data every app needs
Microsoft Graph: Connect to essential data every app needsMicrosoft Graph: Connect to essential data every app needs
Microsoft Graph: Connect to essential data every app needs
 
Microsoft Graph: Connect to essential data every app needs
Microsoft Graph: Connect to essential data every app needsMicrosoft Graph: Connect to essential data every app needs
Microsoft Graph: Connect to essential data every app needs
 
SPS Zurich 2018 - Azure Logic Apps: the new workflow engine
SPS Zurich 2018 - Azure Logic Apps: the new workflow engineSPS Zurich 2018 - Azure Logic Apps: the new workflow engine
SPS Zurich 2018 - Azure Logic Apps: the new workflow engine
 
Programming with Azure Active Directory
Programming with Azure Active DirectoryProgramming with Azure Active Directory
Programming with Azure Active Directory
 
O365 saturday: How to (remote) control office 365 with windows azure-slideshare
O365 saturday: How to (remote) control office 365 with windows azure-slideshareO365 saturday: How to (remote) control office 365 with windows azure-slideshare
O365 saturday: How to (remote) control office 365 with windows azure-slideshare
 
GIB2020 - Building Event-Driven Integration Architectures
GIB2020 - Building Event-Driven Integration ArchitecturesGIB2020 - Building Event-Driven Integration Architectures
GIB2020 - Building Event-Driven Integration Architectures
 
Integrating Azure Machine Learning and Predictive Analytics with SharePoint O...
Integrating Azure Machine Learning and Predictive Analytics with SharePoint O...Integrating Azure Machine Learning and Predictive Analytics with SharePoint O...
Integrating Azure Machine Learning and Predictive Analytics with SharePoint O...
 
Forge - DevCon 2016: Introduction to Forge 3D Print API Through Sample Applic...
Forge - DevCon 2016: Introduction to Forge 3D Print API Through Sample Applic...Forge - DevCon 2016: Introduction to Forge 3D Print API Through Sample Applic...
Forge - DevCon 2016: Introduction to Forge 3D Print API Through Sample Applic...
 

Último

Software Quality Assurance Interview Questions
Software Quality Assurance Interview QuestionsSoftware Quality Assurance Interview Questions
Software Quality Assurance Interview QuestionsArshad QA
 
Cloud Management Software Platforms: OpenStack
Cloud Management Software Platforms: OpenStackCloud Management Software Platforms: OpenStack
Cloud Management Software Platforms: OpenStackVICTOR MAESTRE RAMIREZ
 
How To Use Server-Side Rendering with Nuxt.js
How To Use Server-Side Rendering with Nuxt.jsHow To Use Server-Side Rendering with Nuxt.js
How To Use Server-Side Rendering with Nuxt.jsAndolasoft Inc
 
Diamond Application Development Crafting Solutions with Precision
Diamond Application Development Crafting Solutions with PrecisionDiamond Application Development Crafting Solutions with Precision
Diamond Application Development Crafting Solutions with PrecisionSolGuruz
 
Right Money Management App For Your Financial Goals
Right Money Management App For Your Financial GoalsRight Money Management App For Your Financial Goals
Right Money Management App For Your Financial GoalsJhone kinadey
 
DNT_Corporate presentation know about us
DNT_Corporate presentation know about usDNT_Corporate presentation know about us
DNT_Corporate presentation know about usDynamic Netsoft
 
Salesforce Certified Field Service Consultant
Salesforce Certified Field Service ConsultantSalesforce Certified Field Service Consultant
Salesforce Certified Field Service ConsultantAxelRicardoTrocheRiq
 
Building a General PDE Solving Framework with Symbolic-Numeric Scientific Mac...
Building a General PDE Solving Framework with Symbolic-Numeric Scientific Mac...Building a General PDE Solving Framework with Symbolic-Numeric Scientific Mac...
Building a General PDE Solving Framework with Symbolic-Numeric Scientific Mac...stazi3110
 
Active Directory Penetration Testing, cionsystems.com.pdf
Active Directory Penetration Testing, cionsystems.com.pdfActive Directory Penetration Testing, cionsystems.com.pdf
Active Directory Penetration Testing, cionsystems.com.pdfCionsystems
 
Der Spagat zwischen BIAS und FAIRNESS (2024)
Der Spagat zwischen BIAS und FAIRNESS (2024)Der Spagat zwischen BIAS und FAIRNESS (2024)
Der Spagat zwischen BIAS und FAIRNESS (2024)OPEN KNOWLEDGE GmbH
 
5 Signs You Need a Fashion PLM Software.pdf
5 Signs You Need a Fashion PLM Software.pdf5 Signs You Need a Fashion PLM Software.pdf
5 Signs You Need a Fashion PLM Software.pdfWave PLM
 
Unlocking the Future of AI Agents with Large Language Models
Unlocking the Future of AI Agents with Large Language ModelsUnlocking the Future of AI Agents with Large Language Models
Unlocking the Future of AI Agents with Large Language Modelsaagamshah0812
 
(Genuine) Escort Service Lucknow | Starting ₹,5K To @25k with A/C 🧑🏽‍❤️‍🧑🏻 89...
(Genuine) Escort Service Lucknow | Starting ₹,5K To @25k with A/C 🧑🏽‍❤️‍🧑🏻 89...(Genuine) Escort Service Lucknow | Starting ₹,5K To @25k with A/C 🧑🏽‍❤️‍🧑🏻 89...
(Genuine) Escort Service Lucknow | Starting ₹,5K To @25k with A/C 🧑🏽‍❤️‍🧑🏻 89...gurkirankumar98700
 
Advancing Engineering with AI through the Next Generation of Strategic Projec...
Advancing Engineering with AI through the Next Generation of Strategic Projec...Advancing Engineering with AI through the Next Generation of Strategic Projec...
Advancing Engineering with AI through the Next Generation of Strategic Projec...OnePlan Solutions
 
Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...
Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...
Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...MyIntelliSource, Inc.
 
Unveiling the Tech Salsa of LAMs with Janus in Real-Time Applications
Unveiling the Tech Salsa of LAMs with Janus in Real-Time ApplicationsUnveiling the Tech Salsa of LAMs with Janus in Real-Time Applications
Unveiling the Tech Salsa of LAMs with Janus in Real-Time ApplicationsAlberto González Trastoy
 
The Essentials of Digital Experience Monitoring_ A Comprehensive Guide.pdf
The Essentials of Digital Experience Monitoring_ A Comprehensive Guide.pdfThe Essentials of Digital Experience Monitoring_ A Comprehensive Guide.pdf
The Essentials of Digital Experience Monitoring_ A Comprehensive Guide.pdfkalichargn70th171
 
What is Binary Language? Computer Number Systems
What is Binary Language?  Computer Number SystemsWhat is Binary Language?  Computer Number Systems
What is Binary Language? Computer Number SystemsJheuzeDellosa
 

Último (20)

Software Quality Assurance Interview Questions
Software Quality Assurance Interview QuestionsSoftware Quality Assurance Interview Questions
Software Quality Assurance Interview Questions
 
Vip Call Girls Noida ➡️ Delhi ➡️ 9999965857 No Advance 24HRS Live
Vip Call Girls Noida ➡️ Delhi ➡️ 9999965857 No Advance 24HRS LiveVip Call Girls Noida ➡️ Delhi ➡️ 9999965857 No Advance 24HRS Live
Vip Call Girls Noida ➡️ Delhi ➡️ 9999965857 No Advance 24HRS Live
 
Cloud Management Software Platforms: OpenStack
Cloud Management Software Platforms: OpenStackCloud Management Software Platforms: OpenStack
Cloud Management Software Platforms: OpenStack
 
How To Use Server-Side Rendering with Nuxt.js
How To Use Server-Side Rendering with Nuxt.jsHow To Use Server-Side Rendering with Nuxt.js
How To Use Server-Side Rendering with Nuxt.js
 
Diamond Application Development Crafting Solutions with Precision
Diamond Application Development Crafting Solutions with PrecisionDiamond Application Development Crafting Solutions with Precision
Diamond Application Development Crafting Solutions with Precision
 
Right Money Management App For Your Financial Goals
Right Money Management App For Your Financial GoalsRight Money Management App For Your Financial Goals
Right Money Management App For Your Financial Goals
 
DNT_Corporate presentation know about us
DNT_Corporate presentation know about usDNT_Corporate presentation know about us
DNT_Corporate presentation know about us
 
Salesforce Certified Field Service Consultant
Salesforce Certified Field Service ConsultantSalesforce Certified Field Service Consultant
Salesforce Certified Field Service Consultant
 
Building a General PDE Solving Framework with Symbolic-Numeric Scientific Mac...
Building a General PDE Solving Framework with Symbolic-Numeric Scientific Mac...Building a General PDE Solving Framework with Symbolic-Numeric Scientific Mac...
Building a General PDE Solving Framework with Symbolic-Numeric Scientific Mac...
 
Active Directory Penetration Testing, cionsystems.com.pdf
Active Directory Penetration Testing, cionsystems.com.pdfActive Directory Penetration Testing, cionsystems.com.pdf
Active Directory Penetration Testing, cionsystems.com.pdf
 
Der Spagat zwischen BIAS und FAIRNESS (2024)
Der Spagat zwischen BIAS und FAIRNESS (2024)Der Spagat zwischen BIAS und FAIRNESS (2024)
Der Spagat zwischen BIAS und FAIRNESS (2024)
 
5 Signs You Need a Fashion PLM Software.pdf
5 Signs You Need a Fashion PLM Software.pdf5 Signs You Need a Fashion PLM Software.pdf
5 Signs You Need a Fashion PLM Software.pdf
 
Unlocking the Future of AI Agents with Large Language Models
Unlocking the Future of AI Agents with Large Language ModelsUnlocking the Future of AI Agents with Large Language Models
Unlocking the Future of AI Agents with Large Language Models
 
Exploring iOS App Development: Simplifying the Process
Exploring iOS App Development: Simplifying the ProcessExploring iOS App Development: Simplifying the Process
Exploring iOS App Development: Simplifying the Process
 
(Genuine) Escort Service Lucknow | Starting ₹,5K To @25k with A/C 🧑🏽‍❤️‍🧑🏻 89...
(Genuine) Escort Service Lucknow | Starting ₹,5K To @25k with A/C 🧑🏽‍❤️‍🧑🏻 89...(Genuine) Escort Service Lucknow | Starting ₹,5K To @25k with A/C 🧑🏽‍❤️‍🧑🏻 89...
(Genuine) Escort Service Lucknow | Starting ₹,5K To @25k with A/C 🧑🏽‍❤️‍🧑🏻 89...
 
Advancing Engineering with AI through the Next Generation of Strategic Projec...
Advancing Engineering with AI through the Next Generation of Strategic Projec...Advancing Engineering with AI through the Next Generation of Strategic Projec...
Advancing Engineering with AI through the Next Generation of Strategic Projec...
 
Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...
Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...
Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...
 
Unveiling the Tech Salsa of LAMs with Janus in Real-Time Applications
Unveiling the Tech Salsa of LAMs with Janus in Real-Time ApplicationsUnveiling the Tech Salsa of LAMs with Janus in Real-Time Applications
Unveiling the Tech Salsa of LAMs with Janus in Real-Time Applications
 
The Essentials of Digital Experience Monitoring_ A Comprehensive Guide.pdf
The Essentials of Digital Experience Monitoring_ A Comprehensive Guide.pdfThe Essentials of Digital Experience Monitoring_ A Comprehensive Guide.pdf
The Essentials of Digital Experience Monitoring_ A Comprehensive Guide.pdf
 
What is Binary Language? Computer Number Systems
What is Binary Language?  Computer Number SystemsWhat is Binary Language?  Computer Number Systems
What is Binary Language? Computer Number Systems
 

Developing Hybrid Apps for On-Premise and Cloud

  • 1. Developing hybrid SharePoint apps that run on-premise and in the cloud Bram de Jager Macaw, The Netherlands Microsoft Certified Solutions Master: SharePoint
  • 2. Agenda • Why do we need a new authentication model? • Where does the new App model fit in? • Inside OAuth • Hybrid Apps • Wrap-up
  • 3. ANOTHER AUTHENTICATION MODEL?! Why do we need a new authentication model?
  • 4.
  • 5.
  • 6. WHERE DOES THE (NEW) APP MODEL FIT IN? Developing hybrid SharePoint apps that run on-premise and in the cloud
  • 7. Customization Options Sandbox  Hosted in isolated process  Limited server side SharePoint API access  No external service calls Full Trust (a.k.a. Farm) SharePoint Apps  Server side SharePoint API access (SSOM)  Customizations to file system or servers  Hosted in same process as SharePoint  Classic model since 2007  New Apps model  Deployed from corporate catalog or Office Store  Runs outside of SharePoint process  Can be deployed on Azure, IIS, Apache,…  Simple install and upgrade process Code sandboxed solutions are deprecated in SharePoint 2013
  • 8. Cloud, On-Premise, and Hybrid • Cloud – Azure AD (WAAD) in O365 – Apps use OAuth • On-Premises – Apps user cert based trust – On-prem to on-prem • Hybrid – Combination of Azure AD and on-prem SharePoint Azure AD Office 365App App SharePoint
  • 9. Bram de Jager SharePoint-hosted apps on-premise and online
  • 10. Scenario • Build simple SharePoint-hosted app (list count) • Deploy to on-premise App Catalog • Deploy to online App Catalog • Show lists in SharePoint Client Browser
  • 11. Limitations SharePoint-hosted • No custom server-side code (only HTML & JavaScript) – Only supports current user in a page – Can’t use elevated privileges • No off-box logic – Based on event in SharePoint – No timer jobs available
  • 12. INSIDE OAUTH Developing hybrid SharePoint apps that run on-premise and in the cloud
  • 14. OAuth-authenticated request POST http://teams.contoso.com/sites/dev/_api/client.svc/ProcessQuery HTTP/1.1 Authorization: Bearer eyJ0eXAiOiJKV1QiLCJhbGciOiJub25lIn0.eyJhdWQiOi... Content-Type: text/xml Host: teams.contoso.com Content-Length: 615 Expect: 100-continue Accept-Encoding: gzip, deflate <Request AddExpandoFieldTypeSuffix="true" SchemaVersion="15.0.0.0" LibraryVersion="15.0.0.0" ApplicationName=".NET Library" xmlns="http://schemas.microsoft.com/sharepoint/clientquery/2009"><Actions><ObjectPath Id="41" ObjectPathId="40" /><ObjectPath Id="43" ObjectPathId="42" /><Query Id="44" ObjectPathId="42"><Query SelectAllProperties="false"><Properties><Property Name="Title" ScalarProperty="true" /></Properties>…
  • 15. Decoded access token { "typ":JWT "alg":RS256 "x5t":34-64-C5-BD-D2-BE-7F-2B-61-12-E2-F0-8E-9C-00-24-E3-3D-9F-E0 } { "aud": "00000003-0000-0ff1-ce00-000000000000/teams.contoso.com@3c2483eb-b061-4985-9bac-da7989c7f820", "iss": "de89e8c4-9f67-48b7-bf42-368af4db1369@3c2483eb-b061-4985-9bac-da7989c7f820", "nbf": "1372429268", (Friday June 28 2013 23:44:38) "exp": "1372429868", (Friday June 28 2013 23:56:28) "nameid": "s-1-5-21-785527463-2883119929-1484527358-500", "nii": "urn:office:idp:activedirectory", "actortoken": "eyJ0eXAiOiJKV1QiLCJhbGciOiJSUzI1NiIsIng1dCI6IjNUYnY3cThmZzhGVWg5YkdyZnVtS3FUR1VZSSJ9.eyJhdWQiOiIwMDAwMDAwMy0 wMDAwLTBmZjEtY2UwMC0wMDAwMDAwMDAwMDAvdm0tc3AtMDFAM2MyNDgzZWItYjA2MS00OTg1LTliYWMtZGE3OTg5YzdmO DIwIiwiaXNzIjoiYTU4ZTIzNDctMGVhZC00YmEwLWI0YjctNzUxMjBhYTA5ZTRlQDNjMjQ4M2ViLWIwNjEtNDk4NS05YmFjLWRhNzk4OW M3ZjgyMCIsIm5iZiI6IjEzNzI0MjkyNjgiLCJleHAiOiIxNDMyNDI5MjY4IiwibmFtZWlkIjoiZGU4OWU4YzQtOWY2Ny00OGI3LWJmNDItMzY4 YWY0ZGIxMzY5QDNjMjQ4M2ViLWIwNj…" }
  • 18. Bram de Jager Building a High-Trust (S2S) app on-premise
  • 19. Scenario • Setup the server-to-server (S2S) trust • Build a High-Trust app • Show the “on behalf of”
  • 20. HYBRID APPS Developing hybrid SharePoint apps that run on-premise and in the cloud
  • 22.
  • 23. Office Developer Tools support • In Visual Studio 2012 the app checks availability of the ContextToken (present or not) – TokenHelper class, app helper class • Visual Studio 2013 with the new release of Office Developer Tools introduces a new class – SharePointContext class, takes care of switching between ACS or S2S trust
  • 24. Bram de Jager Building a Hybrid app
  • 25. Scenario • Set-up trust between on-premise SharePoint Farm and Azure Control Services (ACS) • Build Hybrid SharePoint app that runs in – SharePoint on-premise – SharePoint Online
  • 26. WRAP UP Developing hybrid SharePoint apps that run on-premise and in the cloud
  • 27. Summary • The new App model is designed for both cloud and on- premise • Use the high-trust (S2S) authentication model for on- premise scenarios • In a hybrid environment connect on-premise SharePoint farms to Apps in the cloud • Build a single codebase hybrid App that works both on- premise as in the cloud
  • 28. Key takeaways • Understanding authentication flow is a must for every developer • Don’t use Visual Studio 2012 any more • Use Visual Studio 2013, make life a lot easier!
  • 29. Resources • Decode JWT, http://openidtest.uninett.no/jwt • How to: Use an Office 365 SharePoint site to authorize provider-hosted apps on an on-premises SharePoint site, http://msdn.microsoft.com/en- us/library/office/dn155905(v=office.15).aspx – Microsoft Online Services Sign-In Assistant for IT Professionals RTW (64-bit), http://www.microsoft.com/en- us/download/details.aspx?id=41950 – Microsoft Online Services Module for Windows PowerShell (64- bit), http://go.microsoft.com/fwlink/p/?linkid=236297
  • 30. Thank you • http://bramdejager.wordpress.com • @bramdejager • bram.de.jager@macaw.nl • http://spcb.codeplex.com