是否可以使用 Azure Graph API 更改 PIM 中的通知

Is it possible to use Azure Graph API to change Notifications in PIM

我是 Whosebug 的新手,所以如果您有任何反馈,请告诉我! 我创建了一个 powershell 脚本,通过使用适用于 PIM 的 Microsoft (beta) Graph API 在 ResourceGroups 设置符合条件的角色分配。我使用 invoke-restmethod 来调用 api,例如:

$queryApiUri = "https://graph.microsoft.com/beta/privilegedAccess/azureResources/resources/$ResourceID/roleAssignments"
$Headers = @{}
$Headers.Add("Authorization","$($Token.token_type) "+ " " + "$($Token.access_token)")
$query = Invoke-RestMethod -Method Get -Uri $queryApiUri -Headers $Headers

这工作正常,但人们和管理员对激活角色时作为通知发送的所有电子邮件感到抓狂。在创建和激活时间以及需要审批人时发送通知。可以在门户中手动将通知设置为 'Critical emails only',以消除电子邮件泛滥。有人知道这是否可以通过使用图表 API 来做到这一点?

当我们在传送门修改'Critical emails only'并尝试get governanceRoleSetting时,我们会看到结果没有变化

显然 Microsoft Graph 没有公开更新方法 'Critical emails only'。

但其实我们可以通过Microsoft Graph来实现。在这里我将分享我的步骤。请注意,Microsoft Graph 文档中未提及它。仅供参考。

以订阅所有者角色为例

在浏览器中打开订阅所有者的编辑角色设置页面,然后按F12打开开发者工具。单击 更新。然后我们会看到一个名为'roleSettingsv2'的请求。 (这不是 Microsoft Graph API)

查看响应,我们会发现其中有这样一个'NotificationRule'。

{
    "ruleIdentifier": "NotificationRule",
    "setting": "{\"policies\":[{\"deliveryMechanism\":\"email\",\"setting\":[{\"customreceivers\":null,\"isdefaultreceiverenabled\":true,\"notificationlevel\":2,\"recipienttype\":2},{\"customreceivers\":null,\"isdefaultreceiverenabled\":true,\"notificationlevel\":2,\"recipienttype\":0},{\"customreceivers\":null,\"isdefaultreceiverenabled\":true,\"notificationlevel\":2,\"recipienttype\":1}]}]}"
}

它在 Microsoft Graph 中缺失 API。

所以我们只需要使用 Update governanceRoleSetting.

在 Microsoft Graph 中更新此 'NotificationRule'

例如:

PATCH https://graph.microsoft.com/beta/privilegedAccess/azureResources/roleSettings/b12d879d-e521-4b0b-971c-7a2b6ac979ba

{
    "adminEligibleSettings": [{
            "ruleIdentifier": "ExpirationRule",
            "setting": "{\"permanentAssignment\":false,\"maximumGrantPeriodInMinutes\":525600}"
        }, {
            "ruleIdentifier": "MfaRule",
            "setting": "{\"mfaRequired\":false}"
        }, {
            "ruleIdentifier": "NotificationRule",
            "setting": "{\"policies\":[{\"deliveryMechanism\":\"email\",\"setting\":[{\"customreceivers\":null,\"isdefaultreceiverenabled\":true,\"notificationlevel\":2,\"recipienttype\":2},{\"customreceivers\":null,\"isdefaultreceiverenabled\":true,\"notificationlevel\":2,\"recipienttype\":0},{\"customreceivers\":null,\"isdefaultreceiverenabled\":true,\"notificationlevel\":2,\"recipienttype\":1}]}]}"
        }
    ]
}

您应该设置 notificationlevel 的值。

请注意 \"notificationlevel\":2 将 'Critical emails only' 设置为 False 并且 \"notificationlevel\":1 设置为 True .