通过 API 获取 Azure 安全中心任务
Get Azure Security Center tasks via API
我正在尝试编写一个后端程序,该程序将在不涉及浏览器授权的情况下获取所有 Azure 安全中心任务(推荐)。
据我所知,Graph API 没有安全任务的端点,我能找到的唯一端点是 https://docs.microsoft.com/en-us/rest/api/securitycenter/tasks/list,它仅支持隐式流授权。
有没有办法在浏览器中不使用同意 window 获得授权,或者通过不同的端点获得任务?
您可以使用以下使用 REST API 的 Powershell 脚本来获取所有任务:
$subscriptionId = "yoursubid"
$context = Get-AzContext
$profile = [Microsoft.Azure.Commands.Common.Authentication.Abstractions.AzureRmProfileProvider]::Instance.Profile
$profileClient = New-Object -TypeName Microsoft.Azure.Commands.ResourceManager.Common.RMProfileClient -ArgumentList ($profile)
$token = $profileClient.AcquireAccessToken($context.Subscription.TenantId)
$authHeader = @{
'Content-Type' = 'application/json'
'Authorization' = 'Bearer ' + $token.AccessToken
}
$uri = "https://management.azure.com/subscriptions/$subscriptionId/providers/Microsoft.Security/tasks?api-version=2015-06-01-preview"
$response = Invoke-RestMethod -Uri $uri `
-Method Get `
-Headers $authHeader
$response.value | ConvertTo-Json
或
可以直接使用Azure CLI直接获取。
Command:
az security task list
参考:
az security task | Microsoft Docs
Install the Azure Az PowerShell module with PowerShellGet | Microsoft Docs
上述 powershell 脚本的输出:
对于那些将来需要这个的人,
有可能的。
它对我不起作用,因为我从错误的地址请求了不记名令牌,使用以下 url 作为不记名令牌请求:
https://login.microsoftonline.com/{tenantId}/oauth2/token
而不是:
https://login.microsoftonline.com/{tenantId}/oauth2/v2.0/token
(这是 Azure AD 典型的不记名令牌请求 url)
我正在尝试编写一个后端程序,该程序将在不涉及浏览器授权的情况下获取所有 Azure 安全中心任务(推荐)。 据我所知,Graph API 没有安全任务的端点,我能找到的唯一端点是 https://docs.microsoft.com/en-us/rest/api/securitycenter/tasks/list,它仅支持隐式流授权。 有没有办法在浏览器中不使用同意 window 获得授权,或者通过不同的端点获得任务?
您可以使用以下使用 REST API 的 Powershell 脚本来获取所有任务:
$subscriptionId = "yoursubid"
$context = Get-AzContext
$profile = [Microsoft.Azure.Commands.Common.Authentication.Abstractions.AzureRmProfileProvider]::Instance.Profile
$profileClient = New-Object -TypeName Microsoft.Azure.Commands.ResourceManager.Common.RMProfileClient -ArgumentList ($profile)
$token = $profileClient.AcquireAccessToken($context.Subscription.TenantId)
$authHeader = @{
'Content-Type' = 'application/json'
'Authorization' = 'Bearer ' + $token.AccessToken
}
$uri = "https://management.azure.com/subscriptions/$subscriptionId/providers/Microsoft.Security/tasks?api-version=2015-06-01-preview"
$response = Invoke-RestMethod -Uri $uri `
-Method Get `
-Headers $authHeader
$response.value | ConvertTo-Json
或
可以直接使用Azure CLI直接获取。
Command:
az security task list
参考:
az security task | Microsoft Docs
Install the Azure Az PowerShell module with PowerShellGet | Microsoft Docs
上述 powershell 脚本的输出:
对于那些将来需要这个的人, 有可能的。 它对我不起作用,因为我从错误的地址请求了不记名令牌,使用以下 url 作为不记名令牌请求:
https://login.microsoftonline.com/{tenantId}/oauth2/token
而不是:
https://login.microsoftonline.com/{tenantId}/oauth2/v2.0/token (这是 Azure AD 典型的不记名令牌请求 url)