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

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

При создании приложения Microsoft Entra создается объект субъекта-службы. Объект субъекта-службы, также известный как субъект-служба, позволяет идентификатору Microsoft Entra пройти проверку подлинности приложения. После проверки подлинности приложение может получить доступ к ресурсам клиента 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 с помощью одного из следующих методов:

Создание приложения Microsoft Entra в портал Azure

  1. Войдите на портал Azure.

  2. Найдите и выберите элемент Регистрация приложений.

    Снимок экрана: портал Azure с регистрацией приложения в поле поиска. Это поле и значок Регистрация приложений выделены.

  3. Выберите Создать регистрацию.

    Снимок экрана: страница Регистрация приложений в портал Azure. Выделена новая регистрация.

  4. Заполните необходимые сведения:

    • Имя — введите имя приложения.
    • Поддерживаемые типы учетных записей— выбор поддерживаемых типов учетных записей.
    • (Необязательно) Универсальный код ресурса (URI перенаправления) — при необходимости введите универсальный код ресурса (URI).
  5. Выберите Зарегистрировать.

  6. После регистрации приложения идентификатор приложения доступен на вкладке "Обзор". Скопируйте и сохраните идентификатор приложения для последующего использования.

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

  7. Выберите Сертификаты и секреты.

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

  8. Щелкните Создать секрет клиента.

    Снимок экрана: часть страницы

  9. В окне "Добавление секрета клиента" введите описание, укажите, когда истекает срок действия секрета клиента, и нажмите кнопку "Добавить".

  10. Скопируйте и сохраните значение секрета клиента.

    Снимок экрана: страница

    Примечание.

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

Создание приложения Microsoft Entra с помощью PowerShell

В следующем примере скрипта PowerShell создается новое приложение Microsoft Entra и субъект-служба. Перед выполнением этого скрипта выполните следующие действия:

После выполнения скрипта запишите следующие сведения в выходных данных скрипта:

  • Идентификатор клиента нового приложения
  • Идентификатор объекта нового субъекта-службы
  • Значение секрета субъекта-службы
# Sign in as a user who's allowed to create an app.
Connect-MgGraph -Scopes "Application.ReadWrite.All" 

# Create a new Azure AD web application.
$web = @{
    RedirectUris = "https://localhost:44322"
    HomePageUrl = "https://localhost:44322"
}
$params = @{
    DisplayName = "myAzureADApp"
    Web = $($web)
}
$app = New-MgApplication @params
Write-Host "Client ID of new app: " $($app.AppId)

# Create a service principal.
$ServicePrincipalID=@{
  "AppId" = $($app.AppId)
  }
$sp = New-MgServicePrincipal -BodyParameter $($ServicePrincipalId)
Write-Host "Object ID of new service principal: " $($sp.Id)

# Create a key for the service principal.
$credential = Add-MgServicePrincipalPassword -ServicePrincipalId $($sp.Id)
Write-Host "Credential of new service principal: " $($credential.SecretText)

Шаг 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 an Azure AD 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.

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

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

    Снимок экрана: раздел параметров разработчика. Параметр, позволяющий субъектам-службам использовать 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. Использовать для этой цели группу безопасности, содержащую субъект-службу, нельзя.