Osadzanie zawartości usługi Power BI przy użyciu jednostki usługi i wpisu tajnego aplikacji

Jednostka usługi to metoda uwierzytelniania, która umożliwia aplikacji Entra firmy Microsoft dostęp usługa Power BI zawartości i interfejsów API.

Podczas tworzenia aplikacji Microsoft Entra jest tworzony obiekt jednostki usługi. Obiekt jednostki usługi, znany również jako jednostka usługi, umożliwia usłudze Microsoft Entra ID uwierzytelnianie aplikacji. Po uwierzytelnieniu aplikacja może uzyskiwać dostęp do zasobów dzierżawy firmy Microsoft Entra.

Aby się uwierzytelnić, jednostka usługi używa identyfikatora aplikacji firmy Microsoft Entra i jednego z następujących elementów:

  • Certyfikat
  • Wpis tajny aplikacji

W tym artykule opisano uwierzytelnianie jednostki usługi przy użyciu identyfikatora aplikacji i wpisu tajnego aplikacji.

Uwaga

Zalecamy zabezpieczenie usług zaplecza przy użyciu certyfikatów, a nie kluczy tajnych.

Metoda

Aby użyć jednostki usługi i identyfikatora aplikacji do osadzonej analizy, wykonaj następujące kroki. W kolejnych sekcjach szczegółowo opisano te kroki.

  1. Utwórz aplikację Firmy Microsoft Entra.

    1. Utwórz wpis tajny dla aplikacji Microsoft Entra.
    2. Pobierz identyfikator aplikacji i klucz tajny aplikacji.

    Uwaga

    Te kroki opisano w kroku 1. Aby uzyskać więcej informacji na temat tworzenia aplikacji Microsoft Entra, zobacz tworzenie aplikacji Microsoft Entra.

  2. Utwórz grupę zabezpieczeń Entra firmy Microsoft.

  3. Włącz ustawienia administratora usługa Power BI.

  4. Dodaj jednostkę usługi do obszaru roboczego.

  5. Osadź zawartość.

Ważne

Aplikacja Microsoft Entra nie wymaga skonfigurowania żadnych delegowanych uprawnień ani uprawnień aplikacji w witrynie Azure Portal, gdy została utworzona dla jednostki usługi. Podczas tworzenia aplikacji Microsoft Entra dla jednostki usługi w celu uzyskania dostępu do interfejsu API REST usługi Power BI zalecamy unikanie dodawania uprawnień. Nigdy nie są używane i mogą powodować błędy, które są trudne do rozwiązania.

Krok 1. Tworzenie aplikacji Microsoft Entra

Utwórz aplikację Microsoft Entra przy użyciu jednej z następujących metod:

Tworzenie aplikacji Microsoft Entra w witrynie Azure Portal

  1. Zaloguj się w witrynie Azure Portal.

  2. Wyszukaj i wybierz pozycję Rejestracje aplikacji.

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

  3. Wybierz opcjęNowa rejestracja.

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

  4. Wypełnij wymagane informacje:

    • Nazwa — wprowadź nazwę aplikacji.
    • Obsługiwane typy kont — wybierz obsługiwane typy kont.
    • (Opcjonalnie) Identyfikator URI przekierowania — w razie potrzeby wprowadź identyfikator URI .
  5. Wybierz pozycję Zarejestruj.

  6. Po zarejestrowaniu aplikacji identyfikator aplikacji jest dostępny na karcie Przegląd. Skopiuj i zapisz identyfikator aplikacji do późniejszego użycia.

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

  7. Wybierz pozycję Certyfikaty i wpisy tajne.

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

  8. Wybierz Nowy klucz tajny klienta.

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

  9. W oknie Dodawanie wpisu tajnego klienta wprowadź opis, określ, kiedy klucz tajny klienta ma wygasnąć, a następnie wybierz pozycję Dodaj.

  10. Skopiuj i zapisz wartość wpisu tajnego klienta.

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

    Uwaga

    Po opuszczeniu tego okna wartość wpisu tajnego klienta jest ukryta i nie można go wyświetlić ani skopiować ponownie.

Tworzenie aplikacji Microsoft Entra przy użyciu programu PowerShell

Poniższy przykładowy skrypt programu PowerShell tworzy nową aplikację Microsoft Entra i jednostkę usługi. Przed uruchomieniem tego skryptu:

Po uruchomieniu skryptu zanotuj następujące informacje w danych wyjściowych skryptu:

  • Identyfikator klienta nowej aplikacji
  • Identyfikator obiektu nowej jednostki usługi
  • Wartość wpisu tajnego jednostki usługi
# 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. Tworzenie grupy zabezpieczeń firmy Microsoft Entra

Jednostka usługi nie ma dostępu do żadnej zawartości i interfejsów API usługi Power BI. Aby przyznać jednostce usługi dostęp, utwórz grupę zabezpieczeń w identyfikatorze Entra firmy Microsoft. Następnie dodaj jednostkę usługi utworzoną do tej grupy zabezpieczeń.

Uwaga

Jeśli chcesz włączyć dostęp jednostki usługi dla całej organizacji, pomiń ten krok.

Istnieją dwa sposoby tworzenia grupy zabezpieczeń firmy Microsoft Entra:

Ręczne tworzenie grupy zabezpieczeń

Aby ręcznie utworzyć grupę zabezpieczeń platformy Azure, postępuj zgodnie z instrukcjami w temacie Tworzenie podstawowej grupy i dodawanie członków.

Tworzenie grupy zabezpieczeń przy użyciu programu PowerShell

Poniższy przykładowy skrypt tworzy nową grupę zabezpieczeń. Dodaje również jednostkę usługi utworzoną wcześniej do nowej grupy zabezpieczeń.

  • Przed uruchomieniem skryptu zastąp <app-client-ID> ciąg identyfikatorem klienta zarejestrowanym wcześniej dla nowej aplikacji.
  • Po uruchomieniu skryptu zanotuj identyfikator obiektu nowej grupy zabezpieczeń, którą można znaleźć w danych wyjściowych skryptu.
# 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. Włączanie ustawień administratora usługa Power BI

Aby aplikacja Firmy Microsoft Entra uzyskiwała dostęp do zawartości i interfejsów API usługi Power BI, administrator usługi Power BI musi włączyć następujące ustawienia:

  • Osadzanie zawartości w aplikacjach
  • Zezwalaj jednostkom usługi na używanie interfejsów API usługi Power BI

W portalu usługi Power BI Administracja przejdź do pozycji Ustawienia dzierżawy i przewiń w dół do pozycji Ustawienia dewelopera.

  • Włącz opcję Osadź zawartość w aplikacjach dla całej organizacji lub dla określonej grupy zabezpieczeń utworzonej w usłudze 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.

  • Włącz opcję Zezwalaj jednostkom usługi na używanie interfejs API usługi Power BI dla całej organizacji lub dla określonej grupy zabezpieczeń utworzonej w usłudze 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.

    Ważne

    Jednostki usługi mają dostęp do wszystkich ustawień dzierżawy, dla których są włączone. W zależności od ustawień administratora obejmuje to określone grupy zabezpieczeń lub całą organizację.

    Aby ograniczyć dostęp jednostki usługi do określonych ustawień dzierżawy, zezwól na dostęp tylko do określonych grup zabezpieczeń. Alternatywnie możesz utworzyć dedykowaną grupę zabezpieczeń dla jednostek usługi i wykluczyć ją z żądanych ustawień dzierżawy.

Krok 4. Dodawanie jednostki usługi do obszaru roboczego

Aplikacja Microsoft Entra może uzyskiwać dostęp do raportów, pulpitów nawigacyjnych i semantycznych modeli usługi Power BI tylko wtedy, gdy ma dostęp do obszaru roboczego usługi Power BI. Zapewniasz ten dostęp, dodając jednostkę usługi aplikacji lub jej grupę zabezpieczeń do obszaru roboczego jako członek lub administrator.

Istnieją trzy sposoby dodawania jednostki usługi lub jej grupy zabezpieczeń do obszaru roboczego:

Ręczne dodawanie jednostki usługi lub grupy zabezpieczeń

  1. W usługa Power BI przewiń do obszaru roboczego, dla którego chcesz włączyć dostęp. W menu Więcej wybierz pozycję Dostęp do obszaru roboczego.

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

  2. W okienku Dostęp w obszarze Dodaj administratorów, członków lub współautorów dodaj jedną z następujących pozycji:

    • Jednostka usługi. Nazwa jednostki usługi to nazwa wyświetlana aplikacji Microsoft Entra, która jest wyświetlana na karcie Przegląd aplikacji Microsoft Entra.
    • Grupa zabezpieczeń zawierająca jednostkę usługi.
  3. W menu rozwijanym wybierz pozycję Członek lub Administracja.

  4. Wybierz Dodaj.

Dodawanie jednostki usługi lub grupy zabezpieczeń przy użyciu programu PowerShell

W poniższych sekcjach przedstawiono przykładowe skrypty programu PowerShell służące do dodawania jednostki usługi i grupy zabezpieczeń do obszaru roboczego usługi Power BI jako członka.

Dodawanie jednostki usługi jako członka obszaru roboczego przy użyciu programu PowerShell

Poniższy skrypt dodaje jednostkę usługi jako członka obszaru roboczego. Przed uruchomieniem skryptu:

  • Zastąp <service-principal-object-ID> element identyfikatorem obiektu zarejestrowanym wcześniej dla nowej jednostki usługi.
  • Zastąp <workspace-name> ciąg nazwą obszaru roboczego, do którego chcesz przyznać jednostce usługi dostęp.
# 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)

Dodawanie grupy zabezpieczeń jako członka obszaru roboczego przy użyciu programu PowerShell

Poniższy skrypt dodaje grupę zabezpieczeń jako członka obszaru roboczego. Przed uruchomieniem skryptu:

  • Zastąp <security-group-object-ID> ciąg identyfikatorem obiektu zarejestrowanym wcześniej dla nowej grupy zabezpieczeń.
  • Zastąp <workspace-name> ciąg nazwą obszaru roboczego, do którego chcesz przyznać grupie zabezpieczeń dostęp.
# 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. Osadzanie zawartości

Zawartość można osadzić w przykładowej aplikacji lub we własnej aplikacji.

Po osadzeniu zawartości możesz przejść do środowiska produkcyjnego.

Uwaga

Aby zabezpieczyć zawartość przy użyciu certyfikatu, wykonaj kroki opisane w artykule Osadzanie zawartości usługi Power BI przy użyciu jednostki usługi i certyfikatu.

Rozważania i ograniczenia

  • Mój obszar roboczy nie jest obsługiwany w przypadku korzystania z jednostki usługi.
  • Pojemność jest wymagana podczas przechodzenia do środowiska produkcyjnego.
  • Nie można zalogować się do portalu usługi Power BI przy użyciu jednostki usługi.
  • Uprawnienia administratora usługi Power BI są wymagane do włączenia jednostki usługi w ustawieniach dewelopera w portalu usługi Power BI Administracja.
  • Osadzanie dla aplikacji organizacji nie może używać jednostki usługi.
  • Zarządzanie przepływami danych nie jest obsługiwane.
  • Jednostka usługi obsługuje tylko niektóre interfejsy API administratora tylko do odczytu. Aby włączyć obsługę jednostki usługi dla interfejsów API administratora tylko do odczytu, musisz włączyć ustawienia administratora usługa Power BI w dzierżawie. Aby uzyskać więcej informacji, zobacz Włączanie uwierzytelniania jednostki usługi dla interfejsów API administratora tylko do odczytu.
  • Jeśli używasz jednostki usługi ze źródłem danych usług Azure Analysis Services , sama jednostka usługi musi mieć uprawnienia wystąpienia usług Azure Analysis Services. Użycie grupy zabezpieczeń zawierającej jednostkę usługi w tym celu nie działa.