Microsoft Advanced Hunting Query API 适用于某些表,但不适用于 Power BI 中的其他表
Microsoft Advanced Hunting Query API works for some tables but not others in power BI
我在 Power BI 中使用以下 API 调用来访问来自 365 的 Advanced Hunting 数据。
https://api.securitycenter.windows.com/api/advancedqueries
使用此 API 适用于 Power BI 中的某些表,但不适用于其他表。
例如:
DeviceEvents | limit 10
将返回 10 个结果。
AlertInfo | limit 10
returns 400 错误请求。
上述两个查询在 365 本身的 advanced hunting tool 中均成功运行。
我发现 Advanced Hunting Schema 中的许多其他表也是如此,例如 IdentityInfo 和 EmailEvents 等等。
有什么明显的我遗漏的吗?我认为可能是退回的项目数量,因此限制为 10,但这也没有解决问题。
这是围绕 Power BI 特定查询方法的 Microsofts Documentation 示例,但没有帮助解决问题。
let
AdvancedHuntingQuery = "DeviceEvents | where ActionType contains 'Anti' | limit 20",
HuntingUrl = "https://api.securitycenter.microsoft.com/api/advancedqueries",
Response = Json.Document(Web.Contents(HuntingUrl, [Query=[key=AdvancedHuntingQuery]])),
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
谢谢
我与 Microsoft 取得了联系,后者确认只有一些表可以通过我的 post 中链接的文档中的 API 访问。他们提供了一个解决方法,即使用略有不同的 API,我在旅行中没有遇到过。回复摘录如下:
Therefore, I changed the Advanced hunting URL from https://api.securitycenter.microsoft.com/api/advancedqueries to https://api.security.microsoft.com/api/advancedhunting from Power BI advanced Editor. (This may need you to sign in again from Power BI in Organizational account)
我可以确认,在 Power BI 中使用第二个 API 可以让我访问我想要的其他表。
我在 Power BI 中使用以下 API 调用来访问来自 365 的 Advanced Hunting 数据。
https://api.securitycenter.windows.com/api/advancedqueries
使用此 API 适用于 Power BI 中的某些表,但不适用于其他表。
例如:
DeviceEvents | limit 10
将返回 10 个结果。
AlertInfo | limit 10
returns 400 错误请求。
上述两个查询在 365 本身的 advanced hunting tool 中均成功运行。
我发现 Advanced Hunting Schema 中的许多其他表也是如此,例如 IdentityInfo 和 EmailEvents 等等。
有什么明显的我遗漏的吗?我认为可能是退回的项目数量,因此限制为 10,但这也没有解决问题。
这是围绕 Power BI 特定查询方法的 Microsofts Documentation 示例,但没有帮助解决问题。
let
AdvancedHuntingQuery = "DeviceEvents | where ActionType contains 'Anti' | limit 20",
HuntingUrl = "https://api.securitycenter.microsoft.com/api/advancedqueries",
Response = Json.Document(Web.Contents(HuntingUrl, [Query=[key=AdvancedHuntingQuery]])),
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
谢谢
我与 Microsoft 取得了联系,后者确认只有一些表可以通过我的 post 中链接的文档中的 API 访问。他们提供了一个解决方法,即使用略有不同的 API,我在旅行中没有遇到过。回复摘录如下:
Therefore, I changed the Advanced hunting URL from https://api.securitycenter.microsoft.com/api/advancedqueries to https://api.security.microsoft.com/api/advancedhunting from Power BI advanced Editor. (This may need you to sign in again from Power BI in Organizational account)
我可以确认,在 Power BI 中使用第二个 API 可以让我访问我想要的其他表。