Внедрение содержимого 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. Найдите и выберите элемент Регистрация приложений.

    Screenshot of the Azure portal, with app registration in the search box. That box and the App registrations icon are highlighted.

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

    Screenshot of the App registrations page in the Azure portal. New registration is highlighted.

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

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

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

    Screenshot of the Overview page of the new app. The Application ID is indecipherable and is highlighted.

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

    Screenshot of the Overview page of the new app. On the navigation pane, Certificates & secrets is highlighted.

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

    Screenshot that shows part of the Certificates & secrets page for the app. Under Client secrets, the New client secret button is highlighted.

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

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

    Screenshot of the Certificates & secrets page for the app. Under Client secrets, a new secret is visible. Its indecipherable value is highlighted.

    Примечание.

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

Создание приложения 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.

    Screenshot of the Developer settings in the Tenant settings section of the Admin portal. The option for embedding content in apps is turned on.

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

    Screenshot of the Developer settings section. The option for allowing service principals to use Power BI APIs is turned on for one security group.

    Важно!

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

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

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

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

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

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

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

    Screenshot that shows the expanded More menu for a workspace. On that menu, Workspace access is highlighted.

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