SlideShare a Scribd company logo
Silber-Partner: Veranstalter:
High-Trust App Add-In Model
for On-Premises Development
Edin Kapić
Edin Kapić
• SharePoint Senior
Architect & Team Lead
in Sogeti, Barcelona
• President of SharePoint
User Group Catalonia
(SUG.CAT)
• Writer at Pluralsight
• SharePoint Server Office
Servers and Services
MVP
• Tinker & geek
Email : mail@edinkapic.com
Twitter : @ekapic
LinkedIn : edinkapic
Disclaimer
„besonders vertrauenswürdiger
Add-Ins für SharePoint“
Agenda
 SharePoint app model review
 High-trust apps mechanism
 DEMO
 Advanced scenarios
SharePoint “cloud apps model”
 SharePoint-hosted
apps
 Provider-hosted
apps (remote apps)
Provider-hosted apps
 The code runs in a separate
server
 Uses REST/CSOM API to call
SharePoint
 Uses OAuth for authorization
High-Trust Add-Ins SharePoint for On-Premises Development
High-Trust Add-Ins SharePoint for On-Premises Development
App authentication
 Apps are now first-class
security principals
 They have their own identity
and permissions
 App authentication only
happens on REST/CSOM
endpoints
App authentication methods
 OAuth
– Brokered by Access Control Service (ACS)
• Server-to-server
– Using SSL certificates
Low-trust app authentication
Provider Hosted
Add-Ins
Access Control
System
SharePoint
2013
Context Token
Access Token
SharePoint Online
High-trust app authentication
Provider Hosted Add-Ins
SharePoint
2013
Access token
Data
High-Trust Add-Ins SharePoint for On-Premises Development
High-Trust Add-Ins SharePoint for On-Premises Development
High-trust app prerequisites
 SSL certificate
 Configure Trusted Root Authority
 Configure Trusted Token Issuer
 Secure Token Service
 User profiles
High-trust mechanism
 App has x.509 certificate with public/private key pair
 Private key used to sign certain aspects in access token
 Public key registered with SharePoint farm
 This creates a trusted security token issuer
 App creates access token to call into SharePoint
 App creates access token with a specific client ID and signs it with private key
 Trusted security token issuer validates signature
 SharePoint establishes app identity
 App identity maps to a specific client ID
 You can have many client IDs associated with a single x.509 certificate
Source:TedPattisonSPC12talk
High-Trust Add-Ins SharePoint for On-Premises Development
Gotchas
 Provider-hosted app authentication (Windows,
SAML, fixed…)
 SharePoint host web application mode (Claims,
Classic-Windows) can cause auth failures
 TokenHelper uses Active Directory SID as the
identifier
 App-only tokens are not supported by all API
areas
High-Trust Add-Ins SharePoint for On-Premises Development
Other Authentication Methods
 TokenHelper uses WindowsIdentity under the
covers
 Custom code for SAML Federated
Authentication contributed by Wictor Wilén
(http://bit.ly/1aFponK)
 FBA is also supported
Using other technology stacks
 Overview of options by
Kirk Evans
http://bit.ly/1jK3Evh
 Java, PHP, Node.js
 JWT token creation
 Token signing with X.509
certificate
Extending the TokenHelper code
 TokenHelper is just code, you can edit and
extend it
 Retrieving app parameters from a database
 Caching access tokens
 Creating custom user identity
 Extending token lifetime
 Retrieving certificates from a repository
My recent project
 3 provider-hosted apps (2 MVC, 1 Lightswitch)
 SharePoint 2013 back-end platform
 2 types of users
 Windows
 Online Banking
High-Trust Add-Ins SharePoint for On-Premises Development
High-trust apps in SharePoint 2013
 Alternative for on-premises
app development
 Cloud-ready code
 More flexible than the low-
trust apps
Useful information about HTA
 Kirk Evans
http://blogs.msdn.com/b/kaevans/
 Steve Peschka
http://blogs.technet.com/b/speschka/
 Wictor Wilén
http://www.wictorwilen.se
FRAGEN?
Ich freue mich auf Ihr Feedback!
Silber-Partner: Veranstalter:
Vielen Dank!
Edin Kapić

More Related Content

PPTX
ESPC15 - Extending Authentication and Authorization
PPTX
Extending Authentication and Authorization
PPTX
SPS London 2015 - IoT and Room Reservation Cloud-Style
PPTX
Office 365 api vs share point app model
PPTX
SPS Belgium 2015 - High-trust Apps for On-Premises Development
PPTX
SharePoint, ADFS and Claims Auth
PPTX
OAuth in SharePoint 2013
PPTX
T28 implementing adfs and hybrid share point
ESPC15 - Extending Authentication and Authorization
Extending Authentication and Authorization
SPS London 2015 - IoT and Room Reservation Cloud-Style
Office 365 api vs share point app model
SPS Belgium 2015 - High-trust Apps for On-Premises Development
SharePoint, ADFS and Claims Auth
OAuth in SharePoint 2013
T28 implementing adfs and hybrid share point

What's hot (20)

PPTX
Azure AD B2C Webinar Series: Identity Protocols OIDC and OAuth2 part 2
PPTX
SharePoint 2013 APIs demystified
PPTX
Azure AD B2C Webinar Series: Identity Protocols OIDC and OAuth2 part 1
PPTX
Oauth and SharePoint 2013 Provider Hosted apps
PPTX
Understanding SharePoint Apps, authentication and authorization infrastructur...
PPTX
The bits and pieces of Azure AD B2C
PPTX
Azure AD B2C Webinar Series: Custom Policies Part 1
PPTX
Introduction to Azure AD and Azure AD B2C
PDF
Azure AD B2C – integration in a bank
PPTX
Azure AD B2C Webinar Series: Custom Policies Part 2 Policy Walkthrough
PDF
O365Con18 - External Collaboration with Azure B2B - Sjoukje Zaal
PPTX
DevSum: Azure AD B2C Application security made easy
PPTX
Intelligent Cloud Conference: Azure AD B2C Application security made easy
PPTX
Dear Azure: External collaboration with Azure AD B2B
PPTX
Identity Management in SharePoint 2013
PPTX
Building Apps for SharePoint 2013 by Andrew Connell - SPTechCon
PPTX
Azure for SharePoint Developers - Workshop - Part 1: Azure AD
PPTX
A Developer's Introduction to Azure Active Directory B2C
PPTX
Azure for SharePoint Developers - Workshop - Part 4: Bots
PPTX
Spsnl18 exploring identity management options in office 365
Azure AD B2C Webinar Series: Identity Protocols OIDC and OAuth2 part 2
SharePoint 2013 APIs demystified
Azure AD B2C Webinar Series: Identity Protocols OIDC and OAuth2 part 1
Oauth and SharePoint 2013 Provider Hosted apps
Understanding SharePoint Apps, authentication and authorization infrastructur...
The bits and pieces of Azure AD B2C
Azure AD B2C Webinar Series: Custom Policies Part 1
Introduction to Azure AD and Azure AD B2C
Azure AD B2C – integration in a bank
Azure AD B2C Webinar Series: Custom Policies Part 2 Policy Walkthrough
O365Con18 - External Collaboration with Azure B2B - Sjoukje Zaal
DevSum: Azure AD B2C Application security made easy
Intelligent Cloud Conference: Azure AD B2C Application security made easy
Dear Azure: External collaboration with Azure AD B2B
Identity Management in SharePoint 2013
Building Apps for SharePoint 2013 by Andrew Connell - SPTechCon
Azure for SharePoint Developers - Workshop - Part 1: Azure AD
A Developer's Introduction to Azure Active Directory B2C
Azure for SharePoint Developers - Workshop - Part 4: Bots
Spsnl18 exploring identity management options in office 365
Ad

Viewers also liked (6)

PDF
SharePoint Fest Chicago 2015 - Anatomy of configuring provider hosted add-in...
PPTX
Developing a Provider Hosted SharePoint app
PDF
SharePoint Add-Ins - Brief Overview
PDF
Building SharePoint 2013 Apps - Architecture, Authentication & Connectivity API
PPTX
Modern SharePoint Development using Visual Studio Code
PPTX
Chris O'Brien - Modern SharePoint sites and the SharePoint Framework - reference
SharePoint Fest Chicago 2015 - Anatomy of configuring provider hosted add-in...
Developing a Provider Hosted SharePoint app
SharePoint Add-Ins - Brief Overview
Building SharePoint 2013 Apps - Architecture, Authentication & Connectivity API
Modern SharePoint Development using Visual Studio Code
Chris O'Brien - Modern SharePoint sites and the SharePoint Framework - reference
Ad

Similar to High-Trust Add-Ins SharePoint for On-Premises Development (20)

PPTX
Spsbe15 high-trust apps for on-premises development
PPTX
Securing SharePoint Apps with OAuth
PPTX
SharePoint 2010 Extranets and Authentication: How will SharePoint 2010 connec...
PPTX
"Secure Mobile Apps with the Microsoft Identity Platform", Christos Matskas, ...
PDF
Oauth Nightmares Abstract OAuth Nightmares
PPTX
Developing Apps with Azure AD
PPTX
Api security
PPTX
Microsoft identity manoj mittal
PPTX
Wso2 is integration with .net core
PPTX
CTU June 2011 - Windows Azure App Fabric
PPTX
Microsoft Graph API Webinar Application Permissions
PPTX
ACDKOCHI19 - Enterprise grade security for web and mobile applications on AWS
PPTX
Tutorial: Building Apps for SharePoint 2013 Inside and Outside of the Firewal...
PPTX
Introduction to the Microsoft identity platform for developers
PPTX
Office Track: SharePoint Apps for the IT Pro - Thomas Vochten
PDF
SharePointFest 2013 Washington DC - SPT 103 - SharePoint 2013 Extranets: How ...
PPTX
Developing SharePoint 2013 apps with Visual Studio 2012 - Microsoft TechDays ...
PDF
SPTECHCON - Who are You and What Do You Want - Working with OAuth in SharePoi...
PDF
Who Are You and What Do You Want? Working with OAuth in SharePoint 2013.
PPTX
SPSLisbon 2017 Office 365 Multi-factor Authentication with Microsoft Azure Ac...
Spsbe15 high-trust apps for on-premises development
Securing SharePoint Apps with OAuth
SharePoint 2010 Extranets and Authentication: How will SharePoint 2010 connec...
"Secure Mobile Apps with the Microsoft Identity Platform", Christos Matskas, ...
Oauth Nightmares Abstract OAuth Nightmares
Developing Apps with Azure AD
Api security
Microsoft identity manoj mittal
Wso2 is integration with .net core
CTU June 2011 - Windows Azure App Fabric
Microsoft Graph API Webinar Application Permissions
ACDKOCHI19 - Enterprise grade security for web and mobile applications on AWS
Tutorial: Building Apps for SharePoint 2013 Inside and Outside of the Firewal...
Introduction to the Microsoft identity platform for developers
Office Track: SharePoint Apps for the IT Pro - Thomas Vochten
SharePointFest 2013 Washington DC - SPT 103 - SharePoint 2013 Extranets: How ...
Developing SharePoint 2013 apps with Visual Studio 2012 - Microsoft TechDays ...
SPTECHCON - Who are You and What Do You Want - Working with OAuth in SharePoi...
Who Are You and What Do You Want? Working with OAuth in SharePoint 2013.
SPSLisbon 2017 Office 365 Multi-factor Authentication with Microsoft Azure Ac...

More from Edin Kapic (19)

PPTX
Rx la joya oculta de Net
PPTX
Personal Branding for Developers
PPTX
SharePoint Saturday Stockholm 2015 - Building Maintainable and Testable Share...
PPTX
ESPC14 Social Business Value Demystified
PPTX
Maintainable Testable SharePoint Components SPSBE 2014
PPTX
MVP Open Day 2014 - Hacking Human Behaviour
PPTX
SPS Stockholm 7 Key Things for Building a Highly-Scalable SharePoint 2013 App
PPTX
7 Key Things for Building a Highly-Scalable SharePoint 2013 App
PPTX
Social Business Value Demystified: Real-World Experiences
PPTX
BcnDevCon13 - No Designer? No Problem!
PPTX
BcnDevCon12 - Una vuelta por Orchard CMS
PPTX
BcnDevCon12 - CQRS explicado a mi compañero arquitecto
PPTX
Modelos de madurez de SharePoint
PPTX
SharePoint 2013 Novedades y más allá (Introducción de SUG.CAT)
PPTX
SUG.CAT First Monday Noviembre 2012
PPTX
JavaScript per a desenvolupadors de C#
PPTX
CatDotNet - Farmville para SharePoint
PPTX
Universidad de La Habana - SharePoint, Listas y XSLT
PPSX
SharePoint kao razvojna platforma za ASP.NET developere
Rx la joya oculta de Net
Personal Branding for Developers
SharePoint Saturday Stockholm 2015 - Building Maintainable and Testable Share...
ESPC14 Social Business Value Demystified
Maintainable Testable SharePoint Components SPSBE 2014
MVP Open Day 2014 - Hacking Human Behaviour
SPS Stockholm 7 Key Things for Building a Highly-Scalable SharePoint 2013 App
7 Key Things for Building a Highly-Scalable SharePoint 2013 App
Social Business Value Demystified: Real-World Experiences
BcnDevCon13 - No Designer? No Problem!
BcnDevCon12 - Una vuelta por Orchard CMS
BcnDevCon12 - CQRS explicado a mi compañero arquitecto
Modelos de madurez de SharePoint
SharePoint 2013 Novedades y más allá (Introducción de SUG.CAT)
SUG.CAT First Monday Noviembre 2012
JavaScript per a desenvolupadors de C#
CatDotNet - Farmville para SharePoint
Universidad de La Habana - SharePoint, Listas y XSLT
SharePoint kao razvojna platforma za ASP.NET developere

Recently uploaded (20)

PDF
Per capita expenditure prediction using model stacking based on satellite ima...
PDF
Machine learning based COVID-19 study performance prediction
PDF
Chapter 3 Spatial Domain Image Processing.pdf
PDF
How UI/UX Design Impacts User Retention in Mobile Apps.pdf
PDF
Diabetes mellitus diagnosis method based random forest with bat algorithm
PDF
cuic standard and advanced reporting.pdf
PDF
Unlocking AI with Model Context Protocol (MCP)
PDF
7 ChatGPT Prompts to Help You Define Your Ideal Customer Profile.pdf
PDF
Review of recent advances in non-invasive hemoglobin estimation
PDF
Building Integrated photovoltaic BIPV_UPV.pdf
PPTX
sap open course for s4hana steps from ECC to s4
PDF
Build a system with the filesystem maintained by OSTree @ COSCUP 2025
PDF
NewMind AI Weekly Chronicles - August'25 Week I
PPTX
VMware vSphere Foundation How to Sell Presentation-Ver1.4-2-14-2024.pptx
PDF
Encapsulation theory and applications.pdf
PPTX
Big Data Technologies - Introduction.pptx
PDF
Peak of Data & AI Encore- AI for Metadata and Smarter Workflows
PDF
Network Security Unit 5.pdf for BCA BBA.
PPTX
Spectroscopy.pptx food analysis technology
PDF
KodekX | Application Modernization Development
Per capita expenditure prediction using model stacking based on satellite ima...
Machine learning based COVID-19 study performance prediction
Chapter 3 Spatial Domain Image Processing.pdf
How UI/UX Design Impacts User Retention in Mobile Apps.pdf
Diabetes mellitus diagnosis method based random forest with bat algorithm
cuic standard and advanced reporting.pdf
Unlocking AI with Model Context Protocol (MCP)
7 ChatGPT Prompts to Help You Define Your Ideal Customer Profile.pdf
Review of recent advances in non-invasive hemoglobin estimation
Building Integrated photovoltaic BIPV_UPV.pdf
sap open course for s4hana steps from ECC to s4
Build a system with the filesystem maintained by OSTree @ COSCUP 2025
NewMind AI Weekly Chronicles - August'25 Week I
VMware vSphere Foundation How to Sell Presentation-Ver1.4-2-14-2024.pptx
Encapsulation theory and applications.pdf
Big Data Technologies - Introduction.pptx
Peak of Data & AI Encore- AI for Metadata and Smarter Workflows
Network Security Unit 5.pdf for BCA BBA.
Spectroscopy.pptx food analysis technology
KodekX | Application Modernization Development

High-Trust Add-Ins SharePoint for On-Premises Development

  • 1. Silber-Partner: Veranstalter: High-Trust App Add-In Model for On-Premises Development Edin Kapić
  • 2. Edin Kapić • SharePoint Senior Architect & Team Lead in Sogeti, Barcelona • President of SharePoint User Group Catalonia (SUG.CAT) • Writer at Pluralsight • SharePoint Server Office Servers and Services MVP • Tinker & geek Email : mail@edinkapic.com Twitter : @ekapic LinkedIn : edinkapic
  • 5. Agenda  SharePoint app model review  High-trust apps mechanism  DEMO  Advanced scenarios
  • 6. SharePoint “cloud apps model”  SharePoint-hosted apps  Provider-hosted apps (remote apps)
  • 7. Provider-hosted apps  The code runs in a separate server  Uses REST/CSOM API to call SharePoint  Uses OAuth for authorization
  • 10. App authentication  Apps are now first-class security principals  They have their own identity and permissions  App authentication only happens on REST/CSOM endpoints
  • 11. App authentication methods  OAuth – Brokered by Access Control Service (ACS) • Server-to-server – Using SSL certificates
  • 12. Low-trust app authentication Provider Hosted Add-Ins Access Control System SharePoint 2013 Context Token Access Token SharePoint Online
  • 13. High-trust app authentication Provider Hosted Add-Ins SharePoint 2013 Access token Data
  • 16. High-trust app prerequisites  SSL certificate  Configure Trusted Root Authority  Configure Trusted Token Issuer  Secure Token Service  User profiles
  • 17. High-trust mechanism  App has x.509 certificate with public/private key pair  Private key used to sign certain aspects in access token  Public key registered with SharePoint farm  This creates a trusted security token issuer  App creates access token to call into SharePoint  App creates access token with a specific client ID and signs it with private key  Trusted security token issuer validates signature  SharePoint establishes app identity  App identity maps to a specific client ID  You can have many client IDs associated with a single x.509 certificate Source:TedPattisonSPC12talk
  • 19. Gotchas  Provider-hosted app authentication (Windows, SAML, fixed…)  SharePoint host web application mode (Claims, Classic-Windows) can cause auth failures  TokenHelper uses Active Directory SID as the identifier  App-only tokens are not supported by all API areas
  • 21. Other Authentication Methods  TokenHelper uses WindowsIdentity under the covers  Custom code for SAML Federated Authentication contributed by Wictor Wilén (http://bit.ly/1aFponK)  FBA is also supported
  • 22. Using other technology stacks  Overview of options by Kirk Evans http://bit.ly/1jK3Evh  Java, PHP, Node.js  JWT token creation  Token signing with X.509 certificate
  • 23. Extending the TokenHelper code  TokenHelper is just code, you can edit and extend it  Retrieving app parameters from a database  Caching access tokens  Creating custom user identity  Extending token lifetime  Retrieving certificates from a repository
  • 24. My recent project  3 provider-hosted apps (2 MVC, 1 Lightswitch)  SharePoint 2013 back-end platform  2 types of users  Windows  Online Banking
  • 26. High-trust apps in SharePoint 2013  Alternative for on-premises app development  Cloud-ready code  More flexible than the low- trust apps
  • 27. Useful information about HTA  Kirk Evans http://blogs.msdn.com/b/kaevans/  Steve Peschka http://blogs.technet.com/b/speschka/  Wictor Wilén http://www.wictorwilen.se
  • 29. Ich freue mich auf Ihr Feedback!