SlideShare a Scribd company logo
1 of 35
Automate Custom
Solutions Deployment
on Office 365 and
Azure
Paolo Pialorsi
14 octobre 2017
#SPSParis
Merci pour votre soutien
About me
• Project Manager, Consultant, Trainer
• About 50 Microsoft certification exams passed
• MCSM – Charter SharePoint
• MVP Office Servers and Services
• SharePoint PnP Core Team Member
• Focused on SharePoint and Office 365 since
the beginning
• Author of many books about XML, SOAP,
.NET, LINQ, SharePoint, and Office 365
• Speaker at main IT conferences
Agenda
• Set the context of automated deployment
• Authentication and Authorization
• Microsoft Graph
• Microsoft Azure Management API
• SharePoint PnP Provisioning
DEMO
Let’s set the context: PnP Partner Pack Setup Wizard
https://youtu.be/D98jqzPkfj0
Goals of the sample project
• Create SPO Site Collections
• Generate on the fly an X.509 certificate
• Configure Azure AD Application
• Configure X.509 certificate for App-Only with SPO
• Configure custom settings for the Application
• Configure custom permissions to consume Microsoft Graph and SPO
• Create an Azure Resource Group
• Create an Azure Blob Storage account
• Create an Azure App Service
• Configure custom settings for the App Service
• Build, package, and publish an ASP.NET Web Application
• Build, package, and publish a bunch of Web Jobs
Security
Authentication and Authorization
Requirements
• Demo application requires to be executed as local admin
• To create the X.509 certificate
• You need Tenant Global Admin account for the Office 365
• Valid Azure Subscription backing the Office 365 tenant
• You need Admin account for target Azure Subscription
AuthN & AuthZ
• Two applications registered in the target tenant
• One Azure AD multi-tenant native application
• The main application, which manages the Azure AD resources
• One Office 365 application
• The one that corresponds to the PnP Partner Pack in our scenario
• ADAL 3.x for AuthN & AuthZ logic
DEMO
Security Infrastructure and Applications Configuration
Working with SPO
Site Collection creation
• We use PnP Core Library and Tenant class
• From Microsoft.Online.SharePoint.TenantAdministration
• Based on PnP extension methods
• SiteExists
• DeleteSiteCollectionFromRecycleBin
• CreateSiteCollection
• We use PnP Provisioning Engine to provision artifacts
PnP Provisioning Engine
• One of the most useful capabilities provided by PnP
• Available in different flavors
• .NET with PnP Core Library
• PowerShell with PnP cmdlets
• Typical use cases
• PowerShell automation
• Azure Web Jobs
• Azure Functions
• Back-end services
• Etc.
PnP Provisioning Engine: main capabilities
• XML or Open XML (.PNP) based storage
• Can eventually be used “just in memory”
• You can extract a template from a live (model) site
• You can apply a template to multiple sites
• Delta handling of templates
• We add or update, we do not delete/remove
• Supports both SPO and SP2013/2016
Main Features
• SP2013, SP2016 and SPO
• Delta templates
• XML, JSON formatter
• Site Columns
• Content Types
• Lists/Libraries Instances
• Features (Site or Web)
• Custom Actions (Site or Web)
• Files/Pages (Wiki, WebPart)
• Taxonomies
• Composed Look
• Site Policies
• Web Settings
• Regional Settings
• UI Languages
• Resource Files
• Audit Settings
• Workflows (SPD only)
• Search Settings
• Publishing (including Page Layouts)
• Navigation Settings
• Modern Pages
• Client-side Web Parts
• Client-side Extensions
DEMO
SPO Site Collection creation and Artifacts provisioning
Working with Azure AD
Azure AD Application Registration
• We register the application with a custom manifest file
• Including custom permissions for other APIs
• We create on the fly the shared secret
• We configure all the URLs
• POST against Graph beta endpoint
• https://graph.microsoft.com/beta/applications
• Response will be the just created application
DEMO
Azure AD Application registration
Working with Azure
Azure Management API
• Allows managing resources on Azure
• REST based API
• https://management.azure.com/
• Using Azure AD and OAuth 2.0 for authorization
• There are endpoints for almost everything  …
• You need a target subscription
• And you can browse for them through API
• You need to register to manage specific resources
• Can be done still using the API …
• There are different versions, depending on the target endpoint
Creating a Resource Group
• Make a PUT request against
• subscriptions/{subscriptionId}/resourcegroups/{resourceGroupName}
• ?api-version=2016-09-01
• You’ll get back a JSON object
• Describes the Resource Group
• You need a service plan, too
• Make a PUT request against
• subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/provi
ders/Microsoft.Web/serverfarms/{servicePlanName}
• ?api-version=2015-08-01
Creating a Blob Storage Account
• Make a PUT request against
• subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/provi
ders/Microsoft.Storage/storageAccounts/{storageAccountName.ToLower()}
• ?api-version=2016-12-01
• When you create a Storage Account
• Wait for the account to be ready
• Make GET request and wait for «Succeded» status
• Once it’s ready, get the storage keys
• Make a POST request for
• subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Micros
oft.Storage/storageAccounts/{storageAccountName.ToLower()}/listKeys
• As usual, you’ll get back the keys in a JSON object
DEMO
Creating the Blob Storage Account
Creating an Azure App Service (1/2)
• Make a PUT request against
• subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/provi
ders/Microsoft.Web/sites/{appServiceName}
• ?api-version=2016-08-01
• Application Settings are an untyped array of JSON objects
• { “Name”: “SettingName”, “Value”: “Value” }
• To upload X.509 certificate, make a PUT request against
• subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/provi
ders/Microsoft.Web/certificates/{appServiceName}-pfx
• ?api-version=2016-03-01
• Provide certificate PFX blob + password
Creating an Azure App Service (2/2)
• Get a Publishing Profile settings file
• subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/provi
ders/Microsoft.Web/sites/{appServiceName}/publishxml
• ?api-version=2016-08-01
• You’ll get back the XML publishing settings file
• You can parse it for settings
DEMO
Creating the Azure App Service
Build, Package, and Deploy Web Site
• We used PowerShell from .NET + MSBuild
• Hidden background running console
• The Visual Studio version makes the difference
• Because MSBuild path changes
• Then we run MSBUILD
/p:Configuration=Release
/p:OutputPath="$tempPath"
/p:VisualStudioVersion="$vsVersion"
/p:PublishSettingsFile="$PublishingSettingsPath"
/p:DeployOnBuild=true
Build, Package, and Deploy Web Jobs
• We used PowerShell from .NET + MSBuild
• Hidden background running console
• The Visual Studio version makes the difference (as like as before)
• Because MSBuild path changes
• Then we create a ZIP file with the build output
• And we upload the ZIP toward SCM of the App Service
• https://{appServiceName}.scm.azurewebsites.net/api/zip/site/wwwroot/App
_Data/jobs/{jobType.ToString().ToLower()}/{jobName}/
• Basic Authentication with publishing profile settings credentials
DEMO
Build, Package, and Deploy on Azure
Useful Links
• https://github.com/SharePoint/PnP-Partner-Pack
• https://www.youtube.com/watch?v=D98jqzPkfj0
• https://docs.microsoft.com/en-us/rest/api/apimanagement/
• https://msdn.microsoft.com/en-us/pnp_articles/pnp-provisioning-
engine-and-the-core-library
• https://msdn.microsoft.com/en-us/pnp_articles/introducing-the-
pnp-provisioning-engine
Q&A
Thank you!
Thank you, for your for #SPSParis

More Related Content

What's hot

I5 - Bring yourself up to speed with power shell
I5 -  Bring yourself up to speed with power shellI5 -  Bring yourself up to speed with power shell
I5 - Bring yourself up to speed with power shellSPS Paris
 
I3 - Running SharePoint 2016 in Azure the do's and dont's - Jasjit Chopra
I3 - Running SharePoint 2016 in Azure the do's and dont's - Jasjit ChopraI3 - Running SharePoint 2016 in Azure the do's and dont's - Jasjit Chopra
I3 - Running SharePoint 2016 in Azure the do's and dont's - Jasjit ChopraSPS Paris
 
ECS19 Elio Struyf - Setting Up Your SPFx CI/CD pipelines on Azure DevOps
ECS19 Elio Struyf - Setting Up Your SPFx CI/CD pipelines on Azure DevOpsECS19 Elio Struyf - Setting Up Your SPFx CI/CD pipelines on Azure DevOps
ECS19 Elio Struyf - Setting Up Your SPFx CI/CD pipelines on Azure DevOpsEuropean Collaboration Summit
 
SPUnite17 SPFx Extensions
SPUnite17 SPFx ExtensionsSPUnite17 SPFx Extensions
SPUnite17 SPFx ExtensionsNCCOMMS
 
SPS Paris: Building great client-side web parts with spfx, pnp-js-core, React...
SPS Paris: Building great client-side web parts with spfx, pnp-js-core, React...SPS Paris: Building great client-side web parts with spfx, pnp-js-core, React...
SPS Paris: Building great client-side web parts with spfx, pnp-js-core, React...Bill Ayers
 
SPSNL16 - Building Office 365 and SharePoint solutions using modern developer...
SPSNL16 - Building Office 365 and SharePoint solutions using modern developer...SPSNL16 - Building Office 365 and SharePoint solutions using modern developer...
SPSNL16 - Building Office 365 and SharePoint solutions using modern developer...Waldek Mastykarz
 
Introduction to SharePoint Framework
Introduction to SharePoint FrameworkIntroduction to SharePoint Framework
Introduction to SharePoint FrameworkMałgorzata Borzęcka
 
I2 - SharePoint Hybrid Search Start to Finish - Thomas Vochten
I2 - SharePoint Hybrid Search Start to Finish - Thomas VochtenI2 - SharePoint Hybrid Search Start to Finish - Thomas Vochten
I2 - SharePoint Hybrid Search Start to Finish - Thomas VochtenSPS Paris
 
[Jansen] Transforming your classic team sites into modern group connected tea...
[Jansen] Transforming your classic team sites into modern group connected tea...[Jansen] Transforming your classic team sites into modern group connected tea...
[Jansen] Transforming your classic team sites into modern group connected tea...European Collaboration Summit
 
Office script labs
Office script labsOffice script labs
Office script labsMark Roden
 
Angular.js in XPages
Angular.js in XPagesAngular.js in XPages
Angular.js in XPagesMark Roden
 
Matthias Einig from Rencore - Transforming SharePoint farm solutions to the A...
Matthias Einig from Rencore - Transforming SharePoint farm solutions to the A...Matthias Einig from Rencore - Transforming SharePoint farm solutions to the A...
Matthias Einig from Rencore - Transforming SharePoint farm solutions to the A...Rencore
 
Deep dive into share point framework webparts
Deep dive into share point framework webpartsDeep dive into share point framework webparts
Deep dive into share point framework webpartsPrabhu Nehru
 
O365Con18 - Site Templates, Site Life Cycle Management and Modern SharePoint ...
O365Con18 - Site Templates, Site Life Cycle Management and Modern SharePoint ...O365Con18 - Site Templates, Site Life Cycle Management and Modern SharePoint ...
O365Con18 - Site Templates, Site Life Cycle Management and Modern SharePoint ...NCCOMMS
 
Workflow Manager 1.0 SharePoint 2013 Workflows
Workflow Manager 1.0SharePoint 2013 WorkflowsWorkflow Manager 1.0SharePoint 2013 Workflows
Workflow Manager 1.0 SharePoint 2013 WorkflowsDamir Dobric
 
20140211 BTUG.be - Workflow Manager
20140211 BTUG.be - Workflow Manager20140211 BTUG.be - Workflow Manager
20140211 BTUG.be - Workflow ManagerBTUGbe
 
Use the PnP SharePoint Starter Kit to create your intranet in a box
Use the PnP SharePoint Starter Kit to create your intranet in a boxUse the PnP SharePoint Starter Kit to create your intranet in a box
Use the PnP SharePoint Starter Kit to create your intranet in a boxFabio Franzini
 

What's hot (20)

I5 - Bring yourself up to speed with power shell
I5 -  Bring yourself up to speed with power shellI5 -  Bring yourself up to speed with power shell
I5 - Bring yourself up to speed with power shell
 
O365: Attack of the Clones
O365: Attack of the ClonesO365: Attack of the Clones
O365: Attack of the Clones
 
I3 - Running SharePoint 2016 in Azure the do's and dont's - Jasjit Chopra
I3 - Running SharePoint 2016 in Azure the do's and dont's - Jasjit ChopraI3 - Running SharePoint 2016 in Azure the do's and dont's - Jasjit Chopra
I3 - Running SharePoint 2016 in Azure the do's and dont's - Jasjit Chopra
 
ECS19 Elio Struyf - Setting Up Your SPFx CI/CD pipelines on Azure DevOps
ECS19 Elio Struyf - Setting Up Your SPFx CI/CD pipelines on Azure DevOpsECS19 Elio Struyf - Setting Up Your SPFx CI/CD pipelines on Azure DevOps
ECS19 Elio Struyf - Setting Up Your SPFx CI/CD pipelines on Azure DevOps
 
SPUnite17 SPFx Extensions
SPUnite17 SPFx ExtensionsSPUnite17 SPFx Extensions
SPUnite17 SPFx Extensions
 
SPS Paris: Building great client-side web parts with spfx, pnp-js-core, React...
SPS Paris: Building great client-side web parts with spfx, pnp-js-core, React...SPS Paris: Building great client-side web parts with spfx, pnp-js-core, React...
SPS Paris: Building great client-side web parts with spfx, pnp-js-core, React...
 
SPSNL16 - Building Office 365 and SharePoint solutions using modern developer...
SPSNL16 - Building Office 365 and SharePoint solutions using modern developer...SPSNL16 - Building Office 365 and SharePoint solutions using modern developer...
SPSNL16 - Building Office 365 and SharePoint solutions using modern developer...
 
ECS19 Bert Jansen - Modernizing your existing sites
ECS19 Bert Jansen - Modernizing your existing sitesECS19 Bert Jansen - Modernizing your existing sites
ECS19 Bert Jansen - Modernizing your existing sites
 
Introduction to SharePoint Framework
Introduction to SharePoint FrameworkIntroduction to SharePoint Framework
Introduction to SharePoint Framework
 
I2 - SharePoint Hybrid Search Start to Finish - Thomas Vochten
I2 - SharePoint Hybrid Search Start to Finish - Thomas VochtenI2 - SharePoint Hybrid Search Start to Finish - Thomas Vochten
I2 - SharePoint Hybrid Search Start to Finish - Thomas Vochten
 
[Jansen] Transforming your classic team sites into modern group connected tea...
[Jansen] Transforming your classic team sites into modern group connected tea...[Jansen] Transforming your classic team sites into modern group connected tea...
[Jansen] Transforming your classic team sites into modern group connected tea...
 
Office script labs
Office script labsOffice script labs
Office script labs
 
Angular.js in XPages
Angular.js in XPagesAngular.js in XPages
Angular.js in XPages
 
Matthias Einig from Rencore - Transforming SharePoint farm solutions to the A...
Matthias Einig from Rencore - Transforming SharePoint farm solutions to the A...Matthias Einig from Rencore - Transforming SharePoint farm solutions to the A...
Matthias Einig from Rencore - Transforming SharePoint farm solutions to the A...
 
Deep dive into share point framework webparts
Deep dive into share point framework webpartsDeep dive into share point framework webparts
Deep dive into share point framework webparts
 
O365Con18 - Site Templates, Site Life Cycle Management and Modern SharePoint ...
O365Con18 - Site Templates, Site Life Cycle Management and Modern SharePoint ...O365Con18 - Site Templates, Site Life Cycle Management and Modern SharePoint ...
O365Con18 - Site Templates, Site Life Cycle Management and Modern SharePoint ...
 
Workflow Manager 1.0 SharePoint 2013 Workflows
Workflow Manager 1.0SharePoint 2013 WorkflowsWorkflow Manager 1.0SharePoint 2013 Workflows
Workflow Manager 1.0 SharePoint 2013 Workflows
 
20140211 BTUG.be - Workflow Manager
20140211 BTUG.be - Workflow Manager20140211 BTUG.be - Workflow Manager
20140211 BTUG.be - Workflow Manager
 
Use the PnP SharePoint Starter Kit to create your intranet in a box
Use the PnP SharePoint Starter Kit to create your intranet in a boxUse the PnP SharePoint Starter Kit to create your intranet in a box
Use the PnP SharePoint Starter Kit to create your intranet in a box
 
[Struyf] Automate Your Tasks With Azure Functions
[Struyf] Automate Your Tasks With Azure Functions[Struyf] Automate Your Tasks With Azure Functions
[Struyf] Automate Your Tasks With Azure Functions
 

Similar to D2 - Automate Custom Solutions Deployment on Office 365 and Azure - Paolo Pialorsi

Developing a Provider Hosted SharePoint app
Developing a Provider Hosted SharePoint appDeveloping a Provider Hosted SharePoint app
Developing a Provider Hosted SharePoint appTalbott Crowell
 
Developing a provider hosted share point app
Developing a provider hosted share point appDeveloping a provider hosted share point app
Developing a provider hosted share point appTalbott Crowell
 
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
 
Developing SharePoint 2013 apps with Visual Studio 2012 - SharePoint Connecti...
Developing SharePoint 2013 apps with Visual Studio 2012 - SharePoint Connecti...Developing SharePoint 2013 apps with Visual Studio 2012 - SharePoint Connecti...
Developing SharePoint 2013 apps with Visual Studio 2012 - SharePoint Connecti...Bram de Jager
 
Heading to the Cloud : Introduction to deploying a Provider-Hosted App in Azure
Heading to the Cloud : Introduction to deploying a Provider-Hosted App in AzureHeading to the Cloud : Introduction to deploying a Provider-Hosted App in Azure
Heading to the Cloud : Introduction to deploying a Provider-Hosted App in AzureXenox Garavito
 
Custom Development in SharePoint – What are my options now?
Custom Development in SharePoint – What are my options now?Custom Development in SharePoint – What are my options now?
Custom Development in SharePoint – What are my options now?Talbott Crowell
 
#spsuk: Understanding the Office 365 Architecture
#spsuk: Understanding the Office 365 Architecture#spsuk: Understanding the Office 365 Architecture
#spsuk: Understanding the Office 365 Architecturepearce.alex
 
Developing Apps for SharePoint 2013
Developing Apps for SharePoint 2013Developing Apps for SharePoint 2013
Developing Apps for SharePoint 2013SPC Adriatics
 
Cross Site Collection Navigation with SPFX, PowerShell PnP, PnP-JS, Office UI
Cross Site Collection Navigation with SPFX, PowerShell PnP, PnP-JS, Office UICross Site Collection Navigation with SPFX, PowerShell PnP, PnP-JS, Office UI
Cross Site Collection Navigation with SPFX, PowerShell PnP, PnP-JS, Office UIThomas Daly
 
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
 
Logic Apps – Deployments
Logic Apps – DeploymentsLogic Apps – Deployments
Logic Apps – DeploymentsBizTalk360
 
SharePoint Fest DC 2018 - From SharePoint to Office 365 Development
SharePoint Fest DC 2018 - From SharePoint to Office 365 DevelopmentSharePoint Fest DC 2018 - From SharePoint to Office 365 Development
SharePoint Fest DC 2018 - From SharePoint to Office 365 DevelopmentSébastien Levert
 
aOS Canadian Tour - Quebec - From SharePoint to Office 365 Development
aOS Canadian Tour  - Quebec - From SharePoint to Office 365 DevelopmentaOS Canadian Tour  - Quebec - From SharePoint to Office 365 Development
aOS Canadian Tour - Quebec - From SharePoint to Office 365 DevelopmentSébastien Levert
 
aOS Canadian Tour - Ottawa - From SharePoint to Office 365 Development
aOS Canadian Tour - Ottawa - From SharePoint to Office 365 DevelopmentaOS Canadian Tour - Ottawa - From SharePoint to Office 365 Development
aOS Canadian Tour - Ottawa - From SharePoint to Office 365 DevelopmentSébastien Levert
 
aOS Canadian Tour - Montreal - From SharePoint to Office 365 Development
aOS Canadian Tour - Montreal - From SharePoint to Office 365 DevelopmentaOS Canadian Tour - Montreal - From SharePoint to Office 365 Development
aOS Canadian Tour - Montreal - From SharePoint to Office 365 DevelopmentSébastien Levert
 
aOS Canadian Tour - Toronto - From SharePoint to Office 365 Development
aOS Canadian Tour - Toronto - From SharePoint to Office 365 DevelopmentaOS Canadian Tour - Toronto - From SharePoint to Office 365 Development
aOS Canadian Tour - Toronto - From SharePoint to Office 365 DevelopmentSébastien Levert
 
Chris O'Brien - Best bits of Azure for Office 365/SharePoint developers
Chris O'Brien - Best bits of Azure for Office 365/SharePoint developersChris O'Brien - Best bits of Azure for Office 365/SharePoint developers
Chris O'Brien - Best bits of Azure for Office 365/SharePoint developersChris O'Brien
 
Developer’s Independence Day: Introducing the SharePoint App Model
Developer’s Independence Day:Introducing the SharePoint App ModelDeveloper’s Independence Day:Introducing the SharePoint App Model
Developer’s Independence Day: Introducing the SharePoint App Modelbgerman
 
ESPC Webinar - From SharePoint to Office 365 Development
ESPC Webinar - From SharePoint to Office 365 DevelopmentESPC Webinar - From SharePoint to Office 365 Development
ESPC Webinar - From SharePoint to Office 365 DevelopmentSébastien Levert
 

Similar to D2 - Automate Custom Solutions Deployment on Office 365 and Azure - Paolo Pialorsi (20)

Developing a Provider Hosted SharePoint app
Developing a Provider Hosted SharePoint appDeveloping a Provider Hosted SharePoint app
Developing a Provider Hosted SharePoint app
 
Developing a provider hosted share point app
Developing a provider hosted share point appDeveloping a provider hosted share point app
Developing a provider hosted share point app
 
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
 
Developing SharePoint 2013 apps with Visual Studio 2012 - SharePoint Connecti...
Developing SharePoint 2013 apps with Visual Studio 2012 - SharePoint Connecti...Developing SharePoint 2013 apps with Visual Studio 2012 - SharePoint Connecti...
Developing SharePoint 2013 apps with Visual Studio 2012 - SharePoint Connecti...
 
Heading to the Cloud : Introduction to deploying a Provider-Hosted App in Azure
Heading to the Cloud : Introduction to deploying a Provider-Hosted App in AzureHeading to the Cloud : Introduction to deploying a Provider-Hosted App in Azure
Heading to the Cloud : Introduction to deploying a Provider-Hosted App in Azure
 
Custom Development in SharePoint – What are my options now?
Custom Development in SharePoint – What are my options now?Custom Development in SharePoint – What are my options now?
Custom Development in SharePoint – What are my options now?
 
#spsuk: Understanding the Office 365 Architecture
#spsuk: Understanding the Office 365 Architecture#spsuk: Understanding the Office 365 Architecture
#spsuk: Understanding the Office 365 Architecture
 
Developing Apps for SharePoint 2013
Developing Apps for SharePoint 2013Developing Apps for SharePoint 2013
Developing Apps for SharePoint 2013
 
Cross Site Collection Navigation with SPFX, PowerShell PnP, PnP-JS, Office UI
Cross Site Collection Navigation with SPFX, PowerShell PnP, PnP-JS, Office UICross Site Collection Navigation with SPFX, PowerShell PnP, PnP-JS, Office UI
Cross Site Collection Navigation with SPFX, PowerShell PnP, PnP-JS, Office UI
 
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
 
SPS Gulf : SharePoint 2013 Cloud Business App
SPS Gulf : SharePoint 2013 Cloud Business AppSPS Gulf : SharePoint 2013 Cloud Business App
SPS Gulf : SharePoint 2013 Cloud Business App
 
Logic Apps – Deployments
Logic Apps – DeploymentsLogic Apps – Deployments
Logic Apps – Deployments
 
SharePoint Fest DC 2018 - From SharePoint to Office 365 Development
SharePoint Fest DC 2018 - From SharePoint to Office 365 DevelopmentSharePoint Fest DC 2018 - From SharePoint to Office 365 Development
SharePoint Fest DC 2018 - From SharePoint to Office 365 Development
 
aOS Canadian Tour - Quebec - From SharePoint to Office 365 Development
aOS Canadian Tour  - Quebec - From SharePoint to Office 365 DevelopmentaOS Canadian Tour  - Quebec - From SharePoint to Office 365 Development
aOS Canadian Tour - Quebec - From SharePoint to Office 365 Development
 
aOS Canadian Tour - Ottawa - From SharePoint to Office 365 Development
aOS Canadian Tour - Ottawa - From SharePoint to Office 365 DevelopmentaOS Canadian Tour - Ottawa - From SharePoint to Office 365 Development
aOS Canadian Tour - Ottawa - From SharePoint to Office 365 Development
 
aOS Canadian Tour - Montreal - From SharePoint to Office 365 Development
aOS Canadian Tour - Montreal - From SharePoint to Office 365 DevelopmentaOS Canadian Tour - Montreal - From SharePoint to Office 365 Development
aOS Canadian Tour - Montreal - From SharePoint to Office 365 Development
 
aOS Canadian Tour - Toronto - From SharePoint to Office 365 Development
aOS Canadian Tour - Toronto - From SharePoint to Office 365 DevelopmentaOS Canadian Tour - Toronto - From SharePoint to Office 365 Development
aOS Canadian Tour - Toronto - From SharePoint to Office 365 Development
 
Chris O'Brien - Best bits of Azure for Office 365/SharePoint developers
Chris O'Brien - Best bits of Azure for Office 365/SharePoint developersChris O'Brien - Best bits of Azure for Office 365/SharePoint developers
Chris O'Brien - Best bits of Azure for Office 365/SharePoint developers
 
Developer’s Independence Day: Introducing the SharePoint App Model
Developer’s Independence Day:Introducing the SharePoint App ModelDeveloper’s Independence Day:Introducing the SharePoint App Model
Developer’s Independence Day: Introducing the SharePoint App Model
 
ESPC Webinar - From SharePoint to Office 365 Development
ESPC Webinar - From SharePoint to Office 365 DevelopmentESPC Webinar - From SharePoint to Office 365 Development
ESPC Webinar - From SharePoint to Office 365 Development
 

More from SPS Paris

I6 - State of the art SharePoint PowerShell Nation 2017 - Spencer Harbar
I6 - State of the art SharePoint PowerShell Nation 2017 - Spencer HarbarI6 - State of the art SharePoint PowerShell Nation 2017 - Spencer Harbar
I6 - State of the art SharePoint PowerShell Nation 2017 - Spencer HarbarSPS Paris
 
B2 - The History of Content Security: Part 2 - Adam Levithan
B2 - The History of Content Security: Part 2 - Adam LevithanB2 - The History of Content Security: Part 2 - Adam Levithan
B2 - The History of Content Security: Part 2 - Adam LevithanSPS Paris
 
B4 - Teams, groups, SharePoint, Yammer - what should i use and when - Dux Ray...
B4 - Teams, groups, SharePoint, Yammer - what should i use and when - Dux Ray...B4 - Teams, groups, SharePoint, Yammer - what should i use and when - Dux Ray...
B4 - Teams, groups, SharePoint, Yammer - what should i use and when - Dux Ray...SPS Paris
 
B6 - An initiative to healthcare analytics with Office 365 & PowerBI - Thuan ...
B6 - An initiative to healthcare analytics with Office 365 & PowerBI - Thuan ...B6 - An initiative to healthcare analytics with Office 365 & PowerBI - Thuan ...
B6 - An initiative to healthcare analytics with Office 365 & PowerBI - Thuan ...SPS Paris
 
U2 - Déployer Microsoft Teams avec succès
U2 - Déployer Microsoft Teams avec succèsU2 - Déployer Microsoft Teams avec succès
U2 - Déployer Microsoft Teams avec succèsSPS Paris
 
B5 - Introduction à Microsoft Flow - Isabelle Van Campenhoudt, Sabrine chouk,...
B5 - Introduction à Microsoft Flow - Isabelle Van Campenhoudt, Sabrine chouk,...B5 - Introduction à Microsoft Flow - Isabelle Van Campenhoudt, Sabrine chouk,...
B5 - Introduction à Microsoft Flow - Isabelle Van Campenhoudt, Sabrine chouk,...SPS Paris
 
B3 - Building Humanitarian Applications with PowerApps, Flow and Office 365 -...
B3 - Building Humanitarian Applications with PowerApps, Flow and Office 365 -...B3 - Building Humanitarian Applications with PowerApps, Flow and Office 365 -...
B3 - Building Humanitarian Applications with PowerApps, Flow and Office 365 -...SPS Paris
 
U6 - Modern collaboration in teams and projects powered by Office 365 - Jaspe...
U6 - Modern collaboration in teams and projects powered by Office 365 - Jaspe...U6 - Modern collaboration in teams and projects powered by Office 365 - Jaspe...
U6 - Modern collaboration in teams and projects powered by Office 365 - Jaspe...SPS Paris
 
U5 Qu'est-ce que VOUS obtenez de SharePoint hybride ? - Vlad Catrinescu
U5   Qu'est-ce que VOUS obtenez de SharePoint hybride ? - Vlad CatrinescuU5   Qu'est-ce que VOUS obtenez de SharePoint hybride ? - Vlad Catrinescu
U5 Qu'est-ce que VOUS obtenez de SharePoint hybride ? - Vlad CatrinescuSPS Paris
 
U1 - Quoi de neuf avec le Microsoft Graph - Vincent Biret
U1 - Quoi de neuf avec le Microsoft Graph - Vincent BiretU1 - Quoi de neuf avec le Microsoft Graph - Vincent Biret
U1 - Quoi de neuf avec le Microsoft Graph - Vincent BiretSPS Paris
 
D6 - Les nouveautés SPFx - Olivier Carpentier
D6 - Les nouveautés SPFx - Olivier CarpentierD6 - Les nouveautés SPFx - Olivier Carpentier
D6 - Les nouveautés SPFx - Olivier CarpentierSPS Paris
 
D5 - Getting up to speed with type script development - Elio Struyf
D5 - Getting up to speed with type script development - Elio StruyfD5 - Getting up to speed with type script development - Elio Struyf
D5 - Getting up to speed with type script development - Elio StruyfSPS Paris
 
D3 - SharePoint framework – une nouvelle expérience de développement - Gaetan...
D3 - SharePoint framework – une nouvelle expérience de développement - Gaetan...D3 - SharePoint framework – une nouvelle expérience de développement - Gaetan...
D3 - SharePoint framework – une nouvelle expérience de développement - Gaetan...SPS Paris
 
D1 - Building Great Client-side Web Parts with SPFx, PnP-JS-Core, ReactJS and...
D1 - Building Great Client-side Web Parts with SPFx, PnP-JS-Core, ReactJS and...D1 - Building Great Client-side Web Parts with SPFx, PnP-JS-Core, ReactJS and...
D1 - Building Great Client-side Web Parts with SPFx, PnP-JS-Core, ReactJS and...SPS Paris
 
I4 - Méthodes d'audit et d'optimisation pour votre tenant Office 365 - Joelle...
I4 - Méthodes d'audit et d'optimisation pour votre tenant Office 365 - Joelle...I4 - Méthodes d'audit et d'optimisation pour votre tenant Office 365 - Joelle...
I4 - Méthodes d'audit et d'optimisation pour votre tenant Office 365 - Joelle...SPS Paris
 
I1 - Securing Office 365 and Microsoft Azure like a rockstar (or like a group...
I1 - Securing Office 365 and Microsoft Azure like a rockstar (or like a group...I1 - Securing Office 365 and Microsoft Azure like a rockstar (or like a group...
I1 - Securing Office 365 and Microsoft Azure like a rockstar (or like a group...SPS Paris
 
SPS Paris 2017 agenda
SPS Paris 2017 agendaSPS Paris 2017 agenda
SPS Paris 2017 agendaSPS Paris
 

More from SPS Paris (17)

I6 - State of the art SharePoint PowerShell Nation 2017 - Spencer Harbar
I6 - State of the art SharePoint PowerShell Nation 2017 - Spencer HarbarI6 - State of the art SharePoint PowerShell Nation 2017 - Spencer Harbar
I6 - State of the art SharePoint PowerShell Nation 2017 - Spencer Harbar
 
B2 - The History of Content Security: Part 2 - Adam Levithan
B2 - The History of Content Security: Part 2 - Adam LevithanB2 - The History of Content Security: Part 2 - Adam Levithan
B2 - The History of Content Security: Part 2 - Adam Levithan
 
B4 - Teams, groups, SharePoint, Yammer - what should i use and when - Dux Ray...
B4 - Teams, groups, SharePoint, Yammer - what should i use and when - Dux Ray...B4 - Teams, groups, SharePoint, Yammer - what should i use and when - Dux Ray...
B4 - Teams, groups, SharePoint, Yammer - what should i use and when - Dux Ray...
 
B6 - An initiative to healthcare analytics with Office 365 & PowerBI - Thuan ...
B6 - An initiative to healthcare analytics with Office 365 & PowerBI - Thuan ...B6 - An initiative to healthcare analytics with Office 365 & PowerBI - Thuan ...
B6 - An initiative to healthcare analytics with Office 365 & PowerBI - Thuan ...
 
U2 - Déployer Microsoft Teams avec succès
U2 - Déployer Microsoft Teams avec succèsU2 - Déployer Microsoft Teams avec succès
U2 - Déployer Microsoft Teams avec succès
 
B5 - Introduction à Microsoft Flow - Isabelle Van Campenhoudt, Sabrine chouk,...
B5 - Introduction à Microsoft Flow - Isabelle Van Campenhoudt, Sabrine chouk,...B5 - Introduction à Microsoft Flow - Isabelle Van Campenhoudt, Sabrine chouk,...
B5 - Introduction à Microsoft Flow - Isabelle Van Campenhoudt, Sabrine chouk,...
 
B3 - Building Humanitarian Applications with PowerApps, Flow and Office 365 -...
B3 - Building Humanitarian Applications with PowerApps, Flow and Office 365 -...B3 - Building Humanitarian Applications with PowerApps, Flow and Office 365 -...
B3 - Building Humanitarian Applications with PowerApps, Flow and Office 365 -...
 
U6 - Modern collaboration in teams and projects powered by Office 365 - Jaspe...
U6 - Modern collaboration in teams and projects powered by Office 365 - Jaspe...U6 - Modern collaboration in teams and projects powered by Office 365 - Jaspe...
U6 - Modern collaboration in teams and projects powered by Office 365 - Jaspe...
 
U5 Qu'est-ce que VOUS obtenez de SharePoint hybride ? - Vlad Catrinescu
U5   Qu'est-ce que VOUS obtenez de SharePoint hybride ? - Vlad CatrinescuU5   Qu'est-ce que VOUS obtenez de SharePoint hybride ? - Vlad Catrinescu
U5 Qu'est-ce que VOUS obtenez de SharePoint hybride ? - Vlad Catrinescu
 
U1 - Quoi de neuf avec le Microsoft Graph - Vincent Biret
U1 - Quoi de neuf avec le Microsoft Graph - Vincent BiretU1 - Quoi de neuf avec le Microsoft Graph - Vincent Biret
U1 - Quoi de neuf avec le Microsoft Graph - Vincent Biret
 
D6 - Les nouveautés SPFx - Olivier Carpentier
D6 - Les nouveautés SPFx - Olivier CarpentierD6 - Les nouveautés SPFx - Olivier Carpentier
D6 - Les nouveautés SPFx - Olivier Carpentier
 
D5 - Getting up to speed with type script development - Elio Struyf
D5 - Getting up to speed with type script development - Elio StruyfD5 - Getting up to speed with type script development - Elio Struyf
D5 - Getting up to speed with type script development - Elio Struyf
 
D3 - SharePoint framework – une nouvelle expérience de développement - Gaetan...
D3 - SharePoint framework – une nouvelle expérience de développement - Gaetan...D3 - SharePoint framework – une nouvelle expérience de développement - Gaetan...
D3 - SharePoint framework – une nouvelle expérience de développement - Gaetan...
 
D1 - Building Great Client-side Web Parts with SPFx, PnP-JS-Core, ReactJS and...
D1 - Building Great Client-side Web Parts with SPFx, PnP-JS-Core, ReactJS and...D1 - Building Great Client-side Web Parts with SPFx, PnP-JS-Core, ReactJS and...
D1 - Building Great Client-side Web Parts with SPFx, PnP-JS-Core, ReactJS and...
 
I4 - Méthodes d'audit et d'optimisation pour votre tenant Office 365 - Joelle...
I4 - Méthodes d'audit et d'optimisation pour votre tenant Office 365 - Joelle...I4 - Méthodes d'audit et d'optimisation pour votre tenant Office 365 - Joelle...
I4 - Méthodes d'audit et d'optimisation pour votre tenant Office 365 - Joelle...
 
I1 - Securing Office 365 and Microsoft Azure like a rockstar (or like a group...
I1 - Securing Office 365 and Microsoft Azure like a rockstar (or like a group...I1 - Securing Office 365 and Microsoft Azure like a rockstar (or like a group...
I1 - Securing Office 365 and Microsoft Azure like a rockstar (or like a group...
 
SPS Paris 2017 agenda
SPS Paris 2017 agendaSPS Paris 2017 agenda
SPS Paris 2017 agenda
 

Recently uploaded

Powerpoint exploring the locations used in television show Time Clash
Powerpoint exploring the locations used in television show Time ClashPowerpoint exploring the locations used in television show Time Clash
Powerpoint exploring the locations used in television show Time Clashcharlottematthew16
 
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...Integration and Automation in Practice: CI/CD in Mule Integration and Automat...
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...Patryk Bandurski
 
Search Engine Optimization SEO PDF for 2024.pdf
Search Engine Optimization SEO PDF for 2024.pdfSearch Engine Optimization SEO PDF for 2024.pdf
Search Engine Optimization SEO PDF for 2024.pdfRankYa
 
My Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 PresentationMy Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 PresentationRidwan Fadjar
 
Install Stable Diffusion in windows machine
Install Stable Diffusion in windows machineInstall Stable Diffusion in windows machine
Install Stable Diffusion in windows machinePadma Pradeep
 
SAP Build Work Zone - Overview L2-L3.pptx
SAP Build Work Zone - Overview L2-L3.pptxSAP Build Work Zone - Overview L2-L3.pptx
SAP Build Work Zone - Overview L2-L3.pptxNavinnSomaal
 
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
 
Developer Data Modeling Mistakes: From Postgres to NoSQL
Developer Data Modeling Mistakes: From Postgres to NoSQLDeveloper Data Modeling Mistakes: From Postgres to NoSQL
Developer Data Modeling Mistakes: From Postgres to NoSQLScyllaDB
 
DevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platformsDevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platformsSergiu Bodiu
 
Streamlining Python Development: A Guide to a Modern Project Setup
Streamlining Python Development: A Guide to a Modern Project SetupStreamlining Python Development: A Guide to a Modern Project Setup
Streamlining Python Development: A Guide to a Modern Project SetupFlorian Wilhelm
 
Story boards and shot lists for my a level piece
Story boards and shot lists for my a level pieceStory boards and shot lists for my a level piece
Story boards and shot lists for my a level piececharlottematthew16
 
Are Multi-Cloud and Serverless Good or Bad?
Are Multi-Cloud and Serverless Good or Bad?Are Multi-Cloud and Serverless Good or Bad?
Are Multi-Cloud and Serverless Good or Bad?Mattias Andersson
 
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmaticsKotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmaticscarlostorres15106
 
My INSURER PTE LTD - Insurtech Innovation Award 2024
My INSURER PTE LTD - Insurtech Innovation Award 2024My INSURER PTE LTD - Insurtech Innovation Award 2024
My INSURER PTE LTD - Insurtech Innovation Award 2024The Digital Insurer
 
AI as an Interface for Commercial Buildings
AI as an Interface for Commercial BuildingsAI as an Interface for Commercial Buildings
AI as an Interface for Commercial BuildingsMemoori
 
Commit 2024 - Secret Management made easy
Commit 2024 - Secret Management made easyCommit 2024 - Secret Management made easy
Commit 2024 - Secret Management made easyAlfredo García Lavilla
 
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks..."LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...Fwdays
 
Beyond Boundaries: Leveraging No-Code Solutions for Industry Innovation
Beyond Boundaries: Leveraging No-Code Solutions for Industry InnovationBeyond Boundaries: Leveraging No-Code Solutions for Industry Innovation
Beyond Boundaries: Leveraging No-Code Solutions for Industry InnovationSafe Software
 
Vertex AI Gemini Prompt Engineering Tips
Vertex AI Gemini Prompt Engineering TipsVertex AI Gemini Prompt Engineering Tips
Vertex AI Gemini Prompt Engineering TipsMiki Katsuragi
 
WordPress Websites for Engineers: Elevate Your Brand
WordPress Websites for Engineers: Elevate Your BrandWordPress Websites for Engineers: Elevate Your Brand
WordPress Websites for Engineers: Elevate Your Brandgvaughan
 

Recently uploaded (20)

Powerpoint exploring the locations used in television show Time Clash
Powerpoint exploring the locations used in television show Time ClashPowerpoint exploring the locations used in television show Time Clash
Powerpoint exploring the locations used in television show Time Clash
 
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...Integration and Automation in Practice: CI/CD in Mule Integration and Automat...
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...
 
Search Engine Optimization SEO PDF for 2024.pdf
Search Engine Optimization SEO PDF for 2024.pdfSearch Engine Optimization SEO PDF for 2024.pdf
Search Engine Optimization SEO PDF for 2024.pdf
 
My Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 PresentationMy Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 Presentation
 
Install Stable Diffusion in windows machine
Install Stable Diffusion in windows machineInstall Stable Diffusion in windows machine
Install Stable Diffusion in windows machine
 
SAP Build Work Zone - Overview L2-L3.pptx
SAP Build Work Zone - Overview L2-L3.pptxSAP Build Work Zone - Overview L2-L3.pptx
SAP Build Work Zone - Overview L2-L3.pptx
 
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
 
Developer Data Modeling Mistakes: From Postgres to NoSQL
Developer Data Modeling Mistakes: From Postgres to NoSQLDeveloper Data Modeling Mistakes: From Postgres to NoSQL
Developer Data Modeling Mistakes: From Postgres to NoSQL
 
DevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platformsDevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platforms
 
Streamlining Python Development: A Guide to a Modern Project Setup
Streamlining Python Development: A Guide to a Modern Project SetupStreamlining Python Development: A Guide to a Modern Project Setup
Streamlining Python Development: A Guide to a Modern Project Setup
 
Story boards and shot lists for my a level piece
Story boards and shot lists for my a level pieceStory boards and shot lists for my a level piece
Story boards and shot lists for my a level piece
 
Are Multi-Cloud and Serverless Good or Bad?
Are Multi-Cloud and Serverless Good or Bad?Are Multi-Cloud and Serverless Good or Bad?
Are Multi-Cloud and Serverless Good or Bad?
 
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmaticsKotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
 
My INSURER PTE LTD - Insurtech Innovation Award 2024
My INSURER PTE LTD - Insurtech Innovation Award 2024My INSURER PTE LTD - Insurtech Innovation Award 2024
My INSURER PTE LTD - Insurtech Innovation Award 2024
 
AI as an Interface for Commercial Buildings
AI as an Interface for Commercial BuildingsAI as an Interface for Commercial Buildings
AI as an Interface for Commercial Buildings
 
Commit 2024 - Secret Management made easy
Commit 2024 - Secret Management made easyCommit 2024 - Secret Management made easy
Commit 2024 - Secret Management made easy
 
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks..."LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...
 
Beyond Boundaries: Leveraging No-Code Solutions for Industry Innovation
Beyond Boundaries: Leveraging No-Code Solutions for Industry InnovationBeyond Boundaries: Leveraging No-Code Solutions for Industry Innovation
Beyond Boundaries: Leveraging No-Code Solutions for Industry Innovation
 
Vertex AI Gemini Prompt Engineering Tips
Vertex AI Gemini Prompt Engineering TipsVertex AI Gemini Prompt Engineering Tips
Vertex AI Gemini Prompt Engineering Tips
 
WordPress Websites for Engineers: Elevate Your Brand
WordPress Websites for Engineers: Elevate Your BrandWordPress Websites for Engineers: Elevate Your Brand
WordPress Websites for Engineers: Elevate Your Brand
 

D2 - Automate Custom Solutions Deployment on Office 365 and Azure - Paolo Pialorsi

  • 1. Automate Custom Solutions Deployment on Office 365 and Azure Paolo Pialorsi 14 octobre 2017 #SPSParis
  • 3.
  • 4. About me • Project Manager, Consultant, Trainer • About 50 Microsoft certification exams passed • MCSM – Charter SharePoint • MVP Office Servers and Services • SharePoint PnP Core Team Member • Focused on SharePoint and Office 365 since the beginning • Author of many books about XML, SOAP, .NET, LINQ, SharePoint, and Office 365 • Speaker at main IT conferences
  • 5. Agenda • Set the context of automated deployment • Authentication and Authorization • Microsoft Graph • Microsoft Azure Management API • SharePoint PnP Provisioning
  • 6. DEMO Let’s set the context: PnP Partner Pack Setup Wizard https://youtu.be/D98jqzPkfj0
  • 7. Goals of the sample project • Create SPO Site Collections • Generate on the fly an X.509 certificate • Configure Azure AD Application • Configure X.509 certificate for App-Only with SPO • Configure custom settings for the Application • Configure custom permissions to consume Microsoft Graph and SPO • Create an Azure Resource Group • Create an Azure Blob Storage account • Create an Azure App Service • Configure custom settings for the App Service • Build, package, and publish an ASP.NET Web Application • Build, package, and publish a bunch of Web Jobs
  • 9. Requirements • Demo application requires to be executed as local admin • To create the X.509 certificate • You need Tenant Global Admin account for the Office 365 • Valid Azure Subscription backing the Office 365 tenant • You need Admin account for target Azure Subscription
  • 10. AuthN & AuthZ • Two applications registered in the target tenant • One Azure AD multi-tenant native application • The main application, which manages the Azure AD resources • One Office 365 application • The one that corresponds to the PnP Partner Pack in our scenario • ADAL 3.x for AuthN & AuthZ logic
  • 11. DEMO Security Infrastructure and Applications Configuration
  • 13. Site Collection creation • We use PnP Core Library and Tenant class • From Microsoft.Online.SharePoint.TenantAdministration • Based on PnP extension methods • SiteExists • DeleteSiteCollectionFromRecycleBin • CreateSiteCollection • We use PnP Provisioning Engine to provision artifacts
  • 14. PnP Provisioning Engine • One of the most useful capabilities provided by PnP • Available in different flavors • .NET with PnP Core Library • PowerShell with PnP cmdlets • Typical use cases • PowerShell automation • Azure Web Jobs • Azure Functions • Back-end services • Etc.
  • 15. PnP Provisioning Engine: main capabilities • XML or Open XML (.PNP) based storage • Can eventually be used “just in memory” • You can extract a template from a live (model) site • You can apply a template to multiple sites • Delta handling of templates • We add or update, we do not delete/remove • Supports both SPO and SP2013/2016
  • 16. Main Features • SP2013, SP2016 and SPO • Delta templates • XML, JSON formatter • Site Columns • Content Types • Lists/Libraries Instances • Features (Site or Web) • Custom Actions (Site or Web) • Files/Pages (Wiki, WebPart) • Taxonomies • Composed Look • Site Policies • Web Settings • Regional Settings • UI Languages • Resource Files • Audit Settings • Workflows (SPD only) • Search Settings • Publishing (including Page Layouts) • Navigation Settings • Modern Pages • Client-side Web Parts • Client-side Extensions
  • 17. DEMO SPO Site Collection creation and Artifacts provisioning
  • 19. Azure AD Application Registration • We register the application with a custom manifest file • Including custom permissions for other APIs • We create on the fly the shared secret • We configure all the URLs • POST against Graph beta endpoint • https://graph.microsoft.com/beta/applications • Response will be the just created application
  • 22. Azure Management API • Allows managing resources on Azure • REST based API • https://management.azure.com/ • Using Azure AD and OAuth 2.0 for authorization • There are endpoints for almost everything  … • You need a target subscription • And you can browse for them through API • You need to register to manage specific resources • Can be done still using the API … • There are different versions, depending on the target endpoint
  • 23. Creating a Resource Group • Make a PUT request against • subscriptions/{subscriptionId}/resourcegroups/{resourceGroupName} • ?api-version=2016-09-01 • You’ll get back a JSON object • Describes the Resource Group • You need a service plan, too • Make a PUT request against • subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/provi ders/Microsoft.Web/serverfarms/{servicePlanName} • ?api-version=2015-08-01
  • 24. Creating a Blob Storage Account • Make a PUT request against • subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/provi ders/Microsoft.Storage/storageAccounts/{storageAccountName.ToLower()} • ?api-version=2016-12-01 • When you create a Storage Account • Wait for the account to be ready • Make GET request and wait for «Succeded» status • Once it’s ready, get the storage keys • Make a POST request for • subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Micros oft.Storage/storageAccounts/{storageAccountName.ToLower()}/listKeys • As usual, you’ll get back the keys in a JSON object
  • 25. DEMO Creating the Blob Storage Account
  • 26. Creating an Azure App Service (1/2) • Make a PUT request against • subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/provi ders/Microsoft.Web/sites/{appServiceName} • ?api-version=2016-08-01 • Application Settings are an untyped array of JSON objects • { “Name”: “SettingName”, “Value”: “Value” } • To upload X.509 certificate, make a PUT request against • subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/provi ders/Microsoft.Web/certificates/{appServiceName}-pfx • ?api-version=2016-03-01 • Provide certificate PFX blob + password
  • 27. Creating an Azure App Service (2/2) • Get a Publishing Profile settings file • subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/provi ders/Microsoft.Web/sites/{appServiceName}/publishxml • ?api-version=2016-08-01 • You’ll get back the XML publishing settings file • You can parse it for settings
  • 28. DEMO Creating the Azure App Service
  • 29. Build, Package, and Deploy Web Site • We used PowerShell from .NET + MSBuild • Hidden background running console • The Visual Studio version makes the difference • Because MSBuild path changes • Then we run MSBUILD /p:Configuration=Release /p:OutputPath="$tempPath" /p:VisualStudioVersion="$vsVersion" /p:PublishSettingsFile="$PublishingSettingsPath" /p:DeployOnBuild=true
  • 30. Build, Package, and Deploy Web Jobs • We used PowerShell from .NET + MSBuild • Hidden background running console • The Visual Studio version makes the difference (as like as before) • Because MSBuild path changes • Then we create a ZIP file with the build output • And we upload the ZIP toward SCM of the App Service • https://{appServiceName}.scm.azurewebsites.net/api/zip/site/wwwroot/App _Data/jobs/{jobType.ToString().ToLower()}/{jobName}/ • Basic Authentication with publishing profile settings credentials
  • 31. DEMO Build, Package, and Deploy on Azure
  • 32. Useful Links • https://github.com/SharePoint/PnP-Partner-Pack • https://www.youtube.com/watch?v=D98jqzPkfj0 • https://docs.microsoft.com/en-us/rest/api/apimanagement/ • https://msdn.microsoft.com/en-us/pnp_articles/pnp-provisioning- engine-and-the-core-library • https://msdn.microsoft.com/en-us/pnp_articles/introducing-the- pnp-provisioning-engine
  • 33. Q&A
  • 35. Thank you, for your for #SPSParis