Встроить отчет с использованием удостоверения на основе токенов (SSO)

ОБЛАСТЬ ПРИМЕНЕНИЯ: Приложение владеет данными Пользователь владеет данными

Удостоверение на основе токенов позволяет поставщику программного обеспечения использовать токен доступа Microsoft Entra для передачи удостоверения клиента в базу данных Azure SQL, управляемую в арендаторе клиента.

Клиенты isV, которые хранят данные и управляют ими в База данных SQL Azure, могут защитить свои данные в клиенте при интеграции с Power BI Embedded в приложении ISV.

При создании маркера встраивания укажите личность пользователя в SQL Azure, передав маркер доступа Microsoft Entra для сервера SQL Azure. Затем маркер доступа используется для извлечения только соответствующих данных для этого пользователя из SQL Azure для этого конкретного сеанса.

Схематический рисунок, показывающий, как независимый поставщик программного обеспечения передает эффективное удостоверение арендатору SQL, а клиент возвращает обратно маркер внедрения.

Important

Ограничения единого входа в app-owns-data:

  • В сценариях с данными приложения (аутентификация c помощью субъекта-службы или основного пользователя) единый вход (SSO) для источников данных DirectQuery поддерживается только с База данных SQL Azure.
  • При создании токена встраивания с использованием SSO необходимо указать IdentityBlob для каждого источника данных с включенным SSO. Пропуск IdentityBlob приводит к сбою при генерации токена или выполнении запроса.

Настройка удостоверения на основе токенов

Удостоверение на основе токенов работает только для моделей DirectQuery, размещенных на емкости, подключенной к базе данных Azure SQL, которая настроена на разрешение аутентификации через Microsoft Entra. Источник данных семантической модели должен быть настроен на использование учетных данных OAuth2 пользователей, чтобы применить аутентификацию на основе токенов. Узнайте больше об аутентификации Microsoft Entra для База данных SQL Azure.

Перед настройкой удостоверения на основе токенов проверьте следующее:

  • Источник данных DirectQuery — это База данных SQL Azure (единственный поддерживаемый источник данных SSO для сценариев "app-owns-data").
  • База данных SQL Azure настроен для проверки подлинности Microsoft Entra.
  • У вас есть маркер доступа Microsoft Entra пользователя для сервера Azure SQL, передаваемого в качестве IdentityBlob.
  1. На портале Power BI выберите Семантическая модель> Дополнительные параметры (три точки) > Настройки > Учетные данные источника данных > Изменить учетные данные.

    Снимок экрана: параметр параметров набора данных на портале Power BI.

  2. Установите флажок OAuth2.

    Снимок экрана: настройка СЕРВЕРА SQL Azure.

Генерация токена удостоверения

Чтобы создать токен доступа для Azure SQL, приложение должно иметь делегированное разрешение на доступ к базе данных Azure SQL и хранилищу данных для API База данных SQL Azure в конфигурации регистрации приложения Microsoft Entra в портал Azure.

Снимок экрана: параметры конфигурации регистрации приложения Microsoft Entra на портале Azure. Проверка подлинности и получение маркера для пользователя из конечного узла Azure AD v2 для следующей области:

Дополнительные сведения см. в следующих примерах кода MSAL:

Генерация токена встраивания

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

Note

Вы должны включить запись datasourceIdentities с допустимым identityBlob для каждого источника данных Azure SQL с включенным единым входом. Если в источнике данных с поддержкой единого входа отсутствует компонент identityBlob, вызов на генерацию маркера внедрения завершится сбоем, или выполнение запроса вернет ошибку.

{
  "datasets": [
    {
      "id": "66ba5010-xxxx-xxxx-xxxx-f2bf0125abeb",
    }
  ],
  "reports": [
    {
      "allowEdit": false,
      "id": "9e6da541-xxxx-xxxx-xxxx-7d9442827cce"
    }
  ],
  "datasourceIdentities": [
    {
      "identityBlob": "eyJ…",
      "datasources": [
        {
          "datasourceType": "Sql",
          "connectionDetails": {
            "server": "YourServerName.database.windows.net",
            "database": "YourDataBaseName"
          }
        }
      ]
    }
  ]
}

В следующем примере показан встроенный отчет Power BI с SSO и RLS, примененными к набору данных:

Снимок экрана встраиваемого отчета Power BI с единой аутентификацией и RLS (управление доступом на уровне строк), примененными к набору данных.