From eae1eee06dd84c8b5a385c00b3bf8b4fea8b61a7 Mon Sep 17 00:00:00 2001 From: Ben Alfasi Date: Thu, 22 Aug 2019 17:01:43 +0300 Subject: [PATCH] s --- .openpublishing.redirection.json | 11 +- windows/security/threat-protection/TOC.md | 13 +- ...power-bi-user-token.md => api-power-bi.md} | 70 +++++---- .../images/power-bi-query-results.png | Bin 60704 -> 0 bytes .../microsoft-defender-atp/oldTOC.txt | 13 +- .../microsoft-defender-atp/powerbi-reports.md | 2 +- ...dvanced-query-sample-power-bi-app-token.md | 138 ------------------ 7 files changed, 50 insertions(+), 197 deletions(-) rename windows/security/threat-protection/microsoft-defender-atp/{run-advanced-query-sample-power-bi-user-token.md => api-power-bi.md} (51%) delete mode 100644 windows/security/threat-protection/microsoft-defender-atp/images/power-bi-query-results.png delete mode 100644 windows/security/threat-protection/microsoft-defender-atp/run-advanced-query-sample-power-bi-app-token.md diff --git a/.openpublishing.redirection.json b/.openpublishing.redirection.json index d3069c4d21..0639090a11 100644 --- a/.openpublishing.redirection.json +++ b/.openpublishing.redirection.json @@ -14867,14 +14867,9 @@ "redirect_document_id": true }, { -"source_path": "windows/security/threat-protection/windows-defender-atp/run-advanced-query-sample-power-bi-app-token.md", -"redirect_url": "/windows/security/threat-protection/microsoft-defender-atp/run-advanced-query-sample-power-bi-app-token", -"redirect_document_id": true -}, -{ -"source_path": "windows/security/threat-protection/windows-defender-atp/run-advanced-query-sample-power-bi-user-token.md", -"redirect_url": "/windows/security/threat-protection/microsoft-defender-atp/run-advanced-query-sample-power-bi-user-token", -"redirect_document_id": true + "source_path": "windows/security/threat-protection/windows-defender-atp/api-power-bi.md", + "redirect_url": "/windows/security/threat-protection/microsoft-defender-atp/api-power-bi", + "redirect_document_id": true }, { "source_path": "windows/security/threat-protection/windows-defender-atp/run-advanced-query-sample-powershell.md", diff --git a/windows/security/threat-protection/TOC.md b/windows/security/threat-protection/TOC.md index 5f3fdf726a..84208d8683 100644 --- a/windows/security/threat-protection/TOC.md +++ b/windows/security/threat-protection/TOC.md @@ -418,15 +418,10 @@ ####### [Get user related machines](microsoft-defender-atp/get-user-related-machines.md) ##### [How to use APIs - Samples]() -###### [Advanced Hunting API]() -####### [Schedule advanced Hunting using Microsoft Flow](microsoft-defender-atp/run-advanced-query-sample-ms-flow.md) -####### [Advanced Hunting using PowerShell](microsoft-defender-atp/run-advanced-query-sample-powershell.md) -####### [Advanced Hunting using Python](microsoft-defender-atp/run-advanced-query-sample-python.md) -####### [Create custom Power BI reports](microsoft-defender-atp/run-advanced-query-sample-power-bi-app-token.md) - -###### [Multiple APIs]() -####### [PowerShell](microsoft-defender-atp/exposed-apis-full-sample-powershell.md) - +###### [Microsoft Flow](microsoft-defender-atp/run-advanced-query-sample-ms-flow.md) +###### [Power BI](microsoft-defender-atp/api-power-bi.md) +###### [Advanced Hunting using Python](microsoft-defender-atp/run-advanced-query-sample-python.md) +###### [Advanced Hunting using PowerShell](microsoft-defender-atp/run-advanced-query-sample-powershell.md) ###### [Using OData Queries](microsoft-defender-atp/exposed-apis-odata-samples.md) #### [Windows updates (KB) info]() diff --git a/windows/security/threat-protection/microsoft-defender-atp/run-advanced-query-sample-power-bi-user-token.md b/windows/security/threat-protection/microsoft-defender-atp/api-power-bi.md similarity index 51% rename from windows/security/threat-protection/microsoft-defender-atp/run-advanced-query-sample-power-bi-user-token.md rename to windows/security/threat-protection/microsoft-defender-atp/api-power-bi.md index c292829e80..811a9cae2a 100644 --- a/windows/security/threat-protection/microsoft-defender-atp/run-advanced-query-sample-power-bi-user-token.md +++ b/windows/security/threat-protection/microsoft-defender-atp/api-power-bi.md @@ -1,8 +1,8 @@ --- -title: Advanced Hunting API +title: Power BI ms.reviewer: -description: Use this API to run advanced queries -keywords: apis, supported apis, advanced hunting, query +description: Create custom reports using Power BI +keywords: apis, supported apis, Power BI, reports search.product: eADQiWindows 10XVcnh ms.prod: w10 ms.mktglfcycl: deploy @@ -17,24 +17,17 @@ ms.collection: M365-security-compliance ms.topic: article --- -# Create custom reports using Power BI (user authentication) +# Create custom reports using Power BI -**Applies to:** +**Applies to:** [Microsoft Defender Advanced Threat Protection (Microsoft Defender ATP)](https://go.microsoft.com/fwlink/p/?linkid=2069559) -- [Microsoft Defender Advanced Threat Protection (Microsoft Defender ATP)](https://go.microsoft.com/fwlink/p/?linkid=2069559) +- Want to experience Microsoft Defender ATP? [Sign up for a free trial.](https://www.microsoft.com/WindowsForBusiness/windows-atp?ocid=docs-wdatp-exposedapis-abovefoldlink) -[!include[Prerelease information](prerelease.md)] +In this section you will learn create a Power BI report on top of the Microsoft Defender ATP APIs. -Run advanced queries and show results in Microsoft Power BI. Please read about [Advanced Hunting API](run-advanced-query-api.md) before. +The first example demonstrates how to connect Power BI to Advanced Hunting API and the second example demonstrates a connection to our OData APIs (e.g. Machine Actions, Alerts, etc..) -In this section we share Power BI query sample to run a query using **user token**. - -If you want to use **application token** instead please refer to [this](run-advanced-query-sample-power-bi-app-token.md) tutorial. - -## Before you begin -You first need to [create an app](exposed-apis-create-app-nativeapp.md). - -## Run a query +## Connect Power BI to Advanced Hunting API - Open Microsoft Power BI @@ -46,18 +39,15 @@ You first need to [create an app](exposed-apis-create-app-nativeapp.md). ![Image of open advanced editor](images/power-bi-open-advanced-editor.png) -- Copy the below and paste it in the editor, after you update the values of Query +- Copy the below and paste it in the editor: - ``` +``` let + AdvancedHuntingQuery = "MiscEvents | where ActionType contains 'Anti'", - Query = "MachineInfo | where EventTime > ago(7d) | summarize EventCount=count(), LastSeen=max(EventTime) by MachineId", + HuntingUrl = "https://api.securitycenter.windows.com/api/advancedqueries", - FormattedQuery= Uri.EscapeDataString(Query), - - AdvancedHuntingUrl = "https://api.securitycenter.windows.com/api/advancedqueries?key=" & FormattedQuery, - - Response = Json.Document(Web.Contents(AdvancedHuntingUrl)), + Response = Json.Document(Web.Contents(HuntingUrl, [Query=[key=AdvancedHuntingQuery]])), TypeMap = #table( { "Type", "PowerBiType" }, @@ -88,12 +78,18 @@ You first need to [create an app](exposed-apis-create-app-nativeapp.md). in Table - ``` +``` + let + + Query = "MachineACtions", + + Source = OData.Feed("https://api.securitycenter.windows.com/api/" & Query, null, [Implementation="2.0", MoreColumns=true]) + in + Source +``` - Click **Done** - ![Image of create advanced query](images/power-bi-create-advanced-query.png) - - Click **Edit Credentials** ![Image of edit credentials](images/power-bi-edit-credentials.png) @@ -108,13 +104,23 @@ You first need to [create an app](exposed-apis-create-app-nativeapp.md). ![Image of set credentials](images/power-bi-set-credentials-organizational-cont.png) -- View the results of your query +- Now the results of your query will appear as table and you can start build visualizations on top of it! - ![Image of query results](images/power-bi-query-results.png) +- You can duplicate this table, rename it and edit the Advanced Hunting query inside to your custom data. + +## Connect Power BI to OData APIs + +- The only difference from the above example is the query inside the editor. + +- Copy the below and paste it in the editor to pull all Machine Actions from your organization: + +``` + +- You can do the same for Alerts and Machines. + +- You also can use OData queries for filtering the results, see [Using OData Queries](exposed-apis-odata-samples.md) ## Related topic -- [Create custom Power BI reports with app authentication](run-advanced-query-sample-power-bi-app-token.md) - [Microsoft Defender ATP APIs](apis-intro.md) - [Advanced Hunting API](run-advanced-query-api.md) -- [Advanced Hunting using PowerShell](run-advanced-query-sample-powershell.md) -- [Schedule Advanced Hunting](run-advanced-query-sample-ms-flow.md) +- [Using OData Queries](exposed-apis-odata-samples.md) diff --git a/windows/security/threat-protection/microsoft-defender-atp/images/power-bi-query-results.png b/windows/security/threat-protection/microsoft-defender-atp/images/power-bi-query-results.png deleted file mode 100644 index b94ee3a009eb4756a0890f73de2abe011eee8c4c..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 60704 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≫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�+4gs#*hW6Qjb6JKpgoCSV=QcdA=x$0*LkS|I| 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

8?2i+e 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 h`WvC`b-cz-ACW5Nu51}**Prerequisite**: You first need to [create an app](exposed-apis-create-app-webapp.md). - -## Run a query - -- Open Microsoft Power BI - -- Click **Get Data** > **Blank Query** - - ![Image of create blank query](images/power-bi-create-blank-query.png) - -- Click **Advanced Editor** - - ![Image of open advanced editor](images/power-bi-open-advanced-editor.png) - -- Copy the below and paste it in the editor, after you update the values of TenantId, AppId, AppSecret, Query - - ``` - 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 - - ``` - -- Click **Done** - - ![Image of create advanced query](images/power-bi-create-advanced-query.png) - -- Click **Edit Credentials** - - ![Image of edit credentials](images/power-bi-edit-credentials.png) - -- Select **Anonymous** and click **Connect** - - ![Image of set credentials](images/power-bi-set-credentials-anonymous.png) - -- Repeat the previous step for the second URL - -- Click **Continue** - - ![Image of edit data privacy](images/power-bi-edit-data-privacy.png) - -- Select the privacy level you want and click **Save** - - ![Image of set data privacy](images/power-bi-set-data-privacy.png) - -- View the results of your query - - ![Image of query results](images/power-bi-query-results.png) - -## Related topic -- [Create custom Power BI reports with user authentication](run-advanced-query-sample-power-bi-user-token.md) -- [Microsoft Defender ATP APIs](apis-intro.md) -- [Advanced Hunting API](run-advanced-query-api.md) -- [Advanced Hunting using PowerShell](run-advanced-query-sample-powershell.md) -- [Schedule Advanced Hunting](run-advanced-query-sample-ms-flow.md)