Внедрение содержимого Power BI с помощью субъекта-службы и секрета приложения
Субъект-служба — это метод проверки подлинности, который можно использовать для предоставления приложению Microsoft Entra доступа к служба Power BI содержимому и API.
При создании приложения Microsoft Entra создается объект субъекта-службы. Объект субъекта-службы, также известный как субъект-служба, позволяет идентификатору Microsoft Entra пройти проверку подлинности приложения. После проверки подлинности приложение может получить доступ к ресурсам клиента Microsoft Entra.
Для проверки подлинности субъект-служба использует идентификатор приложения Microsoft Entra и одно из следующих элементов:
- сертификат;
- Секрет приложения
В этой статье описывается проверка подлинности субъекта-службы с помощью идентификатора приложения и секрета приложения.
Примечание.
Рекомендуется защитить внутренние службы с помощью сертификатов, а не секретных ключей.
- Дополнительные сведения о получении маркеров доступа из идентификатора Microsoft Entra с помощью секретных ключей или сертификатов.
- Чтобы защитить решение с помощью сертификата, выполните инструкции в этой статье, а затем выполните действия, описанные в разделе "Внедрение содержимого Power BI с субъектом-службой и сертификатом".
Способ
Чтобы использовать субъект-службу и идентификатор приложения для встроенной аналитики, выполните следующие действия. В последующих разделах подробно описаны эти шаги.
Создайте приложение Microsoft Entra.
- Создайте секрет для приложения Microsoft Entra.
- Получите идентификатор приложения и секрет приложения.
Примечание.
Эти шаги описаны на шаге 1. Дополнительные сведения о создании приложения Microsoft Entra см. в статье о создании приложения Microsoft Entra.
Создайте группу безопасности Microsoft Entra.
Включите параметры администратора служба Power BI.
Добавьте субъект-службу в рабочую область.
Внедрение содержимого.
Внимание
Приложению Microsoft Entra не требуется настраивать делегированные разрешения или разрешения приложения в портал Azure при создании для субъекта-службы. При создании приложения Microsoft Entra для субъекта-службы для доступа к REST API Power BI рекомендуется избегать добавления разрешений. Они никогда не используются и могут вызывать ошибки, которые трудно устранить.
Шаг 1. Создание приложения Microsoft Entra
Создайте приложение Microsoft Entra с помощью одного из следующих методов:
Создание приложения Microsoft Entra в портал Azure
Войдите на портал Azure.
Найдите и выберите элемент Регистрация приложений.
Выберите Создать регистрацию.
Заполните необходимые сведения:
- Имя — введите имя приложения.
- Поддерживаемые типы учетных записей— выбор поддерживаемых типов учетных записей.
- (Необязательно) Универсальный код ресурса (URI перенаправления) — при необходимости введите универсальный код ресурса (URI).
Выберите Зарегистрировать.
После регистрации приложения идентификатор приложения доступен на вкладке "Обзор". Скопируйте и сохраните идентификатор приложения для последующего использования.
Выберите Сертификаты и секреты.
Щелкните Создать секрет клиента.
В окне "Добавление секрета клиента" введите описание, укажите, когда истекает срок действия секрета клиента, и нажмите кнопку "Добавить".
Скопируйте и сохраните значение секрета клиента.
Примечание.
После выхода из этого окна значение секрета клиента скрыто, и его невозможно просмотреть или скопировать еще раз.
Создание приложения Microsoft Entra с помощью PowerShell
В следующем примере скрипта PowerShell создается новое приложение Microsoft Entra и субъект-служба. Перед выполнением этого скрипта выполните следующие действия:
- Установите последнюю версию PowerShell.
- Установите пакет SDK Для Microsoft Graph PowerShell.
После выполнения скрипта запишите следующие сведения в выходных данных скрипта:
- Идентификатор клиента нового приложения
- Идентификатор объекта нового субъекта-службы
- Значение секрета субъекта-службы
# 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.
Внимание
Субъекты-службы имеют доступ к любым параметрам клиента, для которых они включены. В зависимости от параметров администратора это включает определенные группы безопасности или всю организацию.
Чтобы ограничить доступ субъекта-службы к определенным параметрам клиента, разрешите доступ только к определенным группам безопасности. Кроме того, можно создать выделенную группу безопасности для субъектов-служб и исключить ее из требуемых параметров клиента.
Шаг 4. Добавление субъекта-службы в рабочую область
Приложение Microsoft Entra может получить доступ к отчетам, панелям мониторинга и семантических моделям Power BI, только если у него есть доступ к рабочей области Power BI. Вы предоставляете этот доступ, добавив субъект-службу приложения или ее группу безопасности в рабочую область в качестве члена или администратора.
В рабочую область можно добавить субъект-службу или ее группу безопасности:
Добавление субъекта-службы или группы безопасности вручную
В служба Power BI прокрутите страницу до рабочей области, для которой требуется включить доступ. В меню "Дополнительно " выберите доступ к рабочей области.
В области "Доступ" в разделе "Добавление администраторов, членов или участник" добавьте одно из следующих элементов:
- Субъект-служба. Имя субъекта-службы — это отображаемое имя приложения Microsoft Entra, как показано на вкладке обзора приложения Microsoft Entra.
- Группа безопасности, содержащая субъект-службу.
В раскрывающемся меню выберите элемент или Администратор.
Выберите Добавить.
Добавление субъекта-службы или группы безопасности с помощью 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. Использовать для этой цели группу безопасности, содержащую субъект-службу, нельзя.