Встраивание содержимого Power BI с использованием субъекта-службы и секрета приложения

Служебный принципал — это метод проверки подлинности, который можно использовать для предоставления приложению Microsoft Entra доступа к содержимому и API службы Power BI.

При создании приложения Microsoft Entra создается объект субъекта-службы. Объект субъекта-службы, также известный просто как субъект-служба, позволяет Microsoft Entra ID выполнять аутентификацию вашего приложения. После проверки подлинности приложение может получить доступ к ресурсам клиента Microsoft Entra.

Для проверки подлинности субъект-служба использует идентификатор приложения Microsoft Entra и одно из следующих элементов:

  • сертификат;
  • Секрет приложения

В этой статье описывается аутентификация субъекта-службы с использованием идентификатора приложения и секрета приложения.

Примечание.

Рекомендуется защитить внутренние службы с помощью сертификатов, а не секретных ключей.

Способ

Чтобы использовать субъект-службу и идентификатор приложения для встроенной аналитики, выполните следующие действия. В последующих разделах подробно описаны эти шаги.

  1. Создайте приложение Microsoft Entra.

    1. Создайте секрет для приложения Microsoft Entra.
    2. Получите идентификатор приложения и секрет приложения.

    Примечание.

    Эти шаги описаны на шаге 1. Дополнительные сведения о создании приложения Microsoft Entra см. в статье о создании приложения Microsoft Entra.

  2. Создайте группу безопасности Microsoft Entra.

  3. Включите параметры администратора службы Power BI.

  4. Добавьте субъект службы в свою рабочую область.

  5. Встраивайте свой контент.

Внимание

Для приложения Microsoft Entra не требуется настраивать делегированные разрешения или разрешения приложения на портале Azure, если оно создано для субъекта-службы. При создании приложения Microsoft Entra для субъекта-службы для доступа к REST API Power BI рекомендуется избегать добавления разрешений. Они никогда не используются и могут вызывать ошибки, которые трудно устранить.

Шаг 1. Создание приложения Microsoft Entra

Вы можете создать приложение Microsoft Entra на портале Azure или с помощью PowerShell:

Чтобы создать приложение Microsoft Entra и секрет на портале Azure, следуйте инструкциям в разделе "Регистрация приложения".

Примечание.

После выхода из этого окна значение секрета клиента скрыто, и его невозможно просмотреть или скопировать еще раз.

Шаг 2. Создание группы безопасности Microsoft Entra

Субъект-служба не имеет доступа к любому содержимому и API Power BI. Чтобы предоставить субъекту-службе доступ, создайте группу безопасности в идентификаторе Microsoft Entra. Затем добавьте в эту группу безопасности субъект-службу, который вы создали.

Примечание.

Если вы хотите включить доступ для субъектов-служб во всей организации, пропустите этот шаг.

Существует два способа создания группы безопасности Microsoft Entra:

Создание группы безопасности вручную

Чтобы создать группу безопасности Azure вручную, следуйте инструкциям в статье "Создание базовой группы". Не добавляйте участников в группу в настоящее время.

Создание группы безопасности с помощью PowerShell

В следующем примере скрипта создается новая группа безопасности. Он также добавляет созданную ранее субъект-службу в новую группу безопасности.

  • Перед запуском скрипта замените <app-client-ID> на идентификатор клиента, который вы ранее записали для своего нового приложения.
  • После запуска скрипта запишите идентификатор объекта новой группы безопасности, которую можно найти в выходных данных скрипта.
# Sign in as an admin.
Connect-MgGraph -Scopes "Application.ReadWrite.All"

# Get the service principal that you created earlier.
$servicePrincipal = Get-MgServicePrincipal -Filter "AppId eq '<app-client-ID>'"

# Create a Microsoft Entra security group.
$group = New-MgGroup -DisplayName "securitygroup1" -SecurityEnabled -MailEnabled:$False -MailNickName "notSet"
Write-Host "Object ID of new security group: " $($group.Id)

# Add the service principal to the group.
New-MgGroupMember -GroupId $($group.Id) -DirectoryObjectId $($servicePrincipal.Id)

Шаг 3 — Включить параметры администратора службы Power BI

Чтобы приложение Microsoft Entra могло получить доступ к содержимому и API Power BI, администратор Power BI должен включить следующие параметры:

  • Встроенное содержимое в приложениях
  • Разрешение субъектам-службам использовать API-интерфейсы Power BI

На портале администрирования Power BI перейдите к параметрам клиента и прокрутите страницу вниз до параметров разработчика.

  • Включите параметр Встраивание содержимого в приложения либо для всей организации, либо для конкретной группы безопасности, созданной в Microsoft Entra ID.

    Снимок экрана: параметры разработчика в разделе параметров клиента на портале администрирования. Включен параметр внедрения содержимого в приложения.

  • Разрешить субъектам-службам использовать API Power BI для всей организации или для конкретной группы безопасности, созданной в идентификаторе Microsoft Entra. Дополнительные сведения см. в статье Субъекты-службы могут вызывать общедоступные API Fabric.

    Снимок экрана раздела параметров разработчика. Параметр, разрешающий субъектам-службам использовать API Power BI, включен для одной группы безопасности.

    Внимание

    Субъекты-службы имеют доступ к любым параметрам клиента, для которых они включены. В зависимости от параметров администратора это включает определенные группы безопасности или всю организацию.

    Чтобы ограничить доступ субъекта-службы к определенным параметрам клиента, разрешите доступ только к определенным группам безопасности. Кроме того, можно создать выделенную группу безопасности для субъектов-служб и исключить ее из требуемых параметров клиента.

Шаг 4. Добавьте субъект службы в рабочую область

Приложение Microsoft Entra может получить доступ к отчетам, панелям мониторинга и семантических моделям Power BI, только если у него есть доступ к рабочей области Power BI в качестве члена или администратора. Вы предоставляете этот доступ, добавив субъект-службу приложения или ее группу безопасности в рабочую область.

Существует три способа добавить субъект-службу или её группу безопасности в рабочую область:

Добавление субъекта-службы или группы безопасности вручную

  1. В службе Power BI прокрутите страницу до рабочей области, для которой нужно предоставить доступ. В меню "Дополнительно " выберите доступ к рабочей области.

    Снимок экрана: развернутое меню

  2. На панели Доступ в разделе Добавление администраторов, участников или авторов добавьте одно из следующего:

    • Ваш субъект-служба. Имя вашего субъекта-службы — это отображаемое имя вашего приложения Microsoft Entra, как оно указано на вкладке «Обзор» приложения Microsoft Entra.
    • Группа безопасности, которая включает ваш субъект-службы.
  3. В раскрывающемся меню выберите "Член " или "Администратор".

  4. Выберите Добавить.

Добавление субъекта-службы или группы безопасности с помощью PowerShell

В следующих разделах приведены примеры скриптов PowerShell для добавления субъекта-службы и группы безопасности в рабочую область Power BI в качестве участника.

Добавление субъекта-службы в качестве члена рабочей области с помощью PowerShell

Следующий сценарий добавляет субъект-службу в качестве члена рабочей области. Перед запуском скрипта выполните следующие действия:

  • Замените <service-principal-object-ID> на идентификатор объекта, который вы записали ранее для нового субъекта-службы.
  • Замените <workspace-name> именем рабочей области, к которую вы хотите предоставить субъекту-службе доступ.
# Sign in to Power BI.
Login-PowerBI

# Set up the service principal ID.
$SPObjectID = "<service-principal-object-ID>"

# Get the workspace.
$pbiWorkspace = Get-PowerBIWorkspace -Filter "name eq '<workspace-name>'"

# Add the service principal to the workspace.
Add-PowerBIWorkspaceUser -Id $($pbiWorkspace.Id) -AccessRight Member -PrincipalType App -Identifier $($SPObjectID)

Добавление группы безопасности в качестве члена рабочей области с помощью PowerShell

Следующий сценарий добавляет группу безопасности в качестве члена рабочей области. Перед запуском скрипта выполните следующие действия:

  • Замените <security-group-object-ID> на идентификатор объекта, который вы записали ранее для своей новой группы безопасности.
  • Замените <workspace-name> именем рабочей области, к которую вы хотите предоставить доступ группе безопасности.
# Sign in to Power BI.
Login-PowerBI

# Set up the security group object ID.
$SGObjectID = "<security-group-object-ID>"

# Get the workspace.
$pbiWorkspace = Get-PowerBIWorkspace -Filter "name eq '<workspace-name>'"

# Add the security group to the workspace.
Add-PowerBIWorkspaceUser -Id $($pbiWorkspace.Id) -AccessRight Member -PrincipalType Group -Identifier $($SGObjectID)

Шаг 5. Внедрение содержимого

Вы можете внедрить содержимое в пример приложения или в собственное приложение.

После того как ваш контент встроен, вы готовы перейти в рабочую среду.

Примечание.

Чтобы защитить содержимое с помощью сертификата, выполните действия, описанные в разделе "Внедрение содержимого Power BI" с помощью субъекта-службы и сертификата.

Рекомендации и ограничения

  • Моя рабочая область не поддерживается при использовании субъекта-службы.
  • Для перехода в продуктивную среду требуется емкость.
  • Вы не можете войти в портал Power BI с использованием учетных данных субъекта-службы.
  • Права администратора Power BI необходимы для включения субъекта-службы в параметрах разработчика на портале администрирования Power BI.
  • Приложения «Встраивание для вашей организации» не могут использовать субъект-службу.
  • Управление потоками данных не поддерживается.
  • Не все API только для чтения поддерживаются субъектом-службой. Чтобы включить поддержку субъектов-служб для API администрирования, доступных только для чтения, включите параметры администратора службы Power BI в вашем клиенте. Дополнительные сведения см. в статье Включение проверки подлинности субъекта-службы для API администрирования только для чтения.
  • Если вы используете субъект-службу с источником данных Azure Analysis Services, сам субъект-служба должен иметь разрешения на экземпляр Azure Analysis Services. Использование для этой цели группы безопасности, содержащей сервисный субъект, не работает.