Power BI - Difference between Publish to Web and Website (Portal) - powerbi

I want to know the difference in the following 2 options in Power BI Service -> File -> Embed Report:
Website or Portal
Publish to Web (public)
My observation was that you can use Report Filters in Website or Portal option but Report Filters are disabled in Publish to Web option.
Can someone please answer my following queries:
When should we use each of the 2 options?
Which option needs Power BI Embedded Tokens and Capacity to use in production environment?
Can users use Filtering on the report in both the 2 options?
Thanks!
Gagan

Please find the answer below:
1.Difference between Publish to Web and Publish to Website
Publish to Web:
Report will be public
No need to Login (Anyone with the link can view the report)
With the Power BI Publish to web option :
a. You can easily embed interactive Power BI content in blog posts, websites, emails, or social media.
b. You can also easily edit, update, refresh or stop sharing your published visuals.
Publish to Website:
Report will be private
Need to Login first (Unauthorized personal can’t be able to view the report)
With the Power BI Publish to website option :
a. User who has access to that workspace can see the report.
b. User who is member of your organization can see report from that workspace.
2.You don't need the Tokens and Capacity to publish the reports to web or website.
3.Filtering with Publish to Website and Publish to Web
With Publish to Website you can use filtering.
With Publish to Web to use the filtering on the report, you need to have the Power BI Pro License.

Publish to web does not allow display of the filter pane and tabs - at least as for now according to the Microsoft - see this link and the section called "Considerations and Limitations": https://learn.microsoft.com/en-us/power-bi/create-reports/power-bi-report-filter. So if you have filters in the filter pane you would have to move them over to the main content of the report - not ideal if users are already used to using filters on the filter pane.
Publish to website or portal will just give you an iframe with a private URL and when users load the web page they will have to authenticate.
In order to embed and authenticate on behalf of all the users you will need a token. One way to do this is using principal service account - this way you won't be supplying any user account credentials. This workflow is well documented and you can even download a test application with working code where you would need to supply your values such as workspace id, report id, tenant id, application id and finally application secret. Get started with token authentication using this link: https://learn.microsoft.com/en-us/power-bi/developer/embedded/embed-tokens. Double check token expire date and set it appropriately.

Related

Sharing of Power BI work to external users

I created a dashboard in Power BI and would like to share the work with my friends through my novypro profile. But in novypro, it asked me for the embedded url. As I am currently using my school mail id for all my Power BI works, I couldn't see the publish to web option in order to get the embedded URL.
In the other links I tried, I learned that I have to check with the tenant option under Admin Portal. But under Admin Portal I couldn't see anything like that and I have attached the image below.
Is there any other way to send our report to the external users?
The reason you can't see any other tenant settings in the Admin portal is that you are not an Admin. You need to ask an admin to allow you to publish to the web.
The Power BI admin portal has settings that control who can publish to
the web. Work with your organization's Power BI administrator to
change the Publish to web tenant settings in the admin portal.
For smaller organizations or individuals who signed up for Power BI,
you may not have a Power BI administrator yet. Follow our process for
admin takeover. Once you have a Power BI administrator, they can
enable creating embed codes for you.
Established organizations usually already have a Power BI
administrator. People in any of the following roles can act as a Power
BI administrator:
Global administrators Users with the Power BI service admin role in
Azure Active Directory You need to find one of these people in your
organization and ask them to update the Publish to web tenant settings
in the admin portal.
https://learn.microsoft.com/en-us/power-bi/collaborate-share/service-publish-to-web#find-your-power-bi-administrator
Alternatively you can sign up for your own Developer Tenant, which includes E5 so you can use Power BI there and have full control.

Unable to validate salesforce credentials in power bi service

I am creating a power bi report with multiple tables sources from web and salesforce. when I publish the report and set schedule refresh, I was asked to update data source credentials. I have updated credentials for web data sources. but when i update credentials for salesforce, its giving me an error
I am able to validate the same credentials in power bi desktop and it works without any issue. but only on power bi service, I am getting this error. Not sure what could be the issue here. please help.
Go to Salesforce, find the connecting user and at the bottom there should be login history. Do you see any errors there? Maybe "Restricted IP" (ask your SF admin to check this user's profile & allowed login IP ranges), maybe "Security token required" (ask sf admin, there's something you need to append at the end of password)...
If your app uses "connected app" (set of OAuth2 keys) there might be some config in SF needed like "all users can self authorise" or add your server to list of allowed callback urls...

How to access power BI Service in multi tenant scenario

I have my own Power BI Pro account from my company powerbi#mycompany.com.
My client has given me access to his tenant as an external guest user with one of it's Power BI Pro licenses.
The question is: how do I access the Power BI Service of my client? When I connect to the service I can't find any possible way to switch then tenant from one to another with the same account (like you can on the Azure portal).
If you are a guest in some host's tenant (domain) then you need their CTID to log in to that host instance. The CTID is the tenant identifier of the host's Azure Active Directory. They can look this up for you in the Azure Portal or use the shortcut below to get it from their PowerBI service. If the host can't find their CTID for some reason you can look it up here: Tenant ID Lookup by Domain. Once you have the tenant id (CTID), simply provide it to the url PowerBI CTID Url :
https://app.powerbi.com/home?ctid=<host's tenant id (ctid)>
and then this will sign you in to their (the Host's) PowerBI.
Click the ? and go to About PowerBI to bring up the window shown below.
For PowerBI Desktop, you need to sign out and then sign back in again. When signing in, click the Sign in Options where you can then elect to sign in to an organization. Provide the Host's domain name and continue the sign in process. Now you will be signed in to PowerBI Desktop and PowerBI service - ready to build, publish and view reports in your Host's organization.
I hope that all makes sense! :)
This is all explained here: https://learn.microsoft.com/en-us/power-bi/guidance/whitepaper-azure-b2b-power-bi#enabling-external-users-to-edit-and-manage-content-within-power-bi
Including the url you need to use to access your customer’s tenant. And you don’t need your customer to assign a pro license if you have one in your home tenant.
It would be even better if you could switch tenants without the URL. Someone posted that idea on Power BI's site and you can upvote it.
https://ideas.powerbi.com/ideas/idea/?ideaid=eb9194f1-ceea-41a7-9761-76e913c58ed5
Just found out that you can actually redirect someone directly to the App that you are creating in the workspace. This can be quite handy if you want to redirect someone directly to the report app instead of the home page.
Go to "update App"
Then go to the permissions Tab
Copy and PAste the link from the app
The link to the app contains the tenant ID
Hope that works! :)

How to apply filter in PowerBI WebApp

I have created one WebApp which is hosted on Azure IIS. I am calling PowerBI reports & Dashboards and rending them into my WebApp.
I need to apply following functionality and I am unable to find solution online.
Users can filter the data from filters available in PowerBI from Web Application.
Row Level Security can be applied when we call PowerBI reports and render into web page.
It is not clear what kind of URL you are using to embed the reports. Essentially, there are 3 URLs that you can use to display a report in your web app:
The URL taken from your browser's address bar. In this case the use of you web app needs to be logged in Power BI service and to be granted with rights to see this report. One of the disadvantages are that in your web app you will not see the report only, but the whole Power BI page (including the navigation menu at the left).
The URL taken when you share this report publicly using Publish to web. In this case only the report will be embedded in your web app (menus will not be visible), but you can't do that for reports over RLS enabled datasets (because RLS requires user's identity, while in this case the access is anonymous).
The embedUrl of the report (or tile, or dashboard) that you can obtain using the Power BI REST API. It is usually used when you have a dedicated capacity assigned to this workspace (Power BI Embedded). In this case there are two scenarios - "User own data" and "App own data". In the first one each of your users must have their own account and rights to see the report (as in #1). In the later scenario, you use one shared "master account" in your web app to get access to the report and there is no need for your users to authenticate themselves. You can take a looks at the samples to see how it works. Essentially, you need the JavaScript Power BI client, one HTML page with a and some JavaScript code to load the report in the (check powerbi.js, ReportLoader.html and ReportLoader.js files from the samples. A good place to start is this article - Tutorial: Embed a Power BI report, dashboard, or tile into an application for your customers.
To apply filters to the embedded report, you can use one of the recently new features (if I'm correct, it is available since August 2018) and add the filters in the URL. I'm not sure will this work in case #2, but I will not recommend using it anyway.
RLS is not possible with case #2. In cases #1 and #3 RLS will simply work. With #3 if you use "app own data" scenario, for the RLS to work you need to pass user's name and role when you generate the token to access the report (because otherwise for all user's requests Power BI will always see the identity of your "master account" and RLS will not make any sense). This is specified with EffectiveIdentity parameter.
You also attached "power-bi-report-server" to your question, but at the same time you are saying that your web app is running in Azure. If after all your reports are on Power BI Report Server on premise, then you can embed reports by passing rs_embed=true parameter at report's URL too. In this case to make RLS work you just need to make sure that your users are authenticated with their own accounts. Passing filters in the URL works with the recent versions too (it was broken in March 2018, but fixed in 15.0.2.389).

Creating a login for PowerBI dashboard?

I need to create a dashboard but I don't want it to be seen by everyone and I need to create a login form for that.
Option 1 : I can create a asp.net page for login and after successful login I can show the dashboard.
Option 2: Which I want to know that- Does PowerBI contains some login kind of functionality so that I don't need to upload a .net web page !!
Can someone provide me the link or tutorial for the same?
Thanks for the help.
Option 1 : I can create a asp.net page for login and after successful login I can show the dashboard.
This wouldn't work because if the person knew the URL of the page, they wouldn't need to defer to your ASP.NET login page and just go straight for the source (once they found out the URL).
The only way I know you can manage private dashboards is by creating workspaces within Power BI which you can provision access to certain users or accounts. This requires you to upgrade to Power BI Pro however and is not offered in the free version.