Używanie tożsamości zarządzanej do uwierzytelniania zadania usługi Azure Stream Analytics w usłudze Power BI

Uwierzytelnianie tożsamości zarządzanej dla danych wyjściowych usługi Power BI zapewnia bezpośredniemu dostępowi zadań usługi Stream Analytics do obszaru roboczego na koncie usługi Power BI. Ta funkcja umożliwia pełne zautomatyzowanie wdrożeń zadań usługi Stream Analytics, ponieważ nie jest już wymagana, aby użytkownik mógł interaktywnie zalogować się do usługi Power BI za pośrednictwem witryny Azure Portal. Ponadto długotrwałe zadania zapisujące w usłudze Power BI są teraz lepiej obsługiwane, ponieważ nie trzeba okresowo ponownie uwierzytelniać zadania.

W tym artykule pokazano, jak włączyć tożsamość zarządzaną dla danych wyjściowych usługi Power BI zadania usługi Stream Analytics za pośrednictwem witryny Azure Portal i wdrożenia usługi Azure Resource Manager.

Uwaga

W danych wyjściowych usługi Power BI są obsługiwane tylko tożsamości zarządzane przypisane przez system. Obecnie używanie tożsamości zarządzanych przypisanych przez użytkownika z danymi wyjściowymi usługi Power BI nie jest obsługiwane.

Wymagania wstępne

Przed użyciem tej funkcji należy spełnić następujące wymagania wstępne:

  • Konto usługi Power BI z licencją Pro.
  • Uaktualniony obszar roboczy na koncie usługi Power BI. Aby uzyskać więcej informacji, zobacz Ogłoszenie usługi Power BI.

Tworzenie zadania usługi Stream Analytics przy użyciu witryny Azure Portal

  1. Utwórz nowe zadanie usługi Stream Analytics lub otwórz istniejące zadanie w witrynie Azure Portal.

  2. Na pasku menu znajdującym się po lewej stronie ekranu wybierz pozycję Tożsamość zarządzana znajdującą się w obszarze Ustawienia.

    Screenshot showing the Managed Identity page with Select identity button selected.

  3. Na stronie Wybieranie tożsamości wybierz pozycję Tożsamość przypisana przez system*. Jeśli wybierzesz tę drugą opcję, określ tożsamość zarządzaną, której chcesz użyć. Następnie wybierz pozycję Zapisz.

    Screenshot showing the Select identity page with System assigned identity selected.

  4. Na stronie Tożsamość zarządzana upewnij się, że zobaczysz identyfikator podmiotu zabezpieczeń i nazwę główną przypisaną do zadania usługi Stream Analytics. Główna nazwa powinna być taka sama jak nazwa zadania usługi Stream Analytics.

  5. Przed skonfigurowaniem danych wyjściowych nadaj zadaniu usługi Stream Analytics dostęp do obszaru roboczego usługi Power BI, postępując zgodnie z instrukcjami w sekcji Nadaj zadaniu usługi Stream Analytics dostęp do obszaru roboczego usługi Power BI w tym artykule.

  6. Przejdź do sekcji Dane wyjściowe zadania analizy usługi Stream, wybierz pozycję + Dodaj, a następnie wybierz pozycję Power BI. Następnie wybierz przycisk Autoryzuj i zaloguj się przy użyciu konta usługi Power BI.

    Authorize with Power BI account

  7. Po autoryzacji lista rozwijana zostanie wypełniona wszystkimi obszarami roboczymi, do których masz dostęp. Wybierz obszar roboczy autoryzowany w poprzednim kroku. Następnie wybierz pozycję Tożsamość zarządzana jako "Tryb uwierzytelniania". Na koniec wybierz przycisk Zapisz .

    Screenshot showing the Power BI output configuration with Managed identity authentication mode selected.

Wdrożenie usługi Azure Resource Manager

Usługa Azure Resource Manager umożliwia pełne zautomatyzowanie wdrażania zadania usługi Stream Analytics. Szablony usługi Resource Manager można wdrożyć przy użyciu programu Azure PowerShell lub interfejsu wiersza polecenia platformy Azure. W poniższych przykładach użyto interfejsu wiersza polecenia platformy Azure.

  1. Zasób Microsoft.StreamAnalytics/streamingjobs można utworzyć przy użyciu tożsamości zarządzanej, uwzględniając następującą właściwość w sekcji zasobów szablonu usługi Resource Manager:

    "identity": {
        "type": "SystemAssigned",
    }
    

    Ta właściwość informuje usługę Azure Resource Manager o utworzeniu tożsamości zadania usługi Stream Analytics i zarządzaniu nią. Poniżej przedstawiono przykładowy szablon usługi Resource Manager, który wdraża zadanie usługi Stream Analytics z włączoną tożsamością zarządzaną i ujściem danych wyjściowych usługi Power BI korzystającym z tożsamości zarządzanej:

    {
        "$schema": "http://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#",
        "contentVersion": "1.0.0.0",
        "resources": [
            {
                "apiVersion": "2017-04-01-preview",
                "name": "pbi_managed_id",
                "location": "[resourceGroup().location]",
                "type": "Microsoft.StreamAnalytics/StreamingJobs",
                "identity": {
                    "type": "systemAssigned"
                },
                "properties": {
                    "sku": {
                        "name": "standard"
                    },
                    "outputs":[
                        {
                            "name":"output",
                            "properties":{
                                "datasource":{
                                    "type":"PowerBI",
                                    "properties":{
                                        "dataset": "dataset_name",
                                        "table": "table_name",
                                        "groupId": "01234567-89ab-cdef-0123-456789abcdef",
                                        "authenticationMode": "Msi"
                                    }
                                }
                            }
                        }
                    ]
                }
            }
        ]
    }
    

    Wdróż powyższe zadanie w grupie zasobów ExampleGroup przy użyciu poniższego polecenia interfejsu wiersza polecenia platformy Azure:

    az deployment group create --resource-group ExampleGroup -template-file StreamingJob.json
    
  2. Po utworzeniu zadania użyj usługi Azure Resource Manager, aby pobrać pełną definicję zadania.

    az resource show --ids /subscriptions/<subsription-id>/resourceGroups/<resource-group>/providers/Microsoft.StreamAnalytics/StreamingJobs/<resource-name>
    

    Powyższe polecenie zwróci odpowiedź podobną do poniższej:

    {
        "id": "/subscriptions/<subscription-id>/resourceGroups/<resource-group>/providers/Microsoft.StreamAnalytics/streamingjobs/<resource-name>",
        "identity": {
            "principalId": "<principal-id>",
            "tenantId": "<tenant-id>",
            "type": "SystemAssigned",
            "userAssignedIdentities": null
        },
        "kind": null,
        "location": "West US",
        "managedBy": null,
        "name": "<resource-name>",
        "plan": null,
        "properties": {
            "compatibilityLevel": "1.0",
            "createdDate": "2019-07-12T03:11:30.39Z",
            "dataLocale": "en-US",
            "eventsLateArrivalMaxDelayInSeconds": 5,
            "jobId": "<job-id>",
            "jobState": "Created",
            "jobStorageAccount": null,
            "jobType": "Cloud",
            "outputErrorPolicy": "Stop",
            "package": null,
            "provisioningState": "Succeeded",
            "sku": {
                "name": "Standard"
            }
        },
        "resourceGroup": "<resource-group>",
        "sku": null,
        "tags": null,
        "type": "Microsoft.StreamAnalytics/streamingjobs"
    }
    

    Jeśli planujesz użyć interfejsu API REST usługi Power BI w celu dodania zadania usługi Stream Analytics do obszaru roboczego usługi Power BI, zanotuj zwrócony principalIdelement .

  3. Po utworzeniu zadania przejdź do sekcji Nadaj zadaniu usługi Stream Analytics dostęp do obszaru roboczego usługi Power BI w tym artykule.

Przyznawanie zadania usługi Stream Analytics do obszaru roboczego usługi Power BI

Po utworzeniu zadania usługi Stream Analytics można uzyskać dostęp do obszaru roboczego usługi Power BI. Po uzyskaniu dostępu do zadania poczekaj kilka minut na propagację tożsamości.

Korzystanie z interfejsu użytkownika usługi Power BI

Uwaga

Aby dodać zadanie usługi Stream Analytics do obszaru roboczego usługi Power BI przy użyciu interfejsu użytkownika, musisz również włączyć dostęp jednostki usługi w ustawieniach dewelopera w portalu administracyjnym usługi Power BI. Aby uzyskać więcej informacji, zobacz Wprowadzenie do jednostki usługi.

  1. Przejdź do ustawień dostępu obszaru roboczego. Aby uzyskać więcej informacji, zobacz Przyznawanie dostępu do obszaru roboczego.

  2. Wpisz nazwę zadania usługi Stream Analytics w polu tekstowym i wybierz pozycję Współautor jako poziom dostępu.

  3. Wybierz pozycję Dodaj i zamknij okienko.

    Add Stream Analytics job to Power BI workspace

Używanie poleceń cmdlet programu PowerShell usługi Power BI

  1. Zainstaluj polecenia cmdlet programu PowerShell usługi Power BI MicrosoftPowerBIMgmt .

    Ważne

    Upewnij się, że używasz polecenia cmdlet w wersji 1.0.821 lub nowszej.

    Install-Module -Name MicrosoftPowerBIMgmt
    
  2. Zaloguj się do usługi Power BI.

    Login-PowerBI
    
  3. Dodaj zadanie usługi Stream Analytics jako współautora do obszaru roboczego.

    Add-PowerBIWorkspaceUser -WorkspaceId <group-id> -PrincipalId <principal-id> -PrincipalType App -AccessRight Contributor
    

Korzystanie z interfejsu API REST usługi Power BI

Zadanie usługi Stream Analytics można również dodać jako współautora do obszaru roboczego przy użyciu interfejsu API REST "Dodaj użytkownika grupy". Pełną dokumentację tego interfejsu API można znaleźć tutaj: Grupy — Dodawanie użytkownika grupy.

Przykładowe żądanie

POST https://api.powerbi.com/v1.0/myorg/groups/{groupId}/users

Treść żądania

{
    "groupUserAccessRight": "Contributor",
    "identifier": "<principal-id>",
    "principalType": "App"
}

Używanie jednostki usługi do udzielania uprawnień dla tożsamości zarządzanej zadania usługi ASA

W przypadku wdrożeń automatycznych użycie logowania interakcyjnego w celu udzielenia dostępu do zadania usługi ASA do obszaru roboczego usługi Power BI nie jest możliwe. Można to zrobić przy użyciu jednostki usługi w celu udzielenia uprawnień do tożsamości zarządzanej zadania usługi ASA. Jest to możliwe przy użyciu programu PowerShell:

Connect-PowerBIServiceAccount -ServicePrincipal -TenantId "<tenant-id>" -CertificateThumbprint "<thumbprint>" -ApplicationId "<app-id>"
Add-PowerBIWorkspaceUser -WorkspaceId <group-id> -PrincipalId <principal-id> -PrincipalType App -AccessRight Contributor

Usuwanie tożsamości zarządzanej

Tożsamość zarządzana utworzona dla zadania usługi Stream Analytics jest usuwana tylko wtedy, gdy zadanie zostanie usunięte. Nie ma możliwości usunięcia tożsamości zarządzanej bez usuwania zadania. Jeśli nie chcesz już używać tożsamości zarządzanej, możesz zmienić metodę uwierzytelniania danych wyjściowych. Tożsamość zarządzana będzie nadal istnieć do momentu usunięcia zadania i zostanie użyta, jeśli zdecydujesz się ponownie użyć uwierzytelniania tożsamości zarządzanej.

Ograniczenia

Poniżej przedstawiono ograniczenia tej funkcji:

  • Klasyczne obszary robocze usługi Power BI nie są obsługiwane.

  • Konta platformy Azure bez identyfikatora Entra Firmy Microsoft.

  • Dostęp z wieloma dzierżawami nie jest obsługiwany. Jednostka usługi utworzona dla danego zadania usługi Stream Analytics musi znajdować się w tej samej dzierżawie usługi Microsoft Entra, w której utworzono zadanie i nie może być używana z zasobem, który znajduje się w innej dzierżawie firmy Microsoft Entra.

  • Tożsamość przypisana przez użytkownika nie jest obsługiwana. Oznacza to, że nie możesz wprowadzić własnej jednostki usługi, która będzie używana przez zadanie usługi Stream Analytics. Jednostka usługi musi być generowana przez usługę Azure Stream Analytics.

Następne kroki