High-Trust App Model for On-Premises
Development
#SPSBE06
Edin Kapić
April 18th, 2015
PlatinumGoldSilver
Thanks to our sponsors!
About me
edinkapic
@ekapic
http://www.spsevents.org/city/Barcelona/Barcelona2015/
SharePoint, sun and beach (Sept 26th)
SPS Belgium 2015 -  High-trust Apps for On-Premises Development
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
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
High-trust app authentication
SPS Belgium 2015 -  High-trust Apps for On-Premises Development
SPS Belgium 2015 -  High-trust Apps 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
Ted Pattison SPC12 talk
SPS Belgium 2015 -  High-trust Apps 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
SPS Belgium 2015 -  High-trust Apps for On-Premises Development
Using 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
SPS Belgium 2015 -  High-trust Apps 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 sources 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
Thank you!
Dank jullie wel!
Merci beaucoup!
Vielen dank!
SPS Belgium 2015 -  High-trust Apps for On-Premises Development

More Related Content

PPTX
High-Trust Add-Ins SharePoint for On-Premises Development
PPTX
SPS London 2015 - IoT and Room Reservation Cloud-Style
PPTX
Office 365 api vs share point app model
PPTX
ESPC15 - Extending Authentication and Authorization
PPTX
Extending Authentication and Authorization
PDF
SPTECHCON - Who are You and What Do You Want - Working with OAuth in SharePoi...
PPTX
Extending SharePoint 2010 to your customers and partners
PDF
Oauth Nightmares Abstract OAuth Nightmares
High-Trust Add-Ins SharePoint for On-Premises Development
SPS London 2015 - IoT and Room Reservation Cloud-Style
Office 365 api vs share point app model
ESPC15 - Extending Authentication and Authorization
Extending Authentication and Authorization
SPTECHCON - Who are You and What Do You Want - Working with OAuth in SharePoi...
Extending SharePoint 2010 to your customers and partners
Oauth Nightmares Abstract OAuth Nightmares

What's hot (20)

PPTX
Creating a Sign On with Open id connect
PPTX
OAuth in SharePoint 2013
PPTX
Microsoft identity manoj mittal
PPTX
SharePoint 2010 Extranets and Authentication: How will SharePoint 2010 connec...
PPTX
How to deploy SharePoint 2010 to external users?
PPTX
Presentation
PDF
Building an SSO platform in php (Zendcon 2010)
PDF
CIS 2015 Extreme OpenID Connect - John Bradley
PPT
Open Id, O Auth And Webservices
PPTX
T28 implementing adfs and hybrid share point
PPTX
Saml vs Oauth : Which one should I use?
PPTX
Introduction to Azure AD and Azure AD B2C
PPTX
Understanding SharePoint Apps, authentication and authorization infrastructur...
PPTX
Claims Based Identity In Share Point 2010
PPTX
WSO2 Identity Server - Getting Started
PPTX
AD FS Workshop | Part 2 | Deep Dive
PPTX
Intelligent Cloud Conference: Azure AD B2C Application security made easy
PPTX
SharePoint 2013 APIs demystified
PPTX
Box connector
PDF
Application Security- App security
Creating a Sign On with Open id connect
OAuth in SharePoint 2013
Microsoft identity manoj mittal
SharePoint 2010 Extranets and Authentication: How will SharePoint 2010 connec...
How to deploy SharePoint 2010 to external users?
Presentation
Building an SSO platform in php (Zendcon 2010)
CIS 2015 Extreme OpenID Connect - John Bradley
Open Id, O Auth And Webservices
T28 implementing adfs and hybrid share point
Saml vs Oauth : Which one should I use?
Introduction to Azure AD and Azure AD B2C
Understanding SharePoint Apps, authentication and authorization infrastructur...
Claims Based Identity In Share Point 2010
WSO2 Identity Server - Getting Started
AD FS Workshop | Part 2 | Deep Dive
Intelligent Cloud Conference: Azure AD B2C Application security made easy
SharePoint 2013 APIs demystified
Box connector
Application Security- App security
Ad

Viewers also liked (6)

PPTX
SharePoint Saturday Stockholm 2015 - Building Maintainable and Testable Share...
PDF
Avances y Desarrollo del Servicio Geológico Minero Argentino en Cartografía D...
PPTX
Universidad de La Habana - SharePoint, Listas y XSLT
PDF
Impacto del Modelo Conceptual de Sistema, en la Gestión y Gobernanza de los...
PPTX
Personal Branding for Developers
PPTX
Rx la joya oculta de Net
SharePoint Saturday Stockholm 2015 - Building Maintainable and Testable Share...
Avances y Desarrollo del Servicio Geológico Minero Argentino en Cartografía D...
Universidad de La Habana - SharePoint, Listas y XSLT
Impacto del Modelo Conceptual de Sistema, en la Gestión y Gobernanza de los...
Personal Branding for Developers
Rx la joya oculta de Net
Ad

Similar to SPS Belgium 2015 - High-trust Apps for On-Premises Development (19)

PPTX
CTU June 2011 - Windows Azure App Fabric
PPTX
Securing SharePoint Apps with OAuth
PPTX
DD109 Claims Based AuthN in SharePoint 2010
PPTX
OAuth - Don’t Throw the Baby Out with the Bathwater
PPTX
OAuth 2.0 and Mobile Devices: Is that a token in your phone in your pocket or...
PPT
Cartes Asia Dem 2010 V2
PPTX
ACDKOCHI19 - Enterprise grade security for web and mobile applications on AWS
PPTX
Api security
PDF
SharePointFest 2013 Washington DC - SPT 103 - SharePoint 2013 Extranets: How ...
PDF
Who Are You and What Do You Want? Working with OAuth in SharePoint 2013.
PPTX
The bits and pieces of Azure AD B2C
DOC
Authentication Models
PPTX
Share point 2013 add-in (formerly app) development
PDF
Secure Elements in Web Applications
PPTX
"Secure Mobile Apps with the Microsoft Identity Platform", Christos Matskas, ...
PPTX
Office Track: SharePoint Apps for the IT Pro - Thomas Vochten
PDF
Apidays Paris 2023 - Securing Microservice-based APIs, Michal Trojanowski, Cu...
PPTX
Microsoft Graph API Webinar Application Permissions
PPTX
Wso2 is integration with .net core
CTU June 2011 - Windows Azure App Fabric
Securing SharePoint Apps with OAuth
DD109 Claims Based AuthN in SharePoint 2010
OAuth - Don’t Throw the Baby Out with the Bathwater
OAuth 2.0 and Mobile Devices: Is that a token in your phone in your pocket or...
Cartes Asia Dem 2010 V2
ACDKOCHI19 - Enterprise grade security for web and mobile applications on AWS
Api security
SharePointFest 2013 Washington DC - SPT 103 - SharePoint 2013 Extranets: How ...
Who Are You and What Do You Want? Working with OAuth in SharePoint 2013.
The bits and pieces of Azure AD B2C
Authentication Models
Share point 2013 add-in (formerly app) development
Secure Elements in Web Applications
"Secure Mobile Apps with the Microsoft Identity Platform", Christos Matskas, ...
Office Track: SharePoint Apps for the IT Pro - Thomas Vochten
Apidays Paris 2023 - Securing Microservice-based APIs, Michal Trojanowski, Cu...
Microsoft Graph API Webinar Application Permissions
Wso2 is integration with .net core

More from Edin Kapic (15)

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
PPSX
SharePoint kao razvojna platforma za ASP.NET developere
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
SharePoint kao razvojna platforma za ASP.NET developere

Recently uploaded (20)

PDF
ment.tech-Siri Delay Opens AI Startup Opportunity in 2025.pdf
PDF
MENA-ECEONOMIC-CONTEXT-VC MENA-ECEONOMIC
PDF
The AI Revolution in Customer Service - 2025
PDF
Decision Optimization - From Theory to Practice
PDF
Data Virtualization in Action: Scaling APIs and Apps with FME
PDF
Co-training pseudo-labeling for text classification with support vector machi...
PDF
A symptom-driven medical diagnosis support model based on machine learning te...
PPTX
Module 1 Introduction to Web Programming .pptx
PDF
Transform-Your-Supply-Chain-with-AI-Driven-Quality-Engineering.pdf
PDF
Build Real-Time ML Apps with Python, Feast & NoSQL
PPTX
Presentation - Principles of Instructional Design.pptx
PDF
zbrain.ai-Scope Key Metrics Configuration and Best Practices.pdf
PDF
5-Ways-AI-is-Revolutionizing-Telecom-Quality-Engineering.pdf
PDF
Lung cancer patients survival prediction using outlier detection and optimize...
PDF
Human Computer Interaction Miterm Lesson
PDF
CXOs-Are-you-still-doing-manual-DevOps-in-the-age-of-AI.pdf
PDF
Aug23rd - Mulesoft Community Workshop - Hyd, India.pdf
PDF
Planning-an-Audit-A-How-To-Guide-Checklist-WP.pdf
PDF
A hybrid framework for wild animal classification using fine-tuned DenseNet12...
PDF
Transform-Your-Factory-with-AI-Driven-Quality-Engineering.pdf
ment.tech-Siri Delay Opens AI Startup Opportunity in 2025.pdf
MENA-ECEONOMIC-CONTEXT-VC MENA-ECEONOMIC
The AI Revolution in Customer Service - 2025
Decision Optimization - From Theory to Practice
Data Virtualization in Action: Scaling APIs and Apps with FME
Co-training pseudo-labeling for text classification with support vector machi...
A symptom-driven medical diagnosis support model based on machine learning te...
Module 1 Introduction to Web Programming .pptx
Transform-Your-Supply-Chain-with-AI-Driven-Quality-Engineering.pdf
Build Real-Time ML Apps with Python, Feast & NoSQL
Presentation - Principles of Instructional Design.pptx
zbrain.ai-Scope Key Metrics Configuration and Best Practices.pdf
5-Ways-AI-is-Revolutionizing-Telecom-Quality-Engineering.pdf
Lung cancer patients survival prediction using outlier detection and optimize...
Human Computer Interaction Miterm Lesson
CXOs-Are-you-still-doing-manual-DevOps-in-the-age-of-AI.pdf
Aug23rd - Mulesoft Community Workshop - Hyd, India.pdf
Planning-an-Audit-A-How-To-Guide-Checklist-WP.pdf
A hybrid framework for wild animal classification using fine-tuned DenseNet12...
Transform-Your-Factory-with-AI-Driven-Quality-Engineering.pdf

SPS Belgium 2015 - High-trust Apps for On-Premises Development

  • 1. High-Trust App Model for On-Premises Development #SPSBE06 Edin Kapić April 18th, 2015
  • 6. Agenda  SharePoint app model review  High-trust apps mechanism  DEMO  Advanced scenarios
  • 7. SharePoint “cloud apps model”  SharePoint-hosted apps  Provider-hosted apps (remote apps)
  • 8. Provider-hosted apps  The code runs in a separate server  Uses REST/CSOM API to call SharePoint  Uses OAuth for authorization
  • 9. App authentication  Apps are now first class security principals  They have their own identity and permissions  App authentication only happens on REST/CSOM endpoints
  • 10. App authentication methods  OAuth  Brokered by Access Control Service (ACS) • Server-to-server  Using SSL certificates
  • 15. High-trust app prerequisites  SSL certificate  Configure Trusted Root Authority  Configure Trusted Token Issuer  Secure Token Service  User profiles
  • 16. 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 Ted Pattison SPC12 talk
  • 18. 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
  • 20. Using 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
  • 21. 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
  • 22. 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
  • 23. My recent project  3 provider-hosted apps (2 MVC, 1 Lightswitch)  SharePoint 2013 back-end platform  2 types of users  Windows  Online Banking
  • 25. High-trust apps in SharePoint 2013  Alternative for on-premises app development  Cloud-ready code  More flexible than the low-trust apps
  • 26. Useful information sources 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
  • 27. Thank you! Dank jullie wel! Merci beaucoup! Vielen dank!

Editor's Notes

  • #2: Template may not be modified Twitter hashtag: #spsbe for all sessions