Vložení obsahu Power BI pomocí instančního objektu a tajného kódu aplikace

Instanční objekt je metoda ověřování, která se dá použít k povolení přístupu aplikace Microsoft Entra k služba Power BI obsahu a rozhraní API.

Při vytváření aplikace Microsoft Entra se vytvoří objekt instančního objektu. Instanční objekt, označovaný také jako instanční objekt, umožňuje Microsoft Entra ID ověřit vaši aplikaci. Po ověření může aplikace přistupovat k prostředkům tenanta Microsoft Entra.

K ověření používá instanční objekt ID aplikace Microsoft Entra a jednu z následujících možností:

  • Certifikát
  • Tajný kód aplikace

Tento článek popisuje ověřování instančního objektu pomocí ID aplikace a tajného kódu aplikace.

Poznámka:

Doporučujeme zabezpečit back-endové služby pomocí certifikátů, nikoli tajných klíčů.

metoda

Pokud chcete použít instanční objekt a ID aplikace pro vložené analýzy, proveďte následující kroky. Následující části podrobně popisují tyto kroky.

  1. Vytvořte aplikaci Microsoft Entra.

    1. Vytvořte tajný kód pro aplikaci Microsoft Entra.
    2. Získejte ID aplikace a tajný klíč aplikace.

    Poznámka:

    Tyto kroky jsou popsány v kroku 1. Další informace o vytvoření aplikace Microsoft Entra naleznete v tématu vytvoření aplikace Microsoft Entra.

  2. Vytvořte skupinu zabezpečení Microsoft Entra.

  3. Povolte nastavení správce služba Power BI.

  4. Přidejte instanční objekt do pracovního prostoru.

  5. Vložte obsah.

Důležité

Aplikace Microsoft Entra nevyžaduje, abyste při vytváření pro instanční objekt na webu Azure Portal nakonfigurovali žádná delegovaná oprávnění nebo oprávnění aplikace. Při vytváření aplikace Microsoft Entra pro instanční objekt pro přístup k rozhraní REST API Power BI doporučujeme vyhnout se přidávání oprávnění. Nikdy se nepoužívají a můžou způsobovat chyby, které se obtížně řeší.

Krok 1 : Vytvoření aplikace Microsoft Entra

Pomocí jedné z těchto metod vytvořte aplikaci Microsoft Entra:

Vytvoření aplikace Microsoft Entra na webu Azure Portal

  1. Přihlaste se k portálu Azure.

  2. Vyhledejte a vyberte Registrace aplikací.

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

  3. Vyberte Nová registrace.

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

  4. Vyplňte požadované informace:

    • Název – Zadejte název aplikace.
    • Podporované typy účtů – Vyberte podporované typy účtů.
    • (Volitelné) Identifikátor URI přesměrování – v případě potřeby zadejte identifikátor URI.
  5. Vyberte Zaregistrovat.

  6. Po registraci aplikace je ID aplikace k dispozici na kartě Přehled. Zkopírujte a uložte ID aplikace pro pozdější použití.

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

  7. Vyberte Certifikáty a tajné kódy.

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

  8. Vyberte Nový tajný klíč klienta.

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

  9. V okně Přidat tajný kód klienta zadejte popis, zadejte, kdy má platnost tajného klíče klienta vypršet, a vyberte Přidat.

  10. Zkopírujte a uložte hodnotu tajného klíče klienta.

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

    Poznámka:

    Po opuštění tohoto okna je hodnota tajného klíče klienta skrytá a nemůžete ji znovu zobrazit nebo zkopírovat.

Vytvoření aplikace Microsoft Entra pomocí PowerShellu

Následující ukázkový skript PowerShellu vytvoří novou aplikaci Microsoft Entra a instanční objekt. Před spuštěním tohoto skriptu:

Po spuštění skriptu si poznamenejte následující informace ve výstupu skriptu:

  • ID klienta nové aplikace
  • ID objektu nového instančního objektu
  • Hodnota tajného kódu instančního objektu
# 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)

Krok 2 : Vytvoření skupiny zabezpečení Microsoft Entra

Instanční objekt nemá přístup k žádnému obsahu a rozhraním API Power BI. Pokud chcete instančnímu objektu udělit přístup, vytvořte ve službě Microsoft Entra ID skupinu zabezpečení. Pak přidejte instanční objekt, který jste vytvořili do této skupiny zabezpečení.

Poznámka:

Pokud chcete povolit přístup instančního objektu pro celou organizaci, přeskočte tento krok.

Existují dva způsoby vytvoření skupiny zabezpečení Microsoft Entra:

Ruční vytvoření skupiny zabezpečení

Pokud chcete skupinu zabezpečení Azure vytvořit ručně, postupujte podle pokynů v tématu Vytvoření základní skupiny a přidání členů.

Vytvoření skupiny zabezpečení pomocí PowerShellu

Následující ukázkový skript vytvoří novou skupinu zabezpečení. Přidá také instanční objekt, který jste vytvořili dříve, do nové skupiny zabezpečení.

  • Před spuštěním skriptu nahraďte <app-client-ID> ID klienta, které jste si poznamenali dříve pro novou aplikaci.
  • Po spuštění skriptu si poznamenejte ID objektu nové skupiny zabezpečení, kterou najdete ve výstupu skriptu.
# 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)

Krok 3 – Povolení nastavení správce služba Power BI

Aby aplikace Microsoft Entra mohla získat přístup k obsahu a rozhraním API Power BI, musí správce Power BI povolit následující nastavení:

  • Vkládání obsahu do aplikací
  • Povolit instančním objektům používat rozhraní API pro Power BI

Na portálu Power BI Správa přejděte do nastavení tenanta a posuňte se dolů k nastavení pro vývojáře.

  • Povolte vkládání obsahu do aplikací pro celou organizaci nebo pro konkrétní skupinu zabezpečení, kterou jste vytvořili v Microsoft Entra ID.

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

  • Povolte, aby instanční objekty používaly API Power BI pro celou organizaci nebo pro konkrétní skupinu zabezpečení, kterou jste vytvořili v MICROSOFT Entra ID.

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

    Důležité

    Instanční objekty mají přístup k nastavení tenanta, pro která jsou povolená. V závislosti na nastavení správce to zahrnuje konkrétní skupiny zabezpečení nebo celou organizaci.

    Pokud chcete omezit přístup instančního objektu na konkrétní nastavení tenanta, povolte přístup pouze ke konkrétním skupinám zabezpečení. Případně můžete vytvořit vyhrazenou skupinu zabezpečení pro instanční objekty a vyloučit ji z nastavení požadovaného tenanta.

Krok 4 : Přidání instančního objektu do pracovního prostoru

Aplikace Microsoft Entra má přístup k sestavám, řídicím panelům a sémantických modelů Power BI jenom v případě, že má přístup k vašemu pracovnímu prostoru Power BI. Tento přístup poskytnete tak, že do pracovního prostoru přidáte instanční objekt aplikace nebo její skupinu zabezpečení jako člena nebo správce.

Instanční objekt nebo jeho skupinu zabezpečení můžete do pracovního prostoru přidat třemi způsoby:

Ruční přidání instančního objektu nebo skupiny zabezpečení

  1. V služba Power BI přejděte do pracovního prostoru, pro který chcete povolit přístup. V nabídce Další vyberte přístup k pracovnímu prostoru.

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

  2. V podokně Access v části Přidat správce, členy nebo přispěvatele přidejte jednu z těchto věcí:

    • Váš instanční objekt. Název instančního objektu je zobrazovaný název vaší aplikace Microsoft Entra, jak se zobrazí na kartě Přehled vaší aplikace Microsoft Entra.
    • Skupina zabezpečení, která zahrnuje váš instanční objekt.
  3. V rozevírací nabídce vyberte Člen nebo Správa.

  4. Vyberte Přidat.

Přidání instančního objektu nebo skupiny zabezpečení pomocí PowerShellu

Následující části obsahují ukázkové skripty PowerShellu pro přidání instančního objektu a skupiny zabezpečení do pracovního prostoru Power BI jako člena.

Přidání instančního objektu jako člena pracovního prostoru pomocí PowerShellu

Následující skript přidá instanční objekt jako člena pracovního prostoru. Před spuštěním skriptu:

  • Nahraďte <service-principal-object-ID> ID objektu, které jste si poznamenali dříve pro nový instanční objekt.
  • Nahraďte <workspace-name> názvem pracovního prostoru, ke kterému chcete instančnímu objektu udělit přístup.
# 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)

Přidání skupiny zabezpečení jako člena pracovního prostoru pomocí PowerShellu

Následující skript přidá skupinu zabezpečení jako člena pracovního prostoru. Před spuštěním skriptu:

  • Nahraďte <security-group-object-ID> ID objektu, které jste si poznamenali dříve pro novou skupinu zabezpečení.
  • Nahraďte <workspace-name> názvem pracovního prostoru, ke kterému chcete skupině zabezpečení udělit přístup.
# 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)

Krok 5 : Vložení obsahu

Obsah můžete vložit do ukázkové aplikace nebo do vlastní aplikace.

Po vložení obsahu můžete přejít do produkčního prostředí.

Poznámka:

Pokud chcete svůj obsah zabezpečit pomocí certifikátu, postupujte podle kroků popsaných v části Vložení obsahu Power BI s instančním objektem a certifikátem.

Úvahy a omezení

  • Při použití instančního objektu se můj pracovní prostor nepodporuje.
  • Při přesunu do produkčního prostředí se vyžaduje kapacita.
  • K portálu Power BI se nemůžete přihlásit pomocí instančního objektu.
  • K povolení instančního objektu v nastavení pro vývojáře na portálu Power BI Správa se vyžadují práva správce Power BI.
  • Vložení pro aplikace vaší organizace nemůže použít instanční objekt.
  • Správa toků dat se nepodporuje.
  • Instanční objekt podporuje jenom některá rozhraní API pro správu jen pro čtení. Pokud chcete povolit podporu instančního objektu pro rozhraní API pro správu jen pro čtení, musíte povolit nastavení správce služba Power BI ve vašem tenantovi. Další informace najdete v tématu Povolení ověřování instančního objektu pro rozhraní API pro správu jen pro čtení.
  • Pokud používáte instanční objekt se zdrojem dat služby Azure Analysis Services , musí mít samotný instanční objekt oprávnění k instanci služby Azure Analysis Services. Použití skupiny zabezpečení, která obsahuje instanční objekt pro tento účel, nefunguje.