SlideShare uma empresa Scribd logo
1 de 34
Baixar para ler offline
Building SharePoint 2013 Apps - Architecture,
           Authentication & Connectivity API

Radi Atanassov
SharePoint MCM & MVP
OneBit Software Ltd.
Who’s this guy?
• Radi Atanassov
• SharePoint 2010 MCM
• SharePoint Server MVP
• OneBit Software Ltd.
• Web Platform User Group
    @RadiAtanassov
This talk is about…
•   How “apps” work
•   The App infrastructure
•   App authentication
•   Connectivity
SharePoint’s extensibility history
• 2001…
• 2003… CAML?!?
• 2007 – The SharePoint OM & UI enhanced…
  – Greater complexity & greater flaws
  – But still a strong “platform” we all love
• 2010 – Service Applications, Ribbon, Sandbox
• 2013 – Apps & the marketplace, On-Premise Apps
Why is the App Model important to us?
• Cost to the business
   – We don’t want SP projects to be expensive
   – We want more value for the same budget
• SharePoint cannot be “fixed”
   – Cannot replace the DB schema
   – Cannot rewrite the OM
• Microsoft’s preferred approach moving forward
   – We’ve been doing it for years
• Office now releases every 3 months
What is an “App” anyway?
• The new word for iFrame
• Another way of providing functionality, but keeping
  custom code outside of SharePoint
• Functionality you can buy from a marketplace
• A huge marketing stunt to drive adoption
• The infrastructure, plumbing, authentication model
  & framework to do things we did for a while
Why is authentication important to us?
• So we don’t look like we don’t know what we are doing!
• We are moving to the CLOUD…
• We need to integrate with Exchange 2013, Lync 2013 and
  custom Apps
• We need to understand & design hybrid deployments
• You can’t have “Apps” without authentication
• It matters when you do on-premises or hybrid Apps
SharePoint Apps

APPTECTURE
Recap - App Hosting Models
                                           Provider-hosted app                     SharePoint
                                                                                    Host Web    Your Hosted Site
                                           Provide your own hosting environment

Cloud-hosted apps

- Use server code
- Receive SP events
- Use OAuth to access SP
                                           Autohosted app                          SharePoint
                                                                                    Host Web
                                           Windows Azure + SQL Azure provisioned                     Azure
                                           automatically as apps are installed




                     SharePoint-Hosted app                                         SharePoint
                                                                                    Host Web
                     Provisions an isolated sub web on a host web
                     - Use SP artifacts & out-of-box web parts                                  SharePoint App
                     - Use HTML & JavaScript for UI & client-side logic                              Web
                     - Use Workflows for middle tier logic
Recap - App Shapes
          Full page
          Implement complete app experiences
•         to satisfy business scenarios


          App Parts
          Create app parts that can interact
          with the SharePoint experience


          UI command extensions
          Add new commands to the ribbon and item
          menus
Recap - App Package
                                            Host
                                            Web
.app Package (OPC)




                                                     App Web
                     WSP




                                                     (from WSP)




                                             Azure

                                                     Slide courtesy of Mike Morton
App Manifest
<?xml version="1.0" encoding="utf-8" ?>
<!--Created:cb85b80c-f585-40ff-8bfc-12ff4d0e34a9-->
<App xmlns="http://schemas.microsoft.com/sharepoint/2012/app/manifest"
     Name="SharePointApp1“ ProductID="{6a680846-ddff-4a3c-beb6-cb5705289d28}"
     Version="1.0.0.0“ SharePointMinVersion="15.0.0.0">
  <Properties>
    <Title>SharePointApp1</Title>
    <StartPage>~remoteAppUrl/Pages/Default.aspx?{StandardTokens}</StartPage>
    <SupportedLocales>
      <SupportedLocale CultureName="en" />
      <SupportedLocale CultureName="en-AU" />
      <SupportedLocale CultureName="bg" />
    </SupportedLocales>
  </Properties>

  <AppPrincipal>
    <RemoteWebApplication ClientId="*" />
  </AppPrincipal>

  <AppPermissionRequests>
    <AppPermissionRequest Scope="http://sharepoint/content/sitecollection/web/list" Right="Write" />
    <AppPermissionRequest Scope="http://sharepoint/social/tenant" Right="Read" />
  </AppPermissionRequests>

  <AppPrerequisites>
    <AppPrerequisite Type="Capability" ID="A83C8D70-71DE-4260-9FB8-677418EB47F2" />
  </AppPrerequisites>
</App>
The App Domain - *.contosoapps.com
• You should use a unique domain name, not a subdomain
• Only one in the farm!
• Prevents XSS attacks and script injection into the parent
• Prevents cookie information leaking
• Separates Apps from SharePoint sites, aka “app isolation”
• The reason why AAM’s don’t work with Apps
• Use SSL, even on dev environments!
• Should use wildcard certificates on a dedicated web application
• The app domain should be in the Internet or Restricted sites security zone
  in Internet Explorer
• Wildcard DNS should point to the load balancer
The App URL - *.contosoapps.com
• https://{appPrefix}-{UID}.{appdomain}/{appName}
• In MT scenarios each tenant has their own
  {appPrefix}
• {UID} comes from the subscription service
• {appName} - the App name 
• https://app-73ff422090f6f4.mcmapps.com/ SharePointApp2
DEMO

REVIEW APP SETUP
SharePoint Apps

AUTHENTICATION WITH OFFICE 365
SharePoint OAuth & Office 365
DEMO

OAUTH IN ACTION – OFFICE 365
OAuth-authenticated request –
              Context Token
<form id="frmRedirect"
action="https://localhost:44301/Pages/Default.aspx?SPHostUrl=...;SPLanguage=en....."
method="post">
  <input type="hidden" name="SPAppToken" value="eyJ0eXAiOiJKV…CnQ" />
  <input type="hidden" name="SPSiteUrl" value="https://onebitdev5.sharepoint.com" />
  <input type="hidden" name="SPSiteTitle" value="OneBit Software Ltd. Team Site" />
  <input type="hidden" name="SPSiteLogoUrl" value="" />
  <input type="hidden" name="SPSiteLanguage" value="en-US" />
  <input type="hidden" name="SPSiteCulture" value="en-US" />
  <input type="hidden" name="SPRedirectMessage" value="EndpointAuthorityMatches" />
  <input type="hidden" name="SPErrorCorrelationId" value="" />
  <input type="hidden" name="SPErrorInfo" value="" />
</form>
Decoded JWT token
{
"typ":"JWT",
"alg":"HS256“
}
                                                                                             Audience
{
"aud":"ded48005-1c15-416e-a84b-9b1b0fb5a50e/localhost:44301@8822364f-0b55-48a9-88f8-1b1fcc2e5e89",
"iss":"00000001-0000-0000-c000-000000000000@8822364f-0b55-48a9-88f8-1b1fcc2e5e89",
"nbf":"1360231739",                                                                    Issuer
"exp":"1360274939",
"appctxsender":"00000003-0000-0ff1-ce00-000000000000@8822364f-0b55-48a9-88f8-1b1fcc2e5e89",
"appctx":"{"CacheKey":"jE7itw4EgtsIxnejiJ20ldz4VUVQagnkh5A+tShdjTU=","SecurityTokenServiceUri":"htt
ps://accounts.accesscontrol.windows.net/tokens/OAuth/2"}","refreshtoken":"IAAAALi3Arn…",
"isbrowserhostedapp":"true“
}
Context Token in POST
•   POST https://onebitdev5.sharepoint.com/_vti_bin/client.svc/ProcessQuery HTTP/1.1
•   Authorization: Bearer eyJ0eXAiOiJKV1QiLC…iKlpA
•   Content-Type: text/xml                                     Access Token inside
•   Host: onebitdev5.sharepoint.com
•   Content-Length: 615
•   Expect: 100-continue
•   Accept-Encoding: gzip, deflate

•   <Request AddExpandoFieldTypeSuffix="true" SchemaV….
Oauth 2.0 Request
{
grant_type=refresh_token
client_id=ded48005-1c15-416e-a84b-9b1b0fb5a50e%408822364f-0b55-48a9-88f8-1b1fcc2e5e89
client_secret=9hU432522%2fupFTP7ogz6pw7IgsbY8JpW1JFjgHCcegs%3d
refresh_token=IAAAALi3…ifDZwbNk
resource=00000003-0000-0ff1-ce00-000000000000%2fonebitdev5.sharepoint.com%408822364f-0b55-48a9-
88f8-1b1fcc2e5e89
}
Oauth 2.0 Response
{
"token_type":"Bearer",
"access_token":"eyJ0eXAiOiJKV1Q…phfQ",
"expires_in":"43199",
"not_before":"1360233350",
"expires_on":"1360276550",
"resource":00000003-0000-0ff1-ce00-000000000000/onebitdev5.sharepoint.com@8822364f-0b55-48a9-88f8-
1b1fcc2e5e89
}
SharePoint Apps

OAUTH IN ACTION – ON-PREMISES
Server-to-Server Trust
•   Trusted connection between app and SharePoint
    – Eliminates need for ACS when running apps in on-premises farm
    – Trust between servers configured using SSL certificates
    – App code requires access to private key of SSL certificate
    – Requires creating Security Token Service on SharePoint server(s)

                                                      S2S STS

                                  1


                                           3   4


                                  2
                                                       SSL Cert
                                                     Public/Private
                                                     key pair (.pfx)
Developing High-Trust Apps

http://msdn.microsoft.com/en-us/library/fp179901.aspx
Terminology
•   High-Trust
•   Low-Trust
•   Full-Trust
•   Partial-Trust
•   Server-2-Server Trust (S2S)…. Different from STS 
•   Sandbox Solutions
•   User Code Solutions 
Configuring Server-2-Server Trust for App Dev

DEMO
App security concerns
• A new attack vector, old attack principles
• A provider hosted app can be “upgraded” by the
  provider. Do you trust your vendor?
• Script injection and in-flight modification
• SSL is important!
• Many more…
References
• Explore the app manifest and the package of an app for SharePoint
  http://msdn.microsoft.com/en-us/library/fp179918.aspx
• URL strings and tokens in apps for SharePoint
  http://msdn.microsoft.com/en-us/library/jj163816.aspx
• OAuth authentication and authorization flow for cloud-hosted apps in
  SharePoint 2013
  http://msdn.microsoft.com/en-us/library/fp142382.aspx
• How to: Create high-trust apps for SharePoint 2013 using the server-to-
  server protocol (advanced topic)
  http://msdn.microsoft.com/en-us/library/office/apps/fp179901.aspx
• How to: Package and publish high-trust apps for SharePoint 2013
  http://msdn.microsoft.com/en-us/library/office/apps/jj860570.aspx
Key takeaways
• You should definitely look into SharePoint Apps!
• Do your best to understand authentication now
• Complex cloud scenario’s will come
Contact me
•   radi@sharepoint.bg
•   @RadiAtanassov
•   Facebook: Radi Atanassov
•   LinkedIn: http://au.linkedin.com/in/sharepointradi
•   www.onebitsoftware.net
•   Mobile: +359 878 823 339
Questions?

Please fill out the feedback stuff!

E-mail me: radi@sharepoint.bg
THANK YOU!

Please fill out the feedback stuff!

E-mail me: radi@sharepoint.bg

Mais conteúdo relacionado

Mais procurados

Practical management of development & QA environments for SharePoint 2013
Practical management of development & QA environments for SharePoint 2013Practical management of development & QA environments for SharePoint 2013
Practical management of development & QA environments for SharePoint 2013SharePointRadi
 
Designing SharePoint solutions – Big Decisions for Big Success
Designing SharePoint solutions – Big Decisions for Big SuccessDesigning SharePoint solutions – Big Decisions for Big Success
Designing SharePoint solutions – Big Decisions for Big SuccessSPC Adriatics
 
Building Apps for SharePoint 2013 by Andrew Connell - SPTechCon
Building Apps for SharePoint 2013 by Andrew Connell - SPTechConBuilding Apps for SharePoint 2013 by Andrew Connell - SPTechCon
Building Apps for SharePoint 2013 by Andrew Connell - SPTechConSPTechCon
 
Understanding SharePoint 2013 Code Deployment Models - Apps vs Solutions - Sh...
Understanding SharePoint 2013 Code Deployment Models - Apps vs Solutions - Sh...Understanding SharePoint 2013 Code Deployment Models - Apps vs Solutions - Sh...
Understanding SharePoint 2013 Code Deployment Models - Apps vs Solutions - Sh...Nik Patel
 
Deep dive into SharePoint 2013 hosted apps - Chris OBrien
Deep dive into SharePoint 2013 hosted apps - Chris OBrienDeep dive into SharePoint 2013 hosted apps - Chris OBrien
Deep dive into SharePoint 2013 hosted apps - Chris OBrienChris O'Brien
 
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
 
Developing a Provider Hosted SharePoint app
Developing a Provider Hosted SharePoint appDeveloping a Provider Hosted SharePoint app
Developing a Provider Hosted SharePoint appTalbott Crowell
 
SharePoint 2013 APIs demystified
SharePoint 2013 APIs demystifiedSharePoint 2013 APIs demystified
SharePoint 2013 APIs demystifiedSPC Adriatics
 
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
 
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
 
Developing Apps for SharePoint Store
Developing Apps for SharePoint StoreDeveloping Apps for SharePoint Store
Developing Apps for SharePoint StoreKashif Imran
 
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
 
Sp2013 overview biwug
Sp2013 overview biwugSp2013 overview biwug
Sp2013 overview biwugBIWUG
 
Visio Services in SharePoint 2010
Visio Services in SharePoint 2010Visio Services in SharePoint 2010
Visio Services in SharePoint 2010Alexander Meijers
 
Developing hybrid SharePoint apps that run on-premise and in the cloud - Bram...
Developing hybrid SharePoint apps that run on-premise and in the cloud - Bram...Developing hybrid SharePoint apps that run on-premise and in the cloud - Bram...
Developing hybrid SharePoint apps that run on-premise and in the cloud - Bram...Bram de Jager
 
Developing hybrid SharePoint apps that run on-premise and in the cloud - ESPC...
Developing hybrid SharePoint apps that run on-premise and in the cloud - ESPC...Developing hybrid SharePoint apps that run on-premise and in the cloud - ESPC...
Developing hybrid SharePoint apps that run on-premise and in the cloud - ESPC...Bram de Jager
 
SharePoint 2013 apps overview
SharePoint 2013 apps overviewSharePoint 2013 apps overview
SharePoint 2013 apps overviewElie Kash
 
Get started with building native mobile apps interacting with SharePoint
Get started with building native mobile apps interacting with SharePointGet started with building native mobile apps interacting with SharePoint
Get started with building native mobile apps interacting with SharePointYaroslav Pentsarskyy [MVP]
 

Mais procurados (20)

Practical management of development & QA environments for SharePoint 2013
Practical management of development & QA environments for SharePoint 2013Practical management of development & QA environments for SharePoint 2013
Practical management of development & QA environments for SharePoint 2013
 
Designing SharePoint solutions – Big Decisions for Big Success
Designing SharePoint solutions – Big Decisions for Big SuccessDesigning SharePoint solutions – Big Decisions for Big Success
Designing SharePoint solutions – Big Decisions for Big Success
 
Building Apps for SharePoint 2013 by Andrew Connell - SPTechCon
Building Apps for SharePoint 2013 by Andrew Connell - SPTechConBuilding Apps for SharePoint 2013 by Andrew Connell - SPTechCon
Building Apps for SharePoint 2013 by Andrew Connell - SPTechCon
 
Understanding SharePoint 2013 Code Deployment Models - Apps vs Solutions - Sh...
Understanding SharePoint 2013 Code Deployment Models - Apps vs Solutions - Sh...Understanding SharePoint 2013 Code Deployment Models - Apps vs Solutions - Sh...
Understanding SharePoint 2013 Code Deployment Models - Apps vs Solutions - Sh...
 
OAuth in SharePoint 2013
OAuth in SharePoint 2013OAuth in SharePoint 2013
OAuth in SharePoint 2013
 
Deep dive into SharePoint 2013 hosted apps - Chris OBrien
Deep dive into SharePoint 2013 hosted apps - Chris OBrienDeep dive into SharePoint 2013 hosted apps - Chris OBrien
Deep dive into SharePoint 2013 hosted apps - Chris OBrien
 
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
 
Developing a Provider Hosted SharePoint app
Developing a Provider Hosted SharePoint appDeveloping a Provider Hosted SharePoint app
Developing a Provider Hosted SharePoint app
 
SharePoint 2013 APIs demystified
SharePoint 2013 APIs demystifiedSharePoint 2013 APIs demystified
SharePoint 2013 APIs demystified
 
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...
 
SharePoint Server 2013: to app or not to app?
SharePoint Server 2013: to app or not to app? SharePoint Server 2013: to app or not to app?
SharePoint Server 2013: to app or not to app?
 
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...
 
Developing Apps for SharePoint Store
Developing Apps for SharePoint StoreDeveloping Apps for SharePoint Store
Developing Apps for SharePoint Store
 
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
 
Sp2013 overview biwug
Sp2013 overview biwugSp2013 overview biwug
Sp2013 overview biwug
 
Visio Services in SharePoint 2010
Visio Services in SharePoint 2010Visio Services in SharePoint 2010
Visio Services in SharePoint 2010
 
Developing hybrid SharePoint apps that run on-premise and in the cloud - Bram...
Developing hybrid SharePoint apps that run on-premise and in the cloud - Bram...Developing hybrid SharePoint apps that run on-premise and in the cloud - Bram...
Developing hybrid SharePoint apps that run on-premise and in the cloud - Bram...
 
Developing hybrid SharePoint apps that run on-premise and in the cloud - ESPC...
Developing hybrid SharePoint apps that run on-premise and in the cloud - ESPC...Developing hybrid SharePoint apps that run on-premise and in the cloud - ESPC...
Developing hybrid SharePoint apps that run on-premise and in the cloud - ESPC...
 
SharePoint 2013 apps overview
SharePoint 2013 apps overviewSharePoint 2013 apps overview
SharePoint 2013 apps overview
 
Get started with building native mobile apps interacting with SharePoint
Get started with building native mobile apps interacting with SharePointGet started with building native mobile apps interacting with SharePoint
Get started with building native mobile apps interacting with SharePoint
 

Destaque

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
 
SharePoint Fest Chicago 2015 - Anatomy of configuring provider hosted add-in...
SharePoint Fest Chicago 2015  - Anatomy of configuring provider hosted add-in...SharePoint Fest Chicago 2015  - Anatomy of configuring provider hosted add-in...
SharePoint Fest Chicago 2015 - Anatomy of configuring provider hosted add-in...Nik Patel
 
Share point 2013 add-in (formerly app) development
Share point 2013 add-in (formerly app) developmentShare point 2013 add-in (formerly app) development
Share point 2013 add-in (formerly app) developmentSuhas R Satish
 
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
 
Getting started with Office 365 APIs
Getting started with Office 365 APIsGetting started with Office 365 APIs
Getting started with Office 365 APIsLuis Valencia
 
SharePoint Add-Ins - the Next Level
SharePoint Add-Ins - the Next LevelSharePoint Add-Ins - the Next Level
SharePoint Add-Ins - the Next LevelPaul Schaeflein
 
SharePointfest Denver - A jQuery Primer for SharePoint
SharePointfest Denver -  A jQuery Primer for SharePointSharePointfest Denver -  A jQuery Primer for SharePoint
SharePointfest Denver - A jQuery Primer for SharePointMarc D Anderson
 
High-Trust Add-Ins SharePoint for On-Premises Development
High-Trust Add-Ins SharePoint for On-Premises DevelopmentHigh-Trust Add-Ins SharePoint for On-Premises Development
High-Trust Add-Ins SharePoint for On-Premises DevelopmentEdin Kapic
 
Sharepoint 2013-applied architecture from the field v3 (public)
Sharepoint 2013-applied architecture from the field v3 (public)Sharepoint 2013-applied architecture from the field v3 (public)
Sharepoint 2013-applied architecture from the field v3 (public)Tihomir Ignatov
 
Access share point-2013-data-with-provider-hosted-apps
Access share point-2013-data-with-provider-hosted-appsAccess share point-2013-data-with-provider-hosted-apps
Access share point-2013-data-with-provider-hosted-appsAlexander Meijers
 
Chris O'Brien - Modern SharePoint sites and the SharePoint Framework - reference
Chris O'Brien - Modern SharePoint sites and the SharePoint Framework - referenceChris O'Brien - Modern SharePoint sites and the SharePoint Framework - reference
Chris O'Brien - Modern SharePoint sites and the SharePoint Framework - referenceChris O'Brien
 

Destaque (11)

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...
 
SharePoint Fest Chicago 2015 - Anatomy of configuring provider hosted add-in...
SharePoint Fest Chicago 2015  - Anatomy of configuring provider hosted add-in...SharePoint Fest Chicago 2015  - Anatomy of configuring provider hosted add-in...
SharePoint Fest Chicago 2015 - Anatomy of configuring provider hosted add-in...
 
Share point 2013 add-in (formerly app) development
Share point 2013 add-in (formerly app) developmentShare point 2013 add-in (formerly app) development
Share point 2013 add-in (formerly app) development
 
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
 
Getting started with Office 365 APIs
Getting started with Office 365 APIsGetting started with Office 365 APIs
Getting started with Office 365 APIs
 
SharePoint Add-Ins - the Next Level
SharePoint Add-Ins - the Next LevelSharePoint Add-Ins - the Next Level
SharePoint Add-Ins - the Next Level
 
SharePointfest Denver - A jQuery Primer for SharePoint
SharePointfest Denver -  A jQuery Primer for SharePointSharePointfest Denver -  A jQuery Primer for SharePoint
SharePointfest Denver - A jQuery Primer for SharePoint
 
High-Trust Add-Ins SharePoint for On-Premises Development
High-Trust Add-Ins SharePoint for On-Premises DevelopmentHigh-Trust Add-Ins SharePoint for On-Premises Development
High-Trust Add-Ins SharePoint for On-Premises Development
 
Sharepoint 2013-applied architecture from the field v3 (public)
Sharepoint 2013-applied architecture from the field v3 (public)Sharepoint 2013-applied architecture from the field v3 (public)
Sharepoint 2013-applied architecture from the field v3 (public)
 
Access share point-2013-data-with-provider-hosted-apps
Access share point-2013-data-with-provider-hosted-appsAccess share point-2013-data-with-provider-hosted-apps
Access share point-2013-data-with-provider-hosted-apps
 
Chris O'Brien - Modern SharePoint sites and the SharePoint Framework - reference
Chris O'Brien - Modern SharePoint sites and the SharePoint Framework - referenceChris O'Brien - Modern SharePoint sites and the SharePoint Framework - reference
Chris O'Brien - Modern SharePoint sites and the SharePoint Framework - reference
 

Semelhante a Building SharePoint 2013 Apps - Architecture, Authentication & Connectivity API

(Almost) All About Apps for SharePoint 2013
(Almost) All About Apps for SharePoint 2013(Almost) All About Apps for SharePoint 2013
(Almost) All About Apps for SharePoint 2013Dragan Panjkov
 
Sp2013 overview
Sp2013 overviewSp2013 overview
Sp2013 overviewBIWUG
 
SP Apps, New Model, New App Store: The Office Store
SP Apps, New Model, New App Store: The Office StoreSP Apps, New Model, New App Store: The Office Store
SP Apps, New Model, New App Store: The Office StoreJuan Carlos Gonzalez
 
Come riprogettare le attuali farm solution di share point con il nuovo modell...
Come riprogettare le attuali farm solution di share point con il nuovo modell...Come riprogettare le attuali farm solution di share point con il nuovo modell...
Come riprogettare le attuali farm solution di share point con il nuovo modell...Fabio Franzini
 
Getting started with SharePoint 2013 online development
Getting started with SharePoint 2013 online developmentGetting started with SharePoint 2013 online development
Getting started with SharePoint 2013 online developmentJeremy Thake
 
Real World SharePoint Framework and Azure Services
Real World SharePoint Framework and Azure ServicesReal World SharePoint Framework and Azure Services
Real World SharePoint Framework and Azure ServicesBrian Culver
 
Enterprise apps in SharePoint 2013
Enterprise apps in SharePoint 2013 Enterprise apps in SharePoint 2013
Enterprise apps in SharePoint 2013 Adis Jugo
 
MSDN - SharePoint 2013 to app or not to app
MSDN - SharePoint 2013 to app or not to appMSDN - SharePoint 2013 to app or not to app
MSDN - SharePoint 2013 to app or not to appJoris Poelmans
 
2014 SharePoint Saturday Melbourne Apps or not to Apps
2014 SharePoint Saturday Melbourne Apps or not to Apps2014 SharePoint Saturday Melbourne Apps or not to Apps
2014 SharePoint Saturday Melbourne Apps or not to AppsGilles Pommier
 
Developing Apps for SharePoint 2013
Developing Apps for SharePoint 2013Developing Apps for SharePoint 2013
Developing Apps for SharePoint 2013SPC Adriatics
 
SharePoint 2013 App or Not to App
SharePoint 2013 App or Not to AppSharePoint 2013 App or Not to App
SharePoint 2013 App or Not to AppKenneth Maglio
 
Prepararsi a spostare le proprie applicazioni share point su office 365
Prepararsi a spostare le proprie applicazioni share point su office 365Prepararsi a spostare le proprie applicazioni share point su office 365
Prepararsi a spostare le proprie applicazioni share point su office 365Giuseppe Marchi
 
SharePoint 2013 App Provisioning Models
SharePoint 2013 App Provisioning ModelsSharePoint 2013 App Provisioning Models
SharePoint 2013 App Provisioning ModelsShailen Sukul
 
SPCA2013 - Developing SharePoint 2013 Apps with Visual Studio 2012
SPCA2013 - Developing SharePoint 2013 Apps with Visual Studio 2012SPCA2013 - Developing SharePoint 2013 Apps with Visual Studio 2012
SPCA2013 - Developing SharePoint 2013 Apps with Visual Studio 2012NCCOMMS
 
SharePoint 2013 “App Model” Developing and Deploying Provider Hosted Apps
SharePoint 2013 “App Model” Developing and Deploying Provider Hosted AppsSharePoint 2013 “App Model” Developing and Deploying Provider Hosted Apps
SharePoint 2013 “App Model” Developing and Deploying Provider Hosted AppsSanjay Patel
 
Office apps in Office 365 - Napa the next big thing
Office apps in Office 365 - Napa the next big thingOffice apps in Office 365 - Napa the next big thing
Office apps in Office 365 - Napa the next big thingSPC Adriatics
 
Intro apps
Intro appsIntro apps
Intro appsBIWUG
 
SharePoint in the cloud: Deep Azure apps for SharePoint 2013
SharePoint in the cloud: Deep Azure apps for SharePoint 2013SharePoint in the cloud: Deep Azure apps for SharePoint 2013
SharePoint in the cloud: Deep Azure apps for SharePoint 2013Adis Jugo
 
Chris O'Brien - Comparing SharePoint add-ins (apps) with Office 365 apps
Chris O'Brien - Comparing SharePoint add-ins (apps) with Office 365 appsChris O'Brien - Comparing SharePoint add-ins (apps) with Office 365 apps
Chris O'Brien - Comparing SharePoint add-ins (apps) with Office 365 appsChris O'Brien
 
What IT professionals need to know about SharePoint 2013 Apps
What IT professionals need to know about SharePoint 2013 AppsWhat IT professionals need to know about SharePoint 2013 Apps
What IT professionals need to know about SharePoint 2013 AppsMike Henthorn
 

Semelhante a Building SharePoint 2013 Apps - Architecture, Authentication & Connectivity API (20)

(Almost) All About Apps for SharePoint 2013
(Almost) All About Apps for SharePoint 2013(Almost) All About Apps for SharePoint 2013
(Almost) All About Apps for SharePoint 2013
 
Sp2013 overview
Sp2013 overviewSp2013 overview
Sp2013 overview
 
SP Apps, New Model, New App Store: The Office Store
SP Apps, New Model, New App Store: The Office StoreSP Apps, New Model, New App Store: The Office Store
SP Apps, New Model, New App Store: The Office Store
 
Come riprogettare le attuali farm solution di share point con il nuovo modell...
Come riprogettare le attuali farm solution di share point con il nuovo modell...Come riprogettare le attuali farm solution di share point con il nuovo modell...
Come riprogettare le attuali farm solution di share point con il nuovo modell...
 
Getting started with SharePoint 2013 online development
Getting started with SharePoint 2013 online developmentGetting started with SharePoint 2013 online development
Getting started with SharePoint 2013 online development
 
Real World SharePoint Framework and Azure Services
Real World SharePoint Framework and Azure ServicesReal World SharePoint Framework and Azure Services
Real World SharePoint Framework and Azure Services
 
Enterprise apps in SharePoint 2013
Enterprise apps in SharePoint 2013 Enterprise apps in SharePoint 2013
Enterprise apps in SharePoint 2013
 
MSDN - SharePoint 2013 to app or not to app
MSDN - SharePoint 2013 to app or not to appMSDN - SharePoint 2013 to app or not to app
MSDN - SharePoint 2013 to app or not to app
 
2014 SharePoint Saturday Melbourne Apps or not to Apps
2014 SharePoint Saturday Melbourne Apps or not to Apps2014 SharePoint Saturday Melbourne Apps or not to Apps
2014 SharePoint Saturday Melbourne Apps or not to Apps
 
Developing Apps for SharePoint 2013
Developing Apps for SharePoint 2013Developing Apps for SharePoint 2013
Developing Apps for SharePoint 2013
 
SharePoint 2013 App or Not to App
SharePoint 2013 App or Not to AppSharePoint 2013 App or Not to App
SharePoint 2013 App or Not to App
 
Prepararsi a spostare le proprie applicazioni share point su office 365
Prepararsi a spostare le proprie applicazioni share point su office 365Prepararsi a spostare le proprie applicazioni share point su office 365
Prepararsi a spostare le proprie applicazioni share point su office 365
 
SharePoint 2013 App Provisioning Models
SharePoint 2013 App Provisioning ModelsSharePoint 2013 App Provisioning Models
SharePoint 2013 App Provisioning Models
 
SPCA2013 - Developing SharePoint 2013 Apps with Visual Studio 2012
SPCA2013 - Developing SharePoint 2013 Apps with Visual Studio 2012SPCA2013 - Developing SharePoint 2013 Apps with Visual Studio 2012
SPCA2013 - Developing SharePoint 2013 Apps with Visual Studio 2012
 
SharePoint 2013 “App Model” Developing and Deploying Provider Hosted Apps
SharePoint 2013 “App Model” Developing and Deploying Provider Hosted AppsSharePoint 2013 “App Model” Developing and Deploying Provider Hosted Apps
SharePoint 2013 “App Model” Developing and Deploying Provider Hosted Apps
 
Office apps in Office 365 - Napa the next big thing
Office apps in Office 365 - Napa the next big thingOffice apps in Office 365 - Napa the next big thing
Office apps in Office 365 - Napa the next big thing
 
Intro apps
Intro appsIntro apps
Intro apps
 
SharePoint in the cloud: Deep Azure apps for SharePoint 2013
SharePoint in the cloud: Deep Azure apps for SharePoint 2013SharePoint in the cloud: Deep Azure apps for SharePoint 2013
SharePoint in the cloud: Deep Azure apps for SharePoint 2013
 
Chris O'Brien - Comparing SharePoint add-ins (apps) with Office 365 apps
Chris O'Brien - Comparing SharePoint add-ins (apps) with Office 365 appsChris O'Brien - Comparing SharePoint add-ins (apps) with Office 365 apps
Chris O'Brien - Comparing SharePoint add-ins (apps) with Office 365 apps
 
What IT professionals need to know about SharePoint 2013 Apps
What IT professionals need to know about SharePoint 2013 AppsWhat IT professionals need to know about SharePoint 2013 Apps
What IT professionals need to know about SharePoint 2013 Apps
 

Último

What is Artificial Intelligence?????????
What is Artificial Intelligence?????????What is Artificial Intelligence?????????
What is Artificial Intelligence?????????blackmambaettijean
 
Anypoint Exchange: It’s Not Just a Repo!
Anypoint Exchange: It’s Not Just a Repo!Anypoint Exchange: It’s Not Just a Repo!
Anypoint Exchange: It’s Not Just a Repo!Manik S Magar
 
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptx
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptxMerck Moving Beyond Passwords: FIDO Paris Seminar.pptx
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptxLoriGlavin3
 
unit 4 immunoblotting technique complete.pptx
unit 4 immunoblotting technique complete.pptxunit 4 immunoblotting technique complete.pptx
unit 4 immunoblotting technique complete.pptxBkGupta21
 
How to write a Business Continuity Plan
How to write a Business Continuity PlanHow to write a Business Continuity Plan
How to write a Business Continuity PlanDatabarracks
 
What is DBT - The Ultimate Data Build Tool.pdf
What is DBT - The Ultimate Data Build Tool.pdfWhat is DBT - The Ultimate Data Build Tool.pdf
What is DBT - The Ultimate Data Build Tool.pdfMounikaPolabathina
 
Advanced Computer Architecture – An Introduction
Advanced Computer Architecture – An IntroductionAdvanced Computer Architecture – An Introduction
Advanced Computer Architecture – An IntroductionDilum Bandara
 
Ensuring Technical Readiness For Copilot in Microsoft 365
Ensuring Technical Readiness For Copilot in Microsoft 365Ensuring Technical Readiness For Copilot in Microsoft 365
Ensuring Technical Readiness For Copilot in Microsoft 3652toLead Limited
 
New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024BookNet Canada
 
Dev Dives: Streamline document processing with UiPath Studio Web
Dev Dives: Streamline document processing with UiPath Studio WebDev Dives: Streamline document processing with UiPath Studio Web
Dev Dives: Streamline document processing with UiPath Studio WebUiPathCommunity
 
Take control of your SAP testing with UiPath Test Suite
Take control of your SAP testing with UiPath Test SuiteTake control of your SAP testing with UiPath Test Suite
Take control of your SAP testing with UiPath Test SuiteDianaGray10
 
Passkey Providers and Enabling Portability: FIDO Paris Seminar.pptx
Passkey Providers and Enabling Portability: FIDO Paris Seminar.pptxPasskey Providers and Enabling Portability: FIDO Paris Seminar.pptx
Passkey Providers and Enabling Portability: FIDO Paris Seminar.pptxLoriGlavin3
 
Moving Beyond Passwords: FIDO Paris Seminar.pdf
Moving Beyond Passwords: FIDO Paris Seminar.pdfMoving Beyond Passwords: FIDO Paris Seminar.pdf
Moving Beyond Passwords: FIDO Paris Seminar.pdfLoriGlavin3
 
"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr Bagan"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr BaganFwdays
 
"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii Soldatenko"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii SoldatenkoFwdays
 
Generative AI for Technical Writer or Information Developers
Generative AI for Technical Writer or Information DevelopersGenerative AI for Technical Writer or Information Developers
Generative AI for Technical Writer or Information DevelopersRaghuram Pandurangan
 
TeamStation AI System Report LATAM IT Salaries 2024
TeamStation AI System Report LATAM IT Salaries 2024TeamStation AI System Report LATAM IT Salaries 2024
TeamStation AI System Report LATAM IT Salaries 2024Lonnie McRorey
 
SALESFORCE EDUCATION CLOUD | FEXLE SERVICES
SALESFORCE EDUCATION CLOUD | FEXLE SERVICESSALESFORCE EDUCATION CLOUD | FEXLE SERVICES
SALESFORCE EDUCATION CLOUD | FEXLE SERVICESmohitsingh558521
 
What's New in Teams Calling, Meetings and Devices March 2024
What's New in Teams Calling, Meetings and Devices March 2024What's New in Teams Calling, Meetings and Devices March 2024
What's New in Teams Calling, Meetings and Devices March 2024Stephanie Beckett
 
Use of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptx
Use of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptxUse of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptx
Use of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptxLoriGlavin3
 

Último (20)

What is Artificial Intelligence?????????
What is Artificial Intelligence?????????What is Artificial Intelligence?????????
What is Artificial Intelligence?????????
 
Anypoint Exchange: It’s Not Just a Repo!
Anypoint Exchange: It’s Not Just a Repo!Anypoint Exchange: It’s Not Just a Repo!
Anypoint Exchange: It’s Not Just a Repo!
 
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptx
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptxMerck Moving Beyond Passwords: FIDO Paris Seminar.pptx
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptx
 
unit 4 immunoblotting technique complete.pptx
unit 4 immunoblotting technique complete.pptxunit 4 immunoblotting technique complete.pptx
unit 4 immunoblotting technique complete.pptx
 
How to write a Business Continuity Plan
How to write a Business Continuity PlanHow to write a Business Continuity Plan
How to write a Business Continuity Plan
 
What is DBT - The Ultimate Data Build Tool.pdf
What is DBT - The Ultimate Data Build Tool.pdfWhat is DBT - The Ultimate Data Build Tool.pdf
What is DBT - The Ultimate Data Build Tool.pdf
 
Advanced Computer Architecture – An Introduction
Advanced Computer Architecture – An IntroductionAdvanced Computer Architecture – An Introduction
Advanced Computer Architecture – An Introduction
 
Ensuring Technical Readiness For Copilot in Microsoft 365
Ensuring Technical Readiness For Copilot in Microsoft 365Ensuring Technical Readiness For Copilot in Microsoft 365
Ensuring Technical Readiness For Copilot in Microsoft 365
 
New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
 
Dev Dives: Streamline document processing with UiPath Studio Web
Dev Dives: Streamline document processing with UiPath Studio WebDev Dives: Streamline document processing with UiPath Studio Web
Dev Dives: Streamline document processing with UiPath Studio Web
 
Take control of your SAP testing with UiPath Test Suite
Take control of your SAP testing with UiPath Test SuiteTake control of your SAP testing with UiPath Test Suite
Take control of your SAP testing with UiPath Test Suite
 
Passkey Providers and Enabling Portability: FIDO Paris Seminar.pptx
Passkey Providers and Enabling Portability: FIDO Paris Seminar.pptxPasskey Providers and Enabling Portability: FIDO Paris Seminar.pptx
Passkey Providers and Enabling Portability: FIDO Paris Seminar.pptx
 
Moving Beyond Passwords: FIDO Paris Seminar.pdf
Moving Beyond Passwords: FIDO Paris Seminar.pdfMoving Beyond Passwords: FIDO Paris Seminar.pdf
Moving Beyond Passwords: FIDO Paris Seminar.pdf
 
"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr Bagan"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr Bagan
 
"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii Soldatenko"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii Soldatenko
 
Generative AI for Technical Writer or Information Developers
Generative AI for Technical Writer or Information DevelopersGenerative AI for Technical Writer or Information Developers
Generative AI for Technical Writer or Information Developers
 
TeamStation AI System Report LATAM IT Salaries 2024
TeamStation AI System Report LATAM IT Salaries 2024TeamStation AI System Report LATAM IT Salaries 2024
TeamStation AI System Report LATAM IT Salaries 2024
 
SALESFORCE EDUCATION CLOUD | FEXLE SERVICES
SALESFORCE EDUCATION CLOUD | FEXLE SERVICESSALESFORCE EDUCATION CLOUD | FEXLE SERVICES
SALESFORCE EDUCATION CLOUD | FEXLE SERVICES
 
What's New in Teams Calling, Meetings and Devices March 2024
What's New in Teams Calling, Meetings and Devices March 2024What's New in Teams Calling, Meetings and Devices March 2024
What's New in Teams Calling, Meetings and Devices March 2024
 
Use of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptx
Use of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptxUse of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptx
Use of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptx
 

Building SharePoint 2013 Apps - Architecture, Authentication & Connectivity API

  • 1. Building SharePoint 2013 Apps - Architecture, Authentication & Connectivity API Radi Atanassov SharePoint MCM & MVP OneBit Software Ltd.
  • 2. Who’s this guy? • Radi Atanassov • SharePoint 2010 MCM • SharePoint Server MVP • OneBit Software Ltd. • Web Platform User Group @RadiAtanassov
  • 3. This talk is about… • How “apps” work • The App infrastructure • App authentication • Connectivity
  • 4. SharePoint’s extensibility history • 2001… • 2003… CAML?!? • 2007 – The SharePoint OM & UI enhanced… – Greater complexity & greater flaws – But still a strong “platform” we all love • 2010 – Service Applications, Ribbon, Sandbox • 2013 – Apps & the marketplace, On-Premise Apps
  • 5. Why is the App Model important to us? • Cost to the business – We don’t want SP projects to be expensive – We want more value for the same budget • SharePoint cannot be “fixed” – Cannot replace the DB schema – Cannot rewrite the OM • Microsoft’s preferred approach moving forward – We’ve been doing it for years • Office now releases every 3 months
  • 6. What is an “App” anyway? • The new word for iFrame • Another way of providing functionality, but keeping custom code outside of SharePoint • Functionality you can buy from a marketplace • A huge marketing stunt to drive adoption • The infrastructure, plumbing, authentication model & framework to do things we did for a while
  • 7. Why is authentication important to us? • So we don’t look like we don’t know what we are doing! • We are moving to the CLOUD… • We need to integrate with Exchange 2013, Lync 2013 and custom Apps • We need to understand & design hybrid deployments • You can’t have “Apps” without authentication • It matters when you do on-premises or hybrid Apps
  • 9. Recap - App Hosting Models Provider-hosted app SharePoint Host Web Your Hosted Site Provide your own hosting environment Cloud-hosted apps - Use server code - Receive SP events - Use OAuth to access SP Autohosted app SharePoint Host Web Windows Azure + SQL Azure provisioned Azure automatically as apps are installed SharePoint-Hosted app SharePoint Host Web Provisions an isolated sub web on a host web - Use SP artifacts & out-of-box web parts SharePoint App - Use HTML & JavaScript for UI & client-side logic Web - Use Workflows for middle tier logic
  • 10. Recap - App Shapes Full page Implement complete app experiences • to satisfy business scenarios App Parts Create app parts that can interact with the SharePoint experience UI command extensions Add new commands to the ribbon and item menus
  • 11. Recap - App Package Host Web .app Package (OPC) App Web WSP (from WSP) Azure Slide courtesy of Mike Morton
  • 12. App Manifest <?xml version="1.0" encoding="utf-8" ?> <!--Created:cb85b80c-f585-40ff-8bfc-12ff4d0e34a9--> <App xmlns="http://schemas.microsoft.com/sharepoint/2012/app/manifest" Name="SharePointApp1“ ProductID="{6a680846-ddff-4a3c-beb6-cb5705289d28}" Version="1.0.0.0“ SharePointMinVersion="15.0.0.0"> <Properties> <Title>SharePointApp1</Title> <StartPage>~remoteAppUrl/Pages/Default.aspx?{StandardTokens}</StartPage> <SupportedLocales> <SupportedLocale CultureName="en" /> <SupportedLocale CultureName="en-AU" /> <SupportedLocale CultureName="bg" /> </SupportedLocales> </Properties> <AppPrincipal> <RemoteWebApplication ClientId="*" /> </AppPrincipal> <AppPermissionRequests> <AppPermissionRequest Scope="http://sharepoint/content/sitecollection/web/list" Right="Write" /> <AppPermissionRequest Scope="http://sharepoint/social/tenant" Right="Read" /> </AppPermissionRequests> <AppPrerequisites> <AppPrerequisite Type="Capability" ID="A83C8D70-71DE-4260-9FB8-677418EB47F2" /> </AppPrerequisites> </App>
  • 13. The App Domain - *.contosoapps.com • You should use a unique domain name, not a subdomain • Only one in the farm! • Prevents XSS attacks and script injection into the parent • Prevents cookie information leaking • Separates Apps from SharePoint sites, aka “app isolation” • The reason why AAM’s don’t work with Apps • Use SSL, even on dev environments! • Should use wildcard certificates on a dedicated web application • The app domain should be in the Internet or Restricted sites security zone in Internet Explorer • Wildcard DNS should point to the load balancer
  • 14. The App URL - *.contosoapps.com • https://{appPrefix}-{UID}.{appdomain}/{appName} • In MT scenarios each tenant has their own {appPrefix} • {UID} comes from the subscription service • {appName} - the App name  • https://app-73ff422090f6f4.mcmapps.com/ SharePointApp2
  • 17. SharePoint OAuth & Office 365
  • 18. DEMO OAUTH IN ACTION – OFFICE 365
  • 19. OAuth-authenticated request – Context Token <form id="frmRedirect" action="https://localhost:44301/Pages/Default.aspx?SPHostUrl=...;SPLanguage=en....." method="post"> <input type="hidden" name="SPAppToken" value="eyJ0eXAiOiJKV…CnQ" /> <input type="hidden" name="SPSiteUrl" value="https://onebitdev5.sharepoint.com" /> <input type="hidden" name="SPSiteTitle" value="OneBit Software Ltd. Team Site" /> <input type="hidden" name="SPSiteLogoUrl" value="" /> <input type="hidden" name="SPSiteLanguage" value="en-US" /> <input type="hidden" name="SPSiteCulture" value="en-US" /> <input type="hidden" name="SPRedirectMessage" value="EndpointAuthorityMatches" /> <input type="hidden" name="SPErrorCorrelationId" value="" /> <input type="hidden" name="SPErrorInfo" value="" /> </form>
  • 20. Decoded JWT token { "typ":"JWT", "alg":"HS256“ } Audience { "aud":"ded48005-1c15-416e-a84b-9b1b0fb5a50e/localhost:44301@8822364f-0b55-48a9-88f8-1b1fcc2e5e89", "iss":"00000001-0000-0000-c000-000000000000@8822364f-0b55-48a9-88f8-1b1fcc2e5e89", "nbf":"1360231739", Issuer "exp":"1360274939", "appctxsender":"00000003-0000-0ff1-ce00-000000000000@8822364f-0b55-48a9-88f8-1b1fcc2e5e89", "appctx":"{"CacheKey":"jE7itw4EgtsIxnejiJ20ldz4VUVQagnkh5A+tShdjTU=","SecurityTokenServiceUri":"htt ps://accounts.accesscontrol.windows.net/tokens/OAuth/2"}","refreshtoken":"IAAAALi3Arn…", "isbrowserhostedapp":"true“ }
  • 21. Context Token in POST • POST https://onebitdev5.sharepoint.com/_vti_bin/client.svc/ProcessQuery HTTP/1.1 • Authorization: Bearer eyJ0eXAiOiJKV1QiLC…iKlpA • Content-Type: text/xml Access Token inside • Host: onebitdev5.sharepoint.com • Content-Length: 615 • Expect: 100-continue • Accept-Encoding: gzip, deflate • <Request AddExpandoFieldTypeSuffix="true" SchemaV….
  • 24. SharePoint Apps OAUTH IN ACTION – ON-PREMISES
  • 25. Server-to-Server Trust • Trusted connection between app and SharePoint – Eliminates need for ACS when running apps in on-premises farm – Trust between servers configured using SSL certificates – App code requires access to private key of SSL certificate – Requires creating Security Token Service on SharePoint server(s) S2S STS 1 3 4 2 SSL Cert Public/Private key pair (.pfx)
  • 27. Terminology • High-Trust • Low-Trust • Full-Trust • Partial-Trust • Server-2-Server Trust (S2S)…. Different from STS  • Sandbox Solutions • User Code Solutions 
  • 29. App security concerns • A new attack vector, old attack principles • A provider hosted app can be “upgraded” by the provider. Do you trust your vendor? • Script injection and in-flight modification • SSL is important! • Many more…
  • 30. References • Explore the app manifest and the package of an app for SharePoint http://msdn.microsoft.com/en-us/library/fp179918.aspx • URL strings and tokens in apps for SharePoint http://msdn.microsoft.com/en-us/library/jj163816.aspx • OAuth authentication and authorization flow for cloud-hosted apps in SharePoint 2013 http://msdn.microsoft.com/en-us/library/fp142382.aspx • How to: Create high-trust apps for SharePoint 2013 using the server-to- server protocol (advanced topic) http://msdn.microsoft.com/en-us/library/office/apps/fp179901.aspx • How to: Package and publish high-trust apps for SharePoint 2013 http://msdn.microsoft.com/en-us/library/office/apps/jj860570.aspx
  • 31. Key takeaways • You should definitely look into SharePoint Apps! • Do your best to understand authentication now • Complex cloud scenario’s will come
  • 32. Contact me • radi@sharepoint.bg • @RadiAtanassov • Facebook: Radi Atanassov • LinkedIn: http://au.linkedin.com/in/sharepointradi • www.onebitsoftware.net • Mobile: +359 878 823 339
  • 33. Questions? Please fill out the feedback stuff! E-mail me: radi@sharepoint.bg
  • 34. THANK YOU! Please fill out the feedback stuff! E-mail me: radi@sharepoint.bg