Skip to content

Commit

Permalink
Merge pull request #39 from divyabhushan/prod-master
Browse files Browse the repository at this point in the history
V2.7.1 changes
  • Loading branch information
mohanrex authored Jul 30, 2021
2 parents d4ed199 + a0514ae commit f6658fa
Show file tree
Hide file tree
Showing 175 changed files with 981 additions and 1,556 deletions.
50 changes: 50 additions & 0 deletions docs/admin-guide/agent-manager/agent/service-prinicpal.mdx
Original file line number Diff line number Diff line change
@@ -0,0 +1,50 @@
---
id: service-principal
title: Power BI Service Principal Authentication
sidebar_title: Service Principal Authentication
---

import useBaseUrl from "@docusaurus/useBaseUrl";
import Link from '@docusaurus/Link';
import Zoom from "react-medium-image-zoom";
import "react-medium-image-zoom/dist/styles.css";

Power BI agent uses a security identity called Power BI service principal. This service principal allows bihub app to access power BI specific azure resources.

As a bihubadmin, you must also add an instance for service principal along with Power BI agent instance.

## Pre-requisite

* Power BI Service principal application setup and configured in Azure. [ Refer <Link to={useBaseUrl('docs/admin-guide/getting-started/prerequisite/bi-platform-config/power-bi-service')}>Service Principal configuration</Link> section ].
* **Directory (Tenant) ID**: Obtained while registering the application in Azure Active Directory.
* **Application (Client) ID**: The ClientID of the application that is registered in Azure Active Directory.
* **Client Secret**: The ClientSecret for the application registered in Azure Active Directory.

## Add a Service Principal instance in BI hub

* From the left navigation menu, select **Agent Manager > Power BI**.
* In the **Instance Manager** screen, select **Add Instance**.
* Fill in the field values in the **Add Instance** editor.
<div class="center">
<Zoom>
<img alt="Service Principal" src={useBaseUrl('doc-images/admin-guide/agent/service-principal-instance.png')}/>
</Zoom>
<p>Power BI Service Principal</p>
</div>

In the field - **Power BI Authentication Type**, select **Service Principal**.

For **PowerBI Admin Authentication** agent instance select the **Power BI Authentication Type** as **Admin Authentication**:

<div class="center">
<Zoom>
<img alt="Power BI Admin Authentication" src={useBaseUrl('doc-images/admin-guide/agent/powerbi-admin-auth.png')}/>
</Zoom>
<p>Power BI Admin Authentication</p>
</div>

> The value of **Power BI Authentication Type** field entered at the time of creation, cannot be edited later.
:::note
Service principal requires no admin oauth credentials login.
:::
Original file line number Diff line number Diff line change
@@ -0,0 +1,151 @@
---
id: power-bi-service
title: Power BI Service Principal Configuration
---

import useBaseUrl from "@docusaurus/useBaseUrl";
import Link from '@docusaurus/Link';
import Zoom from "react-medium-image-zoom";
import "react-medium-image-zoom/dist/styles.css";

<!--
Power BI Service Principal is an authentication method used to let BI Hub access Power BI agent content and APIs.
-->

This Service Principal is used to provide administration authentication for Power BI agent without admin oauth credentials.

System Admin must configure this Service in the platform. Once configured, the bihubadmin adds the service principal in the bi hub application (Refer the <Link to={useBaseUrl('docs/admin-guide/agent-manager/agent/service-principal')}>Service Principal Authentication</Link> section).

Configuring service principal involves the following steps:

1. Set up the application in Azure
1. Create the application secret
1. Add application to a security group
1. Enable service principal authentication in Power BI
1. Configure Permissions for the Application

## Step 1: Set up the Application in Azure

* Open the Azure portal > https://portal.azure.com
* Go to **Azure Active Directory > App registrations > New registration**.

<div class="center">
<Zoom>
<img alt="Azure Application Registration" src={useBaseUrl('/doc-images/powerbi/azure-new-registration.png')}/>
</Zoom>
<p>Azure new application registration</p>
</ div>

* Enter the following field values for the application:
* **Name**: The display name for service principal.
* **Supported account types** as **Accounts in this organizational directory only (Default Directory only - Single tenant)**.
* **Redirect URI** of the application. The port number that you enter here must be the same as the backend port for Power BI agent.

<div class="center">
<Zoom>
<img alt="Application Registration" src={useBaseUrl('/doc-images/powerbi/register-service-app.png')}/>
</Zoom>
<p>Application Registration</p>
</div>

* Select **Register**.

<div class="center">
<Zoom>
<img alt="Application Registration" src={useBaseUrl('/doc-images/powerbi/service-registered.png')}/>
</Zoom>
<p>Application Registration</p>
</div>

> Make a note of the **Application (client) ID, Object ID**, and **Directory (tenant) ID**.
## Step 2: Create the Application Secret

* Go to **Azure Portal > Azure Active Directory > App registrations**.
* Select **BI Hub - Service Principal**.
* From the left navigational panel, select **Certificates & secrets**.

<div class="center">
<Zoom>
<img alt="Client secret" src={useBaseUrl('/doc-images/powerbi/client-secret.png')}/>
</Zoom>
<p>Generate Client Secret</p>
</div>

* Select **New client secret**.
* Specify a **Description** and **Expiry** duration for client secret and select **Add**.
* The Client secret is generated with a **Value** and a **Secret ID**.

<div class="center">
<Zoom>
<img alt="User Client secret" src={useBaseUrl('/doc-images/powerbi/service-principal-clientsecret.png')}/>
</Zoom>
<p>User Client Secret added</p>
</div>

:::important
Save the client secret value. You will not be able to retrieve if after you perform another operation or leave this blade . If failed to note down the value, please repeat the step [Set up the application in Azure](#setup-the-application-in-azure) to create a new key.
:::

## Step 3: Add Application to a Security Group

* In the [Azure AD admin center](https://aad.portal.azure.com/), select **Azure Active Directory**.
* Select **Groups**.
* To create a new security group, select **New group**. (Kindly ignore if you wish to use the existing security group).
* Add the service principal application that you created inside the security group obtained in the above step.
* Select **Create**.

## Step 4: Enable service principal authentication in Power BI

Administer the Power BI portal to configure the tenant settings for your application.

Tenant settings are used to restrict capabilities and features to a limited set of users/groups.

* Sign in to [Power BI](https://app.powerbi.com/) using your admin account credentials.
* From the page header, select **... > Settings > Admin portal**.
* Select **Tenant Settings**.
<div class="center">
<Zoom>
<img alt="Power BI Admin portal Menu" src={useBaseUrl('/doc-images/powerbi/powerbi-admin-portal.png')}/>
</Zoom>
<p>Power BI Admin portal Menu</p>
</div>
* Under **Developer settings**, toggle on **Enabled** for **Allow service principals to use Power BI APIs** option.
* Under **Apply to** section, select **Specific security groups**.
* Add the security group where your Power BI Service Principal application is added. ( group of which principal is a member of)
* Under **Admin API settings**, toggle on **Enabled** for **Allow service principals to use read-only Power BI admin APIs (Preview)**.
<div class="center">
<Zoom>
<img alt="Power BI Admin portal Menu" src={useBaseUrl('/doc-images/powerbi/admin-api-settings.png')}/>
</Zoom>
<p>Power BI Admin portal Menu</p>
</div>
* In the **Apply to** section, select **Specific security groups** and add the group where the application is a member of.

## Step 5: Configure Permissions for the Application

The application requires some permission level actions on behalf of the user.

* Go to **[Azure portal](https://portal.azure.com) > Azure Active Directory > App registrations**.
* Click on your application and select **API permissions**.
* Click **Add a permission**.
* Map the permissions for service principal to work in BI Hub.
<div class="center">
<Zoom>
<img width="550" alt="Microsoft Graph API permissions" src={useBaseUrl('/doc-images/powerbi/microsoft-graph.png')}/>
</Zoom>
<p>Microsoft Graph API permissions</p>
</div>

<div class="center">
<Zoom>
<img width="550" alt="Power BI service API permissions" src={useBaseUrl('/doc-images/powerbi/powerbi-service.png')}/>
</Zoom>
<p>Power BI service API permissions</p>
</div>

:::note
Do not give Tenant.Read.All and Tenant.ReadWrite.All permissions under Power BI Service permissions. That will prevent reports coming into BIHUB.
:::

Your Power BI Service Principal can now access Azure AD tenant resources.
Original file line number Diff line number Diff line change
@@ -1,7 +1,6 @@
---
id: power-bi
sidebar_label: POWER BI
title: Power BI Platform Configuration
id: power-bi
title: Power BI Admin Authentication Configuration
---

import useBaseUrl from "@docusaurus/useBaseUrl";
Expand All @@ -21,21 +20,24 @@ This guideline assumes that the user has a tenant in Azure. If the tenant is not
Contact the Active Directory Administrator to perform the following steps as some of the actions will require administrator consent.
:::

Power BI agent requires oauth authentication for both admin and users.

There are 3 main steps to configure Power BI agent:
1. [Set up the Application in Azure](#set-up-the-application-in-azure)
1. [Create the Application Secret](#create-the-application-secret)
1. [Configure Permissions for the Application](#configure-permissions-for-the-application)

### Set up the Application in Azure
- Open the Azure portal > https://portal.azure.com
- Go to **Azure Active Directory > App registrations > New registration**.

* Open the Azure portal > https://portal.azure.com
* Go to **Azure Active Directory > App registrations > New registration**.

<div class="center">
<Zoom>
<img alt="Azure Application Registration" src={useBaseUrl('/doc-images/powerbi/azure-new-registration.png')}/>
</Zoom>
<p>Azure new application registration</p>
</ div>
</div>

* Set **Name, Supported account types**, and **Redirect URI** of the application:

Expand All @@ -44,7 +46,7 @@ There are 3 main steps to configure Power BI agent:
<img alt="Application Registration" src={useBaseUrl('/doc-images/powerbi/register_app.png')}/>
</Zoom>
<p>Application Registration</p>
</ div>
</div>

:::note
The type should be Native and the Redirect URI must be formatted as `https://servername:port/Redirect`
Expand Down Expand Up @@ -81,8 +83,8 @@ The type should be Native and the Redirect URI must be formatted as `https://ser
</div>

### Create the Application Secret
- Go to **Azure portal > azure active directory > App registrations** and click on your application.

- Go to **Azure Portal > Azure Active Directory > App registrations** and click on your application.
- Navigate to **Certificates & Secrets** and click on **New Client secret** to add a new key.
<div class="center">
<Zoom>
Expand Down Expand Up @@ -224,5 +226,6 @@ Copy the client secret value. You will not be able to retrieve if after you perf
</div>

The permissions must be given to the BI Hub Power BI Agent service account:

- Office 365 Global Administrator
- Power BI Service Administrator
42 changes: 31 additions & 11 deletions docs/admin-guide/settings/general.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -9,13 +9,11 @@ import Link from '@docusaurus/Link';
import Zoom from "react-medium-image-zoom";
import "react-medium-image-zoom/dist/styles.css";

In the **General** page, an admin can configure general settings related to application navigation, security, reports, and agents.

Following are the configurations available in the General page:
In **General** page, you can configure general settings for the application such as navigation panel, password security, user specific sync reports, and customizations.

<div class="center">
<Zoom>
<img alt="Admin page's general settings" src={useBaseUrl('doc-images/admin-guide/settings/general-settings.png')}/>
<img alt="Admin page's general settings" src={useBaseUrl('doc-images/admin-guide/settings/settings-general-tab.png')}/>
</Zoom>
<p>General Settings on the admin's page</p>
</div>
Expand All @@ -30,25 +28,40 @@ To customize the **Navigation Panel** for other users, the super Admin can:

Navigation menu for all users will appear in the order and with the names as set by an admin in this section.

## User Specific - Report Sync

You can now enable/disable the **Sync Reports** feature for the users in their BI Hub profile.
To do so, use the **User Specific - Report Sync** toggle ON/OFF.

## Security - Password Strength Validator

Admin can set the native user password strength validator under **Settings > General > Security** section.
The values can be set to "Low/Medium/High" (Tooltip in the app provides the details of the security settings).

> Any new user created must adhere to the password validation rules to set the new password string.
## User Specific-Report Sync

To enable/disable the **Sync Reports** feature for the users in their BI Hub profile, toggle ON/OFF the following permissions:

<div>

| Permission | Description | Prerequisite |
|-----------------------|------------------------------------------------------------------------------------------|------------------------------------|
| **Sync Reports** | Enable user specific report synchronization in the user mode | |
| **Auto Sync Reports** | Enable user specific report auto synchronization in the user mode | `Sync Reports` |
| **Refresh Time** | Number of days after which automatic synchronization to be triggered (default value = 7) | `Sync Reports > Auto Sync Reports` |

<div class="center"><p>Sync reports Permissions and dependencies</p></div>
</div>

:::note
An upgrade from BI Hub version 2.7.0 to 2.7.1 requires you to refresh (turn OFF and then back ON) the **Sync Reports** toggle.
This is needed for the Elasticsearch index to be rebuilt.
:::

## Search

By default the **Search** section allows users to search and request the reports they do not have access to.

To hide listing the inaccessible reports, turn OFF the **Show Inaccessible reports** toggle here.

When the users search for the reports, the **Inaccessible** reports would be visible or hidden based on the selection made by the Admin.
When users search for the reports, the **Inaccessible** reports would be visible or hidden based on the selection made by the Admin.

<div class="center">
<Zoom>
Expand All @@ -71,7 +84,14 @@ To hide the agent instance, turn OFF this toggle.

## Customization

You allow users to **Launch Reports In New Tab** with the ON/OFF toggle.
You allow users to open all report/URl in a new browser tab, toggle ON the **Launch Reports In New Tab** option.

<div class="center">
<Zoom>
<img alt="Launch Reports In New Tab" src={useBaseUrl('doc-images/admin-guide/settings/launch-reports-new-tab.png')}/>
</Zoom>
<p>Launch Reports In New Tab</p>
</div>

- When you enable this option, by default **Open Report in new tab** is enabled for the users when they login for the first time.
- The user can later choose to enable/disable this option from **Settings > Customization Settings** section.
Expand Down
4 changes: 3 additions & 1 deletion docs/admin-guide/settings/settings.md
Original file line number Diff line number Diff line change
Expand Up @@ -6,12 +6,14 @@ sidebar_label: Settings

import useBaseUrl from "@docusaurus/useBaseUrl";
import Link from '@docusaurus/Link';
import Zoom from "react-medium-image-zoom";
import "react-medium-image-zoom/dist/styles.css";

The **Settings** section allows an admin to configure BI Hub for all users.

<div class="center">
<Zoom>
<img alt="BI Hub settings" src={useBaseUrl('doc-images/admin-guide/settings/settings.png')}/>
<img alt="BI Hub settings" src={useBaseUrl('doc-images/admin-guide/settings/settings-general.png')}/>
</Zoom>
<p>BI Hub settings</p>
</div>
Expand Down
2 changes: 1 addition & 1 deletion docs/admin-guide/settings/user-dashboard.md
Original file line number Diff line number Diff line change
Expand Up @@ -23,7 +23,7 @@ In Dashboard Settings, you have four different options as listed below:
<p>User Dashboard Tab Settings</p>
</div>

1. **Embed Report in User Dashboard**: When enabled with the toggle "ON", will will load the reports live inside the thumbnail in tile view:
1. **Embed Report in User Dashboard**: When enabled with the toggle "ON", will load the reports live inside the thumbnail in tile view:

<div class="center">
<Zoom>
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -42,6 +42,8 @@ This section lists out the general BI Hub Server configuration fields.
| Max Log Count | Maximum number of log files that can be generated without a backup. Once the number is reached, the files need to be backed up. | Default value -10 |
| Log Level | Level of detail at which the log is written | <ul><li>**Info** – Will log all the available information</li><li>**Warning** – Will log all the warnings and errors</li><li>**Error** (Default) – Will log only errors.</li></ul> |
| Agent Timeout | Timeout for the Agent health check in seconds | Default value - 5 |
| Session Timeout | Session timeout duration in minutes | Minimum timeout period is 30 minutes. |
| User Sync Worker Thread Per Process | Number of worker threads process that can run parallely | Maximum number of concurrent user sync reports will be 2x the value being set for this field. |
| Cache Timeout | Timeout for the cache storage of BI Hub Server | Default value - 1 hour |
| CORS (Cross-origin resource sharing) | Settings for the BI Hub Server. To be more secure please set this value of the DNS URL of your machine. | Default value - * |

Expand Down
Loading

0 comments on commit f6658fa

Please sign in to comment.