Изучение аутентификации на основе токенов для Power BI Embedded: подробное руководство

В современном мире, основанном на данных, визуализация и анализ данных имеют решающее значение для бизнеса. Power BI Embedded — это мощный инструмент, который позволяет разработчикам интегрировать интерактивную визуализацию данных в свои приложения. Чтобы обеспечить безопасный доступ к ресурсам Power BI, обычно используется проверка подлинности на основе токенов. В этой статье мы погрузимся в мир аутентификации на основе токенов для Power BI Embedded. Мы рассмотрим различные методы и предоставим примеры кода, которые помогут вам эффективно реализовать этот механизм аутентификации.

Методы аутентификации на основе токенов:

  1. Аутентификация Azure Active Directory (AAD).
    Интеграция Azure Active Directory (AAD) обеспечивает надежный механизм аутентификации для Power BI Embedded. Используя AAD, вы можете аутентифицировать пользователей и создавать токены доступа для доступа к ресурсам Power BI. Вот пример того, как получить токен доступа с помощью потока аутентификации AAD:
# Code example
import adal
authority_url = 'https://login.microsoftonline.com/{tenant_id}'
resource = 'https://analysis.windows.net/powerbi/api'
context = adal.AuthenticationContext(authority_url)
token = context.acquire_token_with_client_credentials(resource, client_id, client_secret)
access_token = token['access_token']
  1. Аутентификация данных, владеющих данными пользователя (данные принадлежат приложению):
    В сценариях, когда данные принадлежат вашему приложению, вы можете пройти аутентификацию напрямую, без вмешательства пользователя. Этот метод известен как аутентификация данных пользователя или данных владельца приложения (ADO). Вот фрагмент кода, демонстрирующий аутентификацию с помощью ADO:
# Code example
from powerbiclient import Report
client = Report('https://app.powerbi.com/')
client.auth(username, password)
  1. Аутентификация субъекта-службы.
    Субъекты-службы позволяют нечеловеческим объектам проходить аутентификацию и получать доступ к ресурсам Power BI. Этот метод подходит для сценариев, где вам нужен автоматический доступ к Power BI. Вот пример аутентификации с использованием субъекта-службы:
# Code example
from azure.identity import ClientSecretCredential
from powerbiclient import Report
credential = ClientSecretCredential(tenant_id, client_id, client_secret)
client = Report('https://app.powerbi.com/', credential=credential)
  1. API токенов Power BI Embedded.
    Служба Power BI Embedded предоставляет специальный API для создания токенов доступа. Этот метод полезен, если вы хотите создавать токены программным способом. Вот пример того, как создать токен с помощью Token API:
# Code example
import requests
url = 'https://api.powerbi.com/v1.0/myorg/GenerateToken'
headers = {'Authorization': 'Bearer ' + access_token}
payload = {'datasets': [{'id': 'dataset_id', 'permissions': ['Read']}]}
response = requests.post(url, headers=headers, json=payload)
token = response.json()['token']