从应用程序的清单中删除 AppRole 会产生 400 Bad Request 和错误
除非先禁用属性值,否则无法删除它。
当我将 isEnabled 属性设置为 false 然后点击保存时,我会成功保存并显示 200 OK 查看浏览器开发人员工具:
重新加载编辑清单屏幕后,该isEnabled属性仍然存在true,如果您查看浏览器开发人员工具中的 PUT 响应,它true也会返回原样。
如何删除 appRole 而无需删除并重新创建整个应用程序?
更新
我提出了以下错误。
从应用程序的清单中删除 AppRole 会产生 400 Bad Request 和错误
除非先禁用属性值,否则无法删除它。
当我将 isEnabled 属性设置为 false 然后点击保存时,我会成功保存并显示 200 OK 查看浏览器开发人员工具:
重新加载编辑清单屏幕后,该isEnabled属性仍然存在true,如果您查看浏览器开发人员工具中的 PUT 响应,它true也会返回原样。
如何删除 appRole 而无需删除并重新创建整个应用程序?
我提出了以下错误。
此错误现已修复。您所要做的就是设置isEnabled为false并保存。然后您可以删除角色并再次保存。不需要解决方法。
要删除应用程序角色:
isEnabled为 false。这似乎是新门户中的一个错误。保存操作不会isEnabled在服务器端保存为 false 。任何反馈,您都可以在此处发布。
目前,您可以使用 Azure AD 经典门户修改清单中的应用角色(下载清单,然后上传更改的清单)。在经典门户中删除应用程序角色在我的环境中工作正常。如果有帮助,请告诉我。
在此问题得到解决之前,有两个选项可以解决此问题:
使用 Azure AD PowerShell,你可以禁用然后删除应用角色。这是一个可以实现此目的的示例脚本:
$appId = "83d7d56d-6e64-4791-b8e8-9a8da8dd957e"
$appRoleValue = "app-role-value" # i.e. the scope
Connect-AzureAD
# Disable the AppRole
$app = Get-AzureADApplication -Filter "appId eq '$appId'"
($app.AppRoles | Where-Object { $_.Value -eq $appRoleValue }).IsEnabled = $false
Set-AzureADApplication -ObjectId $app.ObjectId -AppRoles $app.AppRoles
# Remove the AppRole
$toRemove = $app.AppRoles | Where-Object { $_.Value -eq $appRoleValue }
$app.AppRoles.Remove($toRemove) | Out-Null
Set-AzureADApplication -ObjectId $app.ObjectId -AppRoles $app.AppRoles
另一种选择是使用 Azure AD 图形资源管理器并PATCH在 Application 对象上发出两个请求。第一个PATCH请求应将应用角色的isEnabled属性设置为false. 然后第二个PATCH请求可以删除应用角色(即包括所有现有的应用角色,除了禁用的角色)。
我收到了相同的错误消息Property value cannot be deleted unless it is disabled first.,因为我在一个页面页面上创建了范围,并尝试在另一个网页的清单中手动添加它。我几乎不知道清单是自动更新的,我只需要重新加载它。
您无法删除已启用的分配角色,您首先必须将标志 isEnable 设置为 false 并保存要删除的角色的清单,如下所示 -->"isEnabled": false在清单中,现在尝试删除整个 appRoles 部分。
这是一个两步过程,但有效。