Extending SharePoint, Lync and Exchange with a custom WOPI Client. DEV205 Wictor Wilén



Similar documents
Please contact Cyber and Technology Training at for registration and pricing information.

Lab 05: Deploying Microsoft Office Web Apps Server

Thomas Röthlisberger IT Security Analyst

DEPLOY A SINGLE-SERVER OFFICE WEB APPS SERVER FARM THAT USES HTTPS

Deploying Microsoft Office Web Apps Server and Experiencing Collaboration Features

Introduction to Stanford Box

Feature Integration Across Microsoft Office Server Products SharePoint Server, Exchange Server, Lync Server, and Office Web Apps

Microsoft Office Web Apps Server 2013 Integration with SharePoint 2013 Setting up Load Balanced Office Web Apps Farm with SSL (HTTPS)

Microsoft Training and Certification Guide. Current as of March 16, 2015

TH3 Office 365 REST APIs. Peter Carson

Audience Profile This course is intended for any developer that is tasked with creating applications that interface with O365.

Use Office 365 on your Windows Phone

Sitecore Dashboard User Guide

Microsoft SQL Server Review

Kentico CMS security facts

Use Office 365 on your iphone or ipad

Microsoft Training and Certification Guide. Current as of December 31, 2013

ediscovery Features of SharePoint 2013 and Exchange 2013 Paul Branson Solution Architect Microsoft

Developing ASP.NET MVC 4 Web Applications MOC 20486

OAuth2 and UMA for ACE draft-maler-ace-oauth-uma-00.txt. Eve Maler, Erik Wahlström, Samuel Erdtman, Hannes Tschofenig

Single-Sign-On between On-Premises and the Cloud: Leveraging Windows Azure Active Directory to authenticate custom solutions and Apps

Use Office 365 on your Android phone

Learn how to create web enabled (browser) forms in InfoPath 2013 and publish them in SharePoint InfoPath 2013 Web Enabled (Browser) forms

Managing the PowerPivot for SharePoint Environment

Get started with cloud hybrid search for SharePoint

Explore Microsoft SharePoint 2013

ArcGIS Viewer for Silverlight An Introduction

Portals and Hosted Files

Fabrizio Volpe. MVP Directory Services MCITP Lync

Pentesting Web Frameworks (preview of next year's SEC642 update)

Box Admin Best Practices: Everyday Collaboration

SharePoint Apps model overview

SharePoint 2013: Key feature improvements

SharePoint 2013 DEV. David Čamdžić Kompas Xnet d.o.o.

Getting started with 2c8 plugin for Microsoft Sharepoint Server 2010

Introduction to Records Management in SharePoint 2013

Managing Software Updates with System Center 2012 R2 Configuration Manager

Learn about OverDrive APIs and how they can benefit search, discovery and reporting services at your library. Contact:

Developing ASP.NET MVC 4 Web Applications

SharePoint 2013 Search Topologies Explained

This course provides students with the knowledge and skills to develop ASP.NET MVC 4 web applications.

Collaborate.ets.org Password Setup & Recovery Guide. Table of Contents

SharePoint 2007 Get started User Guide. Team Sites

System Requirements for Microsoft Dynamics NAV 2013 R2

Open ebay Apps Jumpstart

What s new in Dynamics CRM 2016?

GravityLab Multimedia Inc. Windows Media Authentication Administration Guide

Quick Start and Trial Guide (Mail) Version 3 For ios Devices

PowerLink for Blackboard Vista and Campus Edition Install Guide

Administering Team Foundation Server 2013

What is a workflow? Workflows are a series of actions that correspond to a work process

OAuth 2.0 Developers Guide. Ping Identity, Inc th Street, Suite 100, Denver, CO

Collaborating with External Users

Intelligent Dashboards made Simple! Using Excel Services

ArcGIS Web Mapping. Sam Berg, esri

Glyma Deployment Instructions

UF Health SharePoint 2010 Introduction to Content Administration

An IT Pro Guide for Deploying and Managing SharePoint 2013 Apps. Randy

Qualifying Microsoft Training for Software Assurance Training Vouchers (SATVs)

Z-Term V4 Administration Guide

About SharePoint Server 2007 My Sites

Know the Unknown When Developing in SharePoint 2010

Developing ASP.NET MVC 4 Web Applications Course 20486A; 5 Days, Instructor-led

Vizit 4.1 Installation Guide

Step-By-Step Guide to Deploying Lync Server 2010 Enterprise Edition

Course MS55077A Project Server 2013 Development. Length: 5 Days

Microsoft Project Server Integration with SharePoint 2010

System Requirements for Microsoft Dynamics NAV 2016

The Core Pillars of AN EFFECTIVE DOCUMENT MANAGEMENT SOLUTION

Nintex Forms 2013 Help

Getting Started Guide for Developing tibbr Apps

Archive Document Management for Dynamics CRM

Microsoft Dynamics GP. Business Analyzer

Release Notes for Cisco IronPort Security Plug-in 7.3.1

The Lifecycle of a Reporting Services Report

Getting started with your AppDev Microsoft Development Library

System Requirements for Microsoft Dynamics NAV 2016

Office 365 Cheat Sheet OneDrive for Business

Create Your Free Mobile Site App in Baidu Webmaster Tools

How to move a SharePoint Server bit environment to a 64-bit environment on Windows Server 2008.

Colligo Engage Windows App 7.0. Administrator s Guide

Information Rights Management in SharePoint. by André Vala

Simply type the id# in the search mechanism of ACS Skills Online to access the learning assets outlined below.

SharePoint for Developers. Lunch and Learn

SharePoint 2010/2013 Course

Active Directory Self-Service Bundle

Cloud Elements! Marketing Hub Provisioning and Usage Guide!

Introducing our new Editor: Creator

Office 2013 files: Storing, accessing and sharing on the network and the cloud

HOW TO CREATE THEME IN MAGENTO 2

Office 365 deployment checklists

System Requirements for Microsoft Dynamics NAV 2016

Microsoft Business Intelligence 2012 Single Server Install Guide

Contents. 1.Running the Installer Activating PowerForms SharePoint SharePoint 2007 / WSS

Transcription:

Extending SharePoint, Lync and Exchange with a custom WOPI Client DEV205 Wictor Wilén

Wictor Wilén, MCA, MCSM, MCM, MVP Connecta AB, Sweden http://www.connecta.se http://www.wictorwilen.se wictor@wictorwilen.se @wictor Author of SharePoint 2010 Web Parts in Action and co-author of Inside SharePoint 2013

Takeway from this session I want you to learn and understand the WOPI protocol and how it can enhance and extend your SharePoint solutions

Agenda WOPI this and WOPI that [MS-WOPI] OpenWOPI Build a WOPI client Discovery Client SharePoint 2013 Extensions

Office Web Apps Office Web Apps 2010 SharePoint 2010 Service Application SharePoint 2010 only Not customizable, extendable and almost never updated Office Web Apps Server 2013 WAC Server 2013 Standalone Shared with SharePoint, Exchange and Lync Based on the open [MS- WOPI] protocol docs.com skydrive.live.com

[MS-WOPI] Web Application Open Platform Interface http://askwictor.com/wopi Almost fully documented No licensing REST like protocol

Principles Discovery Client Server Security

WOPI Client Provide a Discovery endpoint Reads information about files and folders Reads content of files and folders Writes content of files and folders Office Web Apps 2013 is a WOPI Client

WOPI Server/Apps Reads the WOPI Client Discovery endpoint Responds to requests from the WOPI Client Never initiates communication with the WOPI Client SharePoint, Lync and Exchange 2013 are WOPI Servers

Discovery http[s]://<server>/hosting/discovery HTTP/1.1 GET Request <net-zone> <app name= Word > <action ext= docx name= edit urlsrc=... > <proof-key>

Introducing OpenWOPI A free and open WOPI Client Including extensions for SharePoint 2013 Available on Codeplex this week openwopi.codeplex.com ASP.NET MVC4 based Let s build it

Implementing the WOPI Discovery process in the OpenWOPI Client WOPI DISCOVERY

Client and Server Communication WOPI Server IFrame: WOPI Client WOPI Server generates an Access Token and an id for the user and file WOPI Server renders an IFrame using the action urlsrc and standard parameters (GET) [friendly url] WOPI Client requests file info (GET) Passing unmodified Access Token and id WOPI Client requests file content (GET) Passing unmodified Access Token and id WOPI Client renders document Other WOPI Operations (GET, POST )

WOPI Client Requests Four request types Must be implemented by the WOPI Server http[s]://<server>/< >/wopi*/files/<id> File-level operations http[s]://<server>/< >/wopi*/files/<id>/contents Content operations http[s]://<server>/< >/wopi*/folders/<id> Folder-level operations http[s]://<server>/< >/wopi*/folders/<id>/children Files and Folders within a folder

Request and Response details HTTP Headers MUST Authorization MAY X-WOPI-ClientVersion X-WOPI-ServerVersion X-WOPI-Proof / X-WOPI-ProofOld X-WOPI-CorrelationID X-WOPI-*

Access Tokens and security Access Token <token> Must be present on all Requests as the Authorization header Generated by the WOPI Server WOPI Client doesn t have to understand it Should expire Should be scoped to a user and a set of resources File or folder id <id> Must be unique Provided through the initial action request (urlsrc)

WOPI Client Security The Proof Key Defined in the Discovery message Not required Used by Server to decrypt HTTP Headers X-WOPI-Proof X-WOPI-ProofOld SharePoint always requires this!

SENDING WOPI REQUESTS

Actions Scoped to an app Specifies urlsrc so Server can initiate request Specifies name (type) and extension

File operations http[s]://<server>/< >/wopi*/files/<id> CheckFileInfo (GET) PutRelativeFile (POST + X-WOPI-*) Lock, Unlock, RefreshLock, UnlockAndRelock (POST + X- WOPI-*) DeleteFile (POST + X-WOPI-*) ExecuteCellStorage* (POST + X-WOPI-*) ReadSecureStore (POST + X-WOPI-*) Get/RevokeRestrictedLink (POST + X-WOPI-*) http[s]://<server>/< >/wopi*/files/<id>/contents GetFile (GET) PutFile (POST)

RETRIEVING A FILE

Action values view edit mobileview interactivepreview embedview present formsubmit formedit

UPDATING A FILE

Integration with SharePoint Add-SPWOPIBinding Previews Document Libraries JavaScript (undocumented territory) Search Center Display Template

Exchange and Lync integration Only allows one WOPI Client Exchange 2013 PowerShell Lync 2013 The Topology Builder

PREVIEWS FOR REAL IN SHAREPOINT 2013

Summary [MS-WOPI] is an open specification Built on the HTTP protocol You can create custom viewers and editors OpenWOPI! openwopi.codeplex.com

Thank you for attending! You ve been an awesome crowd! Slides and Open WOPI links at http://askwictor.com/spevo13-dev205