Power BI (アプリ認証) を使用してカスタム レポートを作成します。

高度なクエリを実行し、Microsoft Power BI の結果を表示します。 前に、高度な検出 APIについて参照してください。

このセクションでは、アプリケーションのトークンを使用してクエリを実行する Power BI クエリのサンプルを共有します。

ユーザー トークンを使用する場合は、代わりに、このチュートリアルを参照してください。

前提条件となる: 最初にアプリを作成する必要があります。

クエリを実行します。

  • Microsoft Power BI を開く

  • データを取得するクリックして > 空のクエリ

    画像の空のクエリを作成します。

  • [詳細エディター

    高度なエディターを開いての画像

  • コピー、下 TenantId、AppId、AppSecret、クエリの値を更新した後、エディターに貼り付けます

    let 
    
        TenantId = "00000000-0000-0000-0000-000000000000", // Paste your own tenant ID here
        AppId = "11111111-1111-1111-1111-111111111111", // Paste your own app ID here
        AppSecret = "22222222-2222-2222-2222-222222222222", // Paste your own app secret here
        Query = "MachineInfo | where EventTime > ago(7d) | summarize EventCount=count(), LastSeen=max(EventTime) by MachineId", // Paste your own query here
    
        ResourceAppIdUrl = "https://api.securitycenter.windows.com",
        OAuthUrl = Text.Combine({"https://login.windows.net/", TenantId, "/oauth2/token"}, ""),
    
        Resource = Text.Combine({"resource", Uri.EscapeDataString(ResourceAppIdUrl)}, "="),
        ClientId = Text.Combine({"client_id", AppId}, "="),
        ClientSecret = Text.Combine({"client_secret", Uri.EscapeDataString(AppSecret)}, "="),
        GrantType = Text.Combine({"grant_type", "client_credentials"}, "="),
    
        Body = Text.Combine({Resource, ClientId, ClientSecret, GrantType}, "&"),
    
        AuthResponse= Json.Document(Web.Contents(OAuthUrl, [Content=Text.ToBinary(Body)])),
        AccessToken= AuthResponse[access_token],
        Bearer = Text.Combine({"Bearer", AccessToken}, " "),
    
        AdvancedHuntingUrl = "https://api.securitycenter.windows.com/api/advancedqueries/run",
    
        Response = Json.Document(Web.Contents(
            AdvancedHuntingUrl, 
            [
                Headers = [#"Content-Type"="application/json", #"Accept"="application/json", #"Authorization"=Bearer],
                Content=Json.FromValue([#"Query"=Query])
            ]
        )),
    
        TypeMap = #table(
            { "Type", "PowerBiType" },
            {
                { "Double",   Double.Type },
                { "Int64",    Int64.Type },
                { "Int32",    Int32.Type },
                { "Int16",    Int16.Type },
                { "UInt64",   Number.Type },
                { "UInt32",   Number.Type },
                { "UInt16",   Number.Type },
                { "Byte",     Byte.Type },
                { "Single",   Single.Type },
                { "Decimal",  Decimal.Type },
                { "TimeSpan", Duration.Type },
                { "DateTime", DateTimeZone.Type },
                { "String",   Text.Type },
                { "Boolean",  Logical.Type },
                { "SByte",    Logical.Type },
                { "Guid",     Text.Type }
            }),
    
        Schema = Table.FromRecords(Response[Schema]),
        TypedSchema = Table.Join(Table.SelectColumns(Schema, {"Name", "Type"}), {"Type"}, TypeMap , {"Type"}),
        Results = Response[Results],
        Rows = Table.FromRecords(Results, Schema[Name]),
        Table = Table.TransformColumnTypes(Rows, Table.ToList(TypedSchema, (c) => {c{0}, c{2}}))
    
    in Table
    
  • [終了] をクリックします。

    高度なクエリを作成するの画像

  • 資格情報の編集] をクリックします。

    編集の資格情報の画像

  • 匿名] を選択し、[接続] をクリックしてください

    一連の資格情報の画像

  • 2 番目の URL の前の手順を繰り返す

  • [続行] をクリックします。

    編集データのプライバシーの画像

  • [保存] をクリックしてプライバシー レベルを選択します。

    データのプライバシーの設定の画像

  • クエリの結果を表示します。

    クエリの結果のイメージ

関連トピック