Building end-to-end apps for SharePoint with Windows Azure and Windows 8

  • Published on
    25-Feb-2016

  • View
    74

  • Download
    6

Embed Size (px)

DESCRIPTION

Building end-to-end apps for SharePoint with Windows Azure and Windows 8. Rob Howard, Donovan Follette Sr. Program Manager, Sr. Technical Evangelist 3-022. Agenda. Demo end-to-end solution Introduction to _ api Meet the new App Principal Remote Event Receivers. Key Takeaway. - PowerPoint PPT Presentation

Transcript

Building end-to-end apps for SharePoint with Windows Azure and Windows 8

Building end-to-end apps for SharePoint with Windows Azure and Windows 8Rob Howard, Donovan FolletteSr. Program Manager, Sr. Technical Evangelist3-02211/1/2012Windows Azure1 2011 Microsoft Corporation. All rights reserved. Microsoft, Windows, Windows Vista and other product names are or may be registered trademarks and/or trademarks in the U.S. and/or other countries. The information herein is for informational purposes only and represents the current view of Microsoft Corporation as of the date of this presentation. Because Microsoft must respond to changing market conditions, it should not be interpreted to be a commitment on the part of Microsoft, and Microsoft cannot guarantee the accuracy of any information provided after the date of this presentation. MICROSOFT MAKES NO WARRANTIES, EXPRESS, IMPLIED OR STATUTORY, AS TO THE INFORMATION IN THIS PRESENTATION.Demo end-to-end solutionIntroduction to _apiMeet the new App PrincipalRemote Event ReceiversAgenda

With the new cloud app model for SharePoint and its rich service APIs, your apps can now consume SharePoint better than ever before.Key Takeaway

Build 2012 2012 Microsoft Corporation. All rights reserved. Microsoft, Windows, and other product names are or may be registered trademarks and/or trademarks in the U.S. and/or other countries.The information herein is for informational purposes only and represents the current view of Microsoft Corporation as of the date of this presentation. Because Microsoft must respond to changing market conditions, it should not be interpreted to be a commitment on the part of Microsoft, and Microsoft cannot guarantee the accuracy of any information provided after the date of this presentation. MICROSOFT MAKES NO WARRANTIES, EXPRESS, IMPLIED OR STATUTORY, AS TO THE INFORMATION IN THIS PRESENTATION.11/1/20123Scenario OverviewBusiness:Company wishes to create a mobile enabled toolset for sales personnel to efficiently respond to sales leads and win business

Technical:Company wants a 100% cloud-based solution and use desktop applications and mobile devices to access the toolset

Windows 8 ApplicationMicrosoft Word with Apps For Office Internal O365 SharePoint SiteWindows Azure Cloud ServicesWindows Azure Workflow ServerPublic O365 SharePoint SiteWindows Azure SQL DatabaseClients (Desktop/Tablet/Mobile)CloudView / approve SOWsDisplay Excel Services charts in WordView client companiesView sales leadsReceive toast and tile and raw notificationsView Excel Services chartsCreate estimatesContact internal sales personnel to follow up on requests for quotesContact vendors to follow up on requests for quotesApprove SOWsDisplay, Create, Update, Delete Sales LeadsStore Excel DocumentsStore SOWsHost team sites for projectsBCS External ListSubmit requests for quoteSend notificationsCreate SOWsUpdate data in Excel documentsCreate SharePoint project sitesFacilitate SOW creation, approval, submission, and follow up tasksStore sales request data

Windows AzureAccess Control ServiceOAuth

5Demo using Windows 8, Windows Azure SQL Database, Web Sites and Access Control ServicesLead Tracking app for SharePoint OnlineIntroduction to _apiIntroducing the all new _api_APIClient/Server/Mobile SymmetricalOAuth Enabled2,000+ ClassesDeclarative, Remote EventsFully Remote6,000+ MembersODataJQuery CompatiblePrivate and Public CloudsJSONJavaScript LibrarySilverlight Library.Net CLR LibraryCustom Client CodeClientSharePoint_apiSharePoint FoundationExecute QuerySharePoint 2013 and SharePoint Online _apiOData / RESTUser ProfileSearchTaxonomyFeedsMoreConsistent Access to ServicesAPIREST URLScriptClient NamespaceWebhttp://weburl/_api/WebSPMicrosoft.SharePoint.ClientSearchhttp://weburl/_api/Search SP.SearchMicrosoft.SharePoint.Client.SearchTaxonomyhttp://weburl/_api/Taxonomy SP.TaxonomyMicrosoft.SharePoint.Client.TaxonomySocialhttp://weburl/_api/SocialSP.SocialMicrosoft.SharePoint.Client.SocialConsistent UsageREST/ODatahttps://contoso.sharepoint.com/_api/web/TitleManaged CodeClientContext ctx = new ClientContext("https://contoso.sharepoint.com");ctx.Load(ctx.Web.Title);ctx.ExecuteQuery();JavaScriptvar ctx = new SP.ClientContext("https://contoso.sharepoint.com");ctx.load(ctx.get_web().get_title());ctx.executeQueryAsync();11/1/201211Microsoft SharePoint 2012 Microsoft Corporation. All rights reserved. Microsoft, Windows, and other product names are or may be registered trademarks and/or trademarks in the U.S. and/or other countries.The information herein is for informational purposes only and represents the current view of Microsoft Corporation as of the date of this presentation. Because Microsoft must respond to changing market conditions, it should not be interpreted to be a commitment on the part of Microsoft, and Microsoft cannot guarantee the accuracy of any information provided after the date of this presentation. MICROSOFT MAKES NO WARRANTIES, EXPRESS, IMPLIED OR STATUTORY, AS TO THE INFORMATION IN THIS PRESENTATION.Base endpoint GET http:///_apiGet the webs titleGET http:///_api/Web/titleGet the collection of lists in the webGET http:///_api/Web/listsGet the lists in the web with a BaseTemplate of 104 (announcement lists)GET http:///_api/Web/lists?$filter=BaseTemplate eq 104 Create a new listPOST http:///_api/web/ListsBody: { 'd' : {'__metadata': {'type': 'SP.List'},'Title': 'My New List,'Url': 'newlist','TemplateType': 101,'TemplateFeatureId': '00BFEA71-E717-4E80-AA17-D0C71B360101'}}Sample REST / OData CallsdemoSharePoint _API

11/1/2012 9:56 AM 2007 Microsoft Corporation. All rights reserved. Microsoft, Windows, Windows Vista and other product names are or may be registered trademarks and/or trademarks in the U.S. and/or other countries.The information herein is for informational purposes only and represents the current view of Microsoft Corporation as of the date of this presentation. Because Microsoft must respond to changing market conditions, it should not be interpreted to be a commitment on the part of Microsoft, and Microsoft cannot guarantee the accuracy of any information provided after the date of this presentation. MICROSOFT MAKES NO WARRANTIES, EXPRESS, IMPLIED OR STATUTORY, AS TO THE INFORMATION IN THIS PRESENTATION.

13Meet the App Principals

(Rob)

16

17

Contoso photo18

Contoso photoContoso19

?

Contoso photoContoso20

Contoso photoContoso21

ViewView

Contoso photoContoso22

View, Upload, Tag, CommentView, Upload, Tag, Comment

Contoso photoContoso23

View, Upload, Tag, Comment, Change PasswordView, Upload, Tag, Comment, Change Password

Contoso photoContoso24

View, Upload, Tag, Comment, Change Password

Contoso photoContoso25

View, Upload, Tag, Comment, Change Password

Contoso photoContoso26

View, Upload, Tag, Comment, Change Password

Contoso photoContoso27

View, Upload, Tag, Comment, Change Password

View

Contoso photoContoso28

View, Upload, Tag, Comment, Change Password

View

Contoso photoContoso29

SharePoint SharePoint 2007SandboxSharePoint 2010

SharePoint Azure, IIS, LAMP, etc

_apiSharePoint 2013App Model: Past, Present and Future30What: The protocol to handle the authorization flow.Based on existing internet implementationsWhy:FunctionalityApp and User identitiesEstablished model for granting app accessSimpleOtherEngineering efficienciesGood adoptionClear architectural roadmapOAuth 2.03132User credentialsprovided?StartEndUser only contextApp only contextUser + App contextAnonymous contextApp tokenprovided?App tokenIncludes user?AuthenticationYesNoNoNoYesYesBuild 2012 2012 Microsoft Corporation. All rights reserved. Microsoft, Windows, and other product names are or may be registered trademarks and/or trademarks in the U.S. and/or other countries.The information herein is for informational purposes only and represents the current view of Microsoft Corporation as of the date of this presentation. Because Microsoft must respond to changing market conditions, it should not be interpreted to be a commitment on the part of Microsoft, and Microsoft cannot guarantee the accuracy of any information provided after the date of this presentation. MICROSOFT MAKES NO WARRANTIES, EXPRESS, IMPLIED OR STATUTORY, AS TO THE INFORMATION IN THIS PRESENTATION.11/1/201232SharePoint Context Token

1) User browses to a SharePoint page with an app from app.com on it

https://rhoward.sharepo

2) SharePoint asks ACS to create and sign a token which contains context information (e.g. the current user) and an auth code

https://rhoward.sharepo

3) ACS returns the signed context token

https://rhoward.sharepo

4) SharePoint renders the page including an iframe, which will POST the context token to app.comSP API Reviewhttps://rhoward.sharepoPOST https://app.com/SPAppToken=eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.e11/1/201238Microsoft SharePoint 2012 Microsoft Corporation. All rights reserved. Microsoft, Windows, and other product names are or may be registered trademarks and/or trademarks in the U.S. and/or other countries.The information herein is for informational purposes only and represents the current view of Microsoft Corporation as of the date of this presentation. Because Microsoft must respond to changing market conditions, it should not be interpreted to be a commitment on the part of Microsoft, and Microsoft cannot guarantee the accuracy of any information provided after the date of this presentation. MICROSOFT MAKES NO WARRANTIES, EXPRESS, IMPLIED OR STATUTORY, AS TO THE INFORMATION IN THIS PRESENTATION.

5) The iframe causes the browser to request a page from app.com including the context tokenSP API Reviewhttps://rhoward.sharepo

6) App.com validates the signature on the context token, extracts the auth code, and uses its credentials to request an access token from ACSSP API Reviewhttps://rhoward.sharepo

7) Windows Azure Access Control Service (ACS) returns an access tokenSP API Reviewhttps://rhoward.sharepo

8) App.com makes a web service request to SharePoint, passing the access token

SP API Reviewhttps://rhoward.sharepo

9) SharePoint returns information to App.comSP API Reviewhttps://rhoward.sharepo

10) App.com renders the iframe contents

SP API Reviewhttps://rhoward.sharepo7 Unassigned Changes21 Pending Reviews17 Active API BugsNag MailNag MailAuto-AssigndemoA basic remote app

11/1/2012 9:56 AM 2007 Microsoft Corporation. All rights reserved. Microsoft, Windows, Windows Vista and other product names are or may be registered trademarks and/or trademarks in the U.S. and/or other countries.The information herein is for informational purposes only and represents the current view of Microsoft Corporation as of the date of this presentation. Because Microsoft must respond to changing market conditions, it should not be interpreted to be a commitment on the part of Microsoft, and Microsoft cannot guarantee the accuracy of any information provided after the date of this presentation. MICROSOFT MAKES NO WARRANTIES, EXPRESS, IMPLIED OR STATUTORY, AS TO THE INFORMATION IN THIS PRESENTATION.

45The OAuth 2.0 Authorization ProtocolThe OAuth 2.0 Authorization Protocol: Bearer TokensJSON Web Token (JWT)IETF OAuth WG homepageOAuth Standards ResourcesSharePoint 2013 & Windows Azure WorkflowPeopleContentEventsCollabVisual StudioSharePoint DesignerSharePointWF3 HostSharePoint OM_APIWorkflow Services ManagerMTWAzureService Bus

AzureWorkflow

AzureAccess Control

OAuth2InstancesInteropDeploymentMessagingWF4 Service Application Proxy47Remote Event ReceiversRemote Event Receivers

App Server

Remote EventPush NotificationsdemoRemote Event Receivers11/1/2012 9:56 AM 2007 Microsoft Corporation. All rights reserved. Microsoft, Windows, Windows Vista and other product names are or may be registered trademarks and/or trademarks in the U.S. and/or other countries.The information herein is for informational purposes only and represents the current view of Microsoft Corporation as of the date of this presentation. Because Microsoft must respond to changing market conditions, it should not be interpreted to be a commitment on the part of Microsoft, and Microsoft cannot guarantee the accuracy of any information provided after the date of this presentation. MICROSOFT MAKES NO WARRANTIES, EXPRESS, IMPLIED OR STATUTORY, AS TO THE INFORMATION IN THIS PRESENTATION.

50SharePoint 2013 has a broad, powerful set of service APIs available to clients of a comprehensive set of technologiesSharePoint 2013 independently authenticates both users and app principals Using the deep set of APIs and standard web technologies you can build a new class of innovative productivity solutions by accessing SharePoint as a service

TakeawaysToday 12:00 PM B92 Stinger Developing an App for SharePoint AutohostedRelated Sessionshttp://dev.office.comhttp://blogs.msdn.com/b/officeapps

http://dev.windows.comhttp://windowsazure.comOffice, SharePoint & More ResourcesPlease submit sessions evals on the Build Windows 8 Appor at http://aka.ms/BuildSessions 2012 Microsoft Corporation. All rights reserved. Microsoft, Windows, Windows Vista and other product names are or may be registered trademarks and/or trademarks in the U.S. and/or other countries.The information herein is for informational purposes only and represents the current view of Microsoft Corporation as of the date of this presentation. Because Microsoft must respond to changing market conditions, it should not be interpreted to be a commitment on the part of Microsoft, and Microsoft cannot guarantee the accuracy of any information provided after the date of this presentation. MICROSOFT MAKES NO WARRANTIES, EXPRESS, IMPLIED OR STATUTORY, AS TO THE INFORMATION IN THIS PRESENTATION.OverflowTwo Aspects to Access ControlAuthenticationverifying a claim made by a subject that it should be allowed to act on behalf of a given principalAuthorizationverifying that an authenticated subject has permission to perform certain operations or access specific resourcesSharePointHost WebApp Web JavaScriptApp Authentication

SharePointAppWebSharePointHost WebApp Authentication

JavaScript(cross domain)

SharePointAppWebSharePointHost WebApp Authentication

OAuth

SharePointAppWebApp Identity Online and On-PremIn the cloudWindows Azure Active Directory (AD) comes with O365Apps use 3-legged OAuth

Azure ADAppOffice 365Cloud60App Identity Online and On-PremIn the cloudWindows Azure AD comes with O365Apps use 3-legged OAuthOn-PremisesCert-based trustOn-prem to on-prem

AppSharePointOn-PremAzure ADAppOffice 365Cloud61App Identity Online and On-PremIn the cloudWindows Azure AD comes with O365Apps use 3-legged OAuthOn-PremisesCert-based trustOn-prem to on-premHybridUse O365 Azure AD with on-prem SPSupports marketplace and on-prem apps

Azure ADAppOffice 365AppSharePointCloudOn-Prem62AuthorizationApps have Identity (separate from...

Recommended

View more >