Azure 无法使用Graph API删除应用程序角色分配。获得;找不到正在更新或删除的授权授予。”;错误

Azure 无法使用Graph API删除应用程序角色分配。获得;找不到正在更新或删除的授权授予。”;错误,azure,azure-active-directory,microsoft-graph-api,Azure,Azure Active Directory,Microsoft Graph Api,我已经为我的Azure AD应用程序创建了一些应用程序角色,并在这些角色中分配了一个用户。使用Graph API,我可以很好地列出应用程序角色分配 请求URL: https://graph.microsoft.com/v1.0/servicePrincipals//appRoleAssignedTo 以下是我得到的回答(为了简洁起见,部分回答): 请求删除的URL: https://graph.microsoft.com/v1.0/servicePrincipals//appRoleAssign

我已经为我的Azure AD应用程序创建了一些应用程序角色,并在这些角色中分配了一个用户。使用Graph API,我可以很好地列出应用程序角色分配

请求URL:

https://graph.microsoft.com/v1.0/servicePrincipals//appRoleAssignedTo

以下是我得到的回答(为了简洁起见,部分回答):

请求删除的URL:

https://graph.microsoft.com/v1.0/servicePrincipals//appRoleAssignedTo/ 但这被标记为不可复制(这是令人惊讶的,因为它肯定是可复制的)

顺便说一句,从Azure门户删除应用程序角色分配也不起作用。在Azure门户中,删除用户应用程序角色分配始终失败,Microsoft.Online.DirectoryServices.DirectoryValueNotFoundException

更新

我在审核日志中收到以下错误消息:


@Joy所说的绝对正确。我也在Azure portal和MS graph api中测试过几次。我发现一条规则,所有旧的分配都不起作用,所有新的分配都很好。因此,我还认为这是由从
应用程序角色|预览
迁移到
应用程序角色
引起的错误

当前,如果要删除旧工作分配,只能删除企业应用程序,然后重新创建。(删除企业应用程序不会删除应用程序注册中的应用程序)

刷新并再次创建:


添加:


这是由于从
应用程序角色| Preview
迁移到
应用程序角色
导致的错误。这是Azure AD本身的错误。我已将错误消息报告给Microsoft,Microsoft应尽快解决它!

你是什么意思?你说不能在门户中删除它?“删除”按钮已启用,但当我单击它时,我得到一个错误,操作失败。这很奇怪,我只是在门户中删除了它,没有错误。让我测试这个api,等待我的好消息。@CarlZhao-谢谢。更新了我的答案,并在审核日志中包含了错误消息的屏幕截图。我相信这是由从
应用程序角色|预览
应用程序角色
,对于相同的用户,相同的应用程序角色,所有的旧工作分配都不起作用,所有的新工作分配都很好。谢谢。您能详细说明如何区分“旧工作分配”和“新工作分配”吗在我的例子中,角色分配是在这个月的第十六个月完成的。你会考虑那个旧的吗?@高拉夫曼特里,我不确定在特定的一天,如果你现在添加一个任务,你应该能够删除它。谢谢。我可以确认,添加一个新的任务并删除它的工作立即生效。请让我尝试删除企业应用程序,然后从头开始。@GauravMantri让我测试一下。@GauravMantri您现在可以尝试删除它。看看它是否有效
{
    "@odata.context": "https://graph.microsoft.com/v1.0/$metadata#servicePrincipals('<my-application-id>')/appRoleAssignedTo",
    "value": [
        {
            "id": "<app-role-assignment-id>",
            "deletedDateTime": null,
            "appRoleId": "<my-application-role-id>",
            "createdDateTime": "2021-04-16T00:50:28.7061339Z",
            "principalDisplayName": "User Name",
            "principalId": "<user-id>",
            "principalType": "User",
            "resourceDisplayName": "<my-application-name>",
            "resourceId": "<my-application-id>"
        },
...
{
    "error": {
        "code": "Request_BadRequest",
        "message": "EntitlementGrant being updated or deleted is not found.",
        "innerError": {
            "date": "2021-04-20T15:08:28",
            "request-id": "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx",
            "client-request-id": "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx"
        }
    }
}