Download presentation
Presentation is loading. Please wait.
Published byVernon Barnett Modified over 5 years ago
1
Real-life Solutions with Microsoft Azure, Microsoft 365, and the Microsoft Graph
Paolo Pialorsi – PiaSys.com
2
Thank you Sponsors #ThriveITconf
Silver Evening event sponsor Material Media
3
About me Project Manager, Consultant, Trainer
PiaSys.com based in the USA and in Italy 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 Author of many books about XML, SOAP, .NET, LINQ, SharePoint, and Office 365 Speaker at main IT conferences worldwide Follow -
4
Topics Introducing SharePoint look book / provisioning service
Architecture of the solution Challenges and choices Inside the solution (source code and infrastructure)
5
SharePoint look book / provisioning service
It’s “PnP Provisioning as a Service” AAD multi-tenant application Built on Microsoft Azure Azure Web App Azure Web Job Azure SQL Database Azure Blob Storage Azure Key Vault Azure Function Application Insights GitHub as the templates repository It is open source!
6
Demo Lap around the SharePoint look book / provisioning service
7
Architectural schema Azure Active Directory Job/Function
Storage Queue Job/Function Tenant Admin or Site Collection Owner Create/Update Main Site Collections with PnP Templates Store Refresh Token (with expire policy) Access Token + Refresh Token OAuth 2.0 Flow Read Refresh Token Azure Active Directory Azure Key Vault Main Site Collections (Modern Sites) Recycle the Refresh Token (with expire policy) Get new AccessToken through RefreshToken
8
Microsoft SharePoint Server 2013
Challenges Multiple environments Templates Repository Global and Templates Settings High Availability Asynchronous Processing Reusable Components (CSOM and PnP) Security: Authentication and Authorization OAuth Security Layer Monitoring © 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.
9
Multiple environments
Microsoft SharePoint Server 2013 Multiple environments Functional requirements: Support for DEV, TEST, PROD environments Different versions of the engine across different environments Same set of templates/packages Different access rules Support for both SharePoint look book and SharePoint provisioning service Technical solution: Microsoft Azure deployment slots for web apps/jobs/functions Dedicated Azure infrastructure for every single environment Multiple AAD app registrations Unique content repository with “settings” for access rules Maintainable list of allowed tenants for DEV, TEST Shared security storage repository (Azure Key Vault) with different keys © 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.
10
Microsoft SharePoint Server 2013
Templates repository Functional requirements: Something “easy” to update and manage Something “accessible” to MS people Something “accessible” to community members Version and history tracking Two main clusters of templates/packages: Tenant-wide and Site Collection Technical solution: Dedicated GitHub repository Folders for clusters (tenant, site) Replicated on SQL Azure Database + Azure Blob Storage Account Synchronization job running on schedule (or manually triggered) Leveraging GitHub APIs © 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
System and template settings
Functional requirements: Being able to configure different settings for system and templates/packages Easy to configure and maintain No need to access Azure for the admin users Content based on “open” syntax Technical solution: System configuration files: categories.json, platforms.json, and tenants.json Template configuration files: settings.json Replicated on SQL Azure Database + Azure Blob Storage Account Synchronization job running on schedule (or manually triggered) Leveraging GitHub APIs
12
Highly scalable solution
Functional requirements: Support for thousands of tenants Support for thousands of provisioning actions every day Capability to “resume” failed provisioning actions, if needed History of failed provisioning actions Resilient to throttling Technical solution: Azure Blob Storage Queue Azure Web Job queue-triggered Configured for 1 action retry only + poison queue for analysis and eventually retries Out of the box web-based UI to monitor running actions and history
13
Why a WebJob? Easy support for .NET Classic
CSOM is not available yet for .NET Core As such, PnP Sites Core and PnP Provisioning Engine are not available for .NET Core, either Azure Functions v2 target .NET Core and PowerShell Core only We already have web applications So we can reuse exactly the same resources (app service, app service plan, deployment slots) Easy to monitor through native UI of Azure WebJobs Live monitoring History of events
14
Authentication and Authorization
Microsoft SharePoint Server 2013 Authentication and Authorization Functional requirements: Available to Tenant Admins as well as to Site Collection Admins Provision sites and artifacts on behalf of the requesting user Technical solution: Two different AAD applications (1 for Tenant Admins, 1 for Site Collection Admins) Two different web applications (2 virtual directories in Azure Web App) OAuth flow with Authorization Code Access Token and Refresh Token via Authorization Code Refresh Token stored in secure and highly available cache: Azure Key Vault © 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.
15
Monitoring Functional requirements: Technical solution:
We need to monitor numbers and performance (stats) We need to monitor exceptions (strength) Technical solution: Anonymized Stats on Azure SQL Database (packages provisioned and exceptions count) Azure Application Insights (number of provisionings, exceptions with stack trace) PnP Correlation ID to keep track of items and provisioning flows
16
Demo Let’s dig into the solution
(
17
Technologies involved
Azure Active Directory Apps registration OAuth 2.0 Azure SQL Database Data storage Azure Storage Account Blob Storage Queue Azure App Service WebApps WebJobs Azure Key Vault Secure store for keys and passwords Azure Functions Reporting Azure Application Insights Monitoring and tracking .NET Core 2.2 Angular front-end .NET Core REST API in the back-end .NET Framework 4.7.1 ASP.NET MVC Entity Framework 6 – Code First + Migrations GitHub Repository for content and pages Microsoft Graph API for provisioning SharePoint Online Microsoft 365 The target platform SharePoint PnP PnP Sites Core Provisioning Service
18
Q&A (If time permits …)
19
THANK YOU
Similar presentations
© 2025 SlidePlayer.com Inc.
All rights reserved.