Embedding Power BI in your Web Application? Pritesh Ostwal Embedding Power BI in your Web Application?
World of Data Journalism http://projects.fivethirtyeight.com/complete-history-of-the-nba/#cavaliers
Original Agenda of Session Embedding Power BI Report in your Web Application Public Power BI Reports Embedding Power BI Portal Dashboard Azure Embedded Power BI Service Web Forms Traditional .NET Java Script using .NET Core
Revised Agenda Talk about changes in Power BI Landscape Power BI Premium and Power BI Report Server Embedding Power BI Report Server – PBIX Report Web Forms Traditional .NET
Evolving Power BI Landscape What’s New
Power BI Premium: A Dedicated Instance of the Power BI Service Power BI Premium is an add-on for the Power BI service. Power BI Premium is basically your own private server running the Power BI architecture in Azure To understand why that’s important, it helps to understand the existing architecture for the Power BI. Currently, Power BI runs on clusters of machines that all of the Power BI customers use. Because of this, Power BI places restriction on how much capacity and resources that an individual can use so that no single user has a really negative experience. With Power BI Premium, all the capacity is yours. Because the capacity of Power BI Premium services belong to you, this allows many of the restrictions and limitations of the Power BI service to be lifted giving you greater control over how resources dedicated to your Power BI service are managed. Customer 1 Customer 2 Customers 1, 2, 3, … n Customer 3
The Capacity of Power BI Premium is ALL YOURS Dedicated Power BI resources for you No more per user licensing for content consumers Read access to a larger group of users Because Power BI Premium is basically your own private Power BI server, you have flexibility over how those resources are used. The resources are dedicated to your organization, so this allows you to deliver Power BI content to your organization without having to license every single, individual users. Also, since the resources are dedicated to your organization, this removes the requirement to license every single user that needs access to your Power BI content. This enabled read access to much larger groups of users than before. So with Power BI Premium, you can roll out Power BI content to as many users as the capacity you’ve purchased can handle.
Your Organization P P P P Power BI Premium Power BI developers Power BI consumers Power BI Data Sources Reports Dashboards P P P Premium Power BI developers Reports Dashboards Now lets talk about an example: Say you have a requirement to distribute Power BI reports and dashboards to your entire organization or at least to a large number of members of your organization. Prior to Power BI Premium, you would need to purchase a Power BI Pro license for the your development team that would be building the Power BI reports and dashboards, and you would also need to purchase Pro licenses for the consumers of the content. This could make life difficult if you have a large number of users wishing to access the Power BI content. Per user licensing for 30,000 users, for example, would very expensive and difficult to manage. With Power BI Premium, you now have the flexibility to deploy your Power BI content to your dedicated capacity. This would allow the members of your organization to access the Power BI content without needing a Pro license. Your developers would still be licensed for Power BI Pro, as they’re the users that are creating, sharing, and administrating Power BI in your organization, but the consumers of the content would no longer require a Pro license. Because your Power BI content is deployed to your dedicated capacity via Power BI Premium, this means we can also scale up when we need to by purchasing more capacity. Another example would be if you had users of a SharePointOnline site accessing an embedded Power BI report. The users log in to the SharePointOnline site, view the Power BI report, P
Power BI Apps (in preview) Package, deploy, manage, share reports & dashboards Group Workspaces Publish Apps to your organization Easily update and publish updates to your Apps Apps will be preferred method of distributing Premium content to Free users w/o per user licensing! :D REPEAT End users need Power BI Pro licenses to consume these apps. But if the app content resides in Power BI Premium capacity, end users can access the content without requiring a Power BI Pro license. App Workspaces Power BI Apps let you bundle up your Power BI content, data sets, reports, dashboards, and then share that content within your organization. Group workspaces will no longer be known as Group Workspaces. They’ll be known as App Workspaces. App Workspaces will be where we publish our Power BI content that we will then bundle up into a Power BI App. So the App Workspace becomes the container for all the content that will be in our App. So the Apps become a way for us to publish content to our entire organization. We can control the members of the group workspace to control who can edit the App, but with the Apps we can control which users can have access to the App. And just to clarify, Apps are not ONLY a Premium feature. App Workspaces are different than Group Workspaces: Creating app workspaces will not create corresponding entities in O365 like group workspaces do today. So you can create any number of app workspaces without worrying about different O365 groups being created behind the scenes. (You can still use an O365 group’s OneDrive for Business to store your files.) Also, today you can add only individuals to the members and admin lists. In the next iteration you will be able to add multiple AD security groups or modern groups to these lists for easier management. * Content Packs are being deprecated, so start using Apps!
Cost Calculator With Power BI Premium you can distribute all your BI apps to users throughout your organization without requiring per-user licensing. https://powerbi.microsoft.com/en-us/calculator/
Power BI Portal – Changes https://App.powerbi.com Power BI Portal Samples https://github.com/Microsoft/PowerBI-Csharp C:\powerbi\NC\PowerBI-Developer-Samples-master\PowerBI.com Integrate\integrate-dashboard-web-app
Power BI Portfolio Today Future Power BI Desktop Power BI Free* 10/25/2017 Power BI Portfolio Today Future Power BI Desktop Authoring and exploration Connect to 70+ sources Data prep and mashup Report creation and exploration No changes Power BI Free* Personal use Smaller capacity limits and data refresh rates Access only to select data sources Dashboard sharing limitations Performance equivalent to Pro Access to all data sources Single user - no dashboard sharing, distribution, or collaboration Power BI service Power BI Pro Self-service and collaboration Larger capacity and data refresh rates Access to all data sources Full dashboard sharing (P2P), report publishing and collaboration No changes Power BI Premium Capacity & performance Increased capacity limits, performance enhancements and enables distribution of content without requiring per user licensing On-premises report distribution *Starting June 1, 2017, existing active users of Power BI Free in the last 12 months dating back from May 2, 2017, will receive an extended Power BI Pro trial for 12 months © 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.
Power BI Portfolio Power BI Desktop Power BI Free Power BI Pro Free report authoring and ad-hoc data exploration Power BI Free Quick, easy-to-use self-service analytics for personal use Power BI Pro Quick, easy-to-use self-service analytics for users requiring collaboration, dashboard sharing, ad hoc analysis, and report publishing Licensed by user Power BI Premium An add-on to Power BI Pro for projects requiring large scale data, demanding performance, and the ability to distribute content without requiring per user licensing. Includes PBI Embedded Licensed by capacity Licensed by user Licensed by user
Power BI Embedded Power BI Embedded is now part of Power BI Premium Power BI Embedded allows you to integrate custom applications with Power BI assets Predictable Pricing Scalable performance for your cloud app solutions Power BI Embedded is now included as part of Power BI Premium. If you are familiar with the Power BI Embedded service in Azure, it allowed a customer to deploy Power BI reports to the Power BI Embedded service and then integrate the Power BI reports with their custom apps without having to license the users accessing the apps. The pricing for Power BI embedded was based on the number of sessions, which made it difficult to predict costs. Well Power BI Embedded is now included with Power BI Premium, giving you much more predictable pricing and easily scalable performance for your cloud app solutions. The embedded functionality of Power BI Premium also expands the reach of your data by allowing you to deliver your Power BI reports and analytics to the users of your apps.
Power BI for Developers* </> Embed Power BI experiences directly into your public facing websites and blogs Extend Power BI and your reach with organizational content packs and custom visuals Integrate user-defined Power BI experiences into your app *This is for Power BI embedded. More customizations are available with full Power BI
Power BI Premium Embedded Analytics 10/25/2017 4:10 PM Power BI Premium Embedded Analytics What is Power BI embedded analytics? Power BI Premium converges Power BI Embedded with the Power BI service Unifies a platform for both SaaS and PaaS Delivers one API surface and a consistent set of capabilities. Licensing Sold based on capacity EM3 node for embedded deployment at a lower price per month Purchased via Office portal at GA KEY POINTS: Power BI Premium advances how Power BI reports are embedded in apps created by customers, partners and the broad developer community. As part of the new offering we are converging Power BI Embedded with the Power BI service. Our goal is to provide a unified platform for both SaaS and PaaS that delivers one API surface and a consistent set of capabilities. Moving forward we encourage those interested in delivering apps with embedded Power BI reports to start with Power BI Pro for development and testing, then harness Power BI Premium as the path to deployment – the offering’s capacity-based construct applies to embedded scenarios as well to help provide a predictable licensing model based on the app’s requirements. Power BI Embedded will continue to be available for existing apps. © Microsoft Corporation. All rights reserved. MICROSOFT MAKES NO WARRANTIES, EXPRESS, IMPLIED OR STATUTORY, AS TO THE INFORMATION IN THIS PRESENTATION.
Power BI Embedded Transition 10/25/2017 4:10 PM Power BI Embedded Transition Metered on volume of sessions Sold based on capacity Today (Power BI Embedded) Future (Power BI Premium) EM3 node for embedded deployment at a lower price per month Billed based on session volume usage KEY POINTS: Power BI Embedded helps developers and customers bring data to life inside their own apps In the past, Power BI Embedded was metered on the volume of sessions and billed on consumption Power BI Premium advances how Power BI reports are embedded in apps created by customers, partners and the broad developer community. As part of the new offering we are converging Power BI Embedded with the Power BI service. Our goal is to provide a unified platform for both SaaS and PaaS that delivers one API surface and a consistent set of capabilities. Power BI Premium is sold based on virtual core capacity The EM node series supports embedded delivery only, at a lower entry price than the P node series Purchased in Azure Purchased via Office portal at GA © Microsoft Corporation. All rights reserved. MICROSOFT MAKES NO WARRANTIES, EXPRESS, IMPLIED OR STATUTORY, AS TO THE INFORMATION IN THIS PRESENTATION.
Embed Power BI Report Server Report
Power BI Report Server - PBIX Reports Embed in App Embed using iFrame Demo C:\powerbi\NC\CoreAppPowerBI
Simple Command Report Path ?rs:Embed=true Implement Custom Authentication provider
Kerberos Constrainted validation on PowerBI Report Server https://theblobfarm.wordpress.com/2017/05/24/configuring-power-bi-report-server-preview-for-kerberos-constrained-delegation/ Thanks Kevin Feasal
Embed Power BI Portal Report
Get Application Client ID https://dev.powerbi.com/apps
Oauth 2.0 Authorization Flow Login Needed to Get Authorization Code
Future Authentication https://powerbi.microsoft.com/en-us/documentation/powerbi-developer-migrate-from-powerbi-embedded/
Old - Embedded Story (Time permitting) https://pixabay.com/en/login-password-log-sign-on-turn-on-1203603/
Resources https://azure.microsoft.com/en-us/pricing/details/data-transfers/ https://azure.microsoft.com/en-us/documentation/articles/data-management-azure-sql-database-and-sql-server-iaas/ https://msdn.microsoft.com/en-us/library/mt652547.aspx?f=255&MSPPError=-2147217396 http://www.sqlsaturday.com/462/Speakers/Details.aspx?spid=1850 www.sqlchick.com http://www.sqlchick.com/entries/2015/9/4/direct-connect-options-in-power-bi-for-live-querying-of-a-data-source https://azure.microsoft.com/en-us/documentation/articles/data-management-azure-sql-database-and-sql-server-iaas/ https://msdn.microsoft.com/en-us/library/ms170438.aspx https://azure.microsoft.com/en-us/documentation/articles/sql-database-performance-guidance/ https://azure.microsoft.com/en-us/documentation/articles/power-bi-embedded-what-is-power-bi-embedded/ https://azure.microsoft.com/en-us/documentation/articles/power-bi-embedded-app-token-flow/ https://azure.microsoft.com/en-us/blog/transactional-replication-to-azure-sql-db/ https://azure.microsoft.com/en-us/documentation/articles/sql-database-cloud-migrate/ https://msdn.microsoft.com/en-us/library/mt589530.aspx https://github.com/mrsheepuk/ASPNETSelfCreatedTokenAuthExample/blob/master/src/TokenAuthExampleWebApplication/TokenAuthOptions.cs http://stackoverflow.com/questions/36694170/power-bi-embedded-from-php-obtain-an-azure-authentication-token-oauth
Thank You Contact: pritesho@gmail.com Twitter: PriteshOstwalGA https://pixabay.com/en/analytics-business-resources-wordle-1368293/
Embed Power BI Azure Service Report (Soon Deprecated)
Power BI Embedded Power BI Embedded is an Azure service that enables application developers to add interactive Power BI Reports into On-Prem and external applications. Organization can continue to follow their own user authentication for the application and embed Power BI seamlessly using Azure token based authentication and authorization. Service is provisioned through Azure ARM APIs.
Demo – Provisioning using Azure Resource Manager Cmdlets C:\powerbi\NC\power-bi-embedded-integrate-report-into-web-app-master
Azure Portal – Power BI Service https://portal.azure.com
Documentation https://docs.microsoft.com/en-us/azure/power-bi-embedded/ PowerShell – ARM Commandlets REST – Call to service .NET - SDK
App Tokens Power BI Embedded supports 3 flavors of app tokens each with separate requirements. Provision: Used to manage root of workspace collection Dev: Used to make scoped calls into a workspace within collection Embed: Read only access to report to embed All tokens are HMAC (Hash-based Message Authentication Code) signed JSON Web Tokens. The tokens are signed with the access key from your Azure Power BI Embedded workspace collection.
Access Key WARNING - Never expose your access keys client side in your application. If your access key is compromised a malicious user can take over control of your workspace collection. Access keys can be re-generated for your workspace collection within the Azure portal.
Token Asserts a Claim
Tokens – Sign with API Access Keys
User Requests to view a Report
Token is validated with an API access key
Power BI Embedded sends a report to user
Launch Demo on Power BI - JavaScript Azure: create a workspace collection and a dataset, note down access keys and workspace ID credentials. https://github.com/Azure-Samples/power-bi-embedded-integrate-report-into-web-app PowerBI Embedded C# CLI (mvc sample): Create a workspace within the workspace collection using noted credentials from azure and import a pbix file into the newly created workspace, this generates an import ID which is really your report ID. https://github.com/Microsoft/PowerBI-Cli PowerBI Master-CLI (because one CLI program just isnt enough): Install node and NPM and then install the powerBI-Master-CLI project from github using npm. Use the create-embed-token command along with the workspace collection credentials, you will need the report ID generated in the other cli program. This generates an access token for the report. https://github.com/Microsoft/PowerBI-JavaScript C:\powerbi\NC\PowerBI-JavaScript-master powerbi create-embed-token -c "TestWC" -k "ii0RHhC/jLm77o7EFRlpvy0MarBAO4r8nBONd2MO8bHkBTCGI3xFM5MqTFkmO5gXOXV3ZDxb2wNXwXbbhv6oiA==" -w "fb629877-453c-4db8-9dec-51a6ab76ac97" -r "93fce0da-1834-4d77-a0f5-ffd0e8a939ca" http://azure-samples.github.io/powerbi-angular-client/#/scenario1
Authenticating reports base64 encoded string of HMAC (the signature) with SHA256 algorithm { "typ":"JWT", "alg":"HS256" } { "wid":"{workspace id}", "rid":"{report id}", "wcn":"{workspace collection name}", "iss":"PowerBISDK", "ver":"0.2.0", "aud":"https://analysis.windows.net/powerbi/api", “type”: provision | dev | embed "nbf":{start time of token expiration}, "exp":{end time of token expiration} }
Angular – Quick Plnkr http://plnkr.co/edit/tQc1DF?p=info
Row Level Security