在Azure Active Directory中删除应用程序的AppRole

Muh*_*eed 5 azure azure-active-directory azure-ad-graph-api azure-ad-powershell-v2

从应用程序清单中删除AppRole会产生400错误请求,并显示错误消息

除非先禁用属性值,否则不能将其删除。

当我将isEnabled属性设置为false并单击保存时,通过查看浏览器开发人员工具,可以得到200 OK的成功保存:

之前

重新加载“编辑清单”屏幕后,该isEnabled属性仍然true保持不变,如果您在浏览器开发人员工具中查看PUT响应,则该属性也将返回true

后

如何删除一个appRole,而不必删除并重新创建整个应用程序?

更新资料

我提出了以下错误

Joh*_*kel 8

该错误现已修复。您要做的只是将其设置isEnabledfalse并保存。然后,您可以删除角色并再次保存。变通办法不是必需的。


小智 7

删除应用程序角色:

  1. 转到应用程序清单。
  2. 要删除的应用角色,将其值更改isEnabled为false。
  3. 保存清单。
  4. 删除那个 approle。
  5. 再次保存。


Phi*_*ret 3

在此问题得到解决之前,有两种方法可以解决此问题:

  1. 使用 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
    
    Run Code Online (Sandbox Code Playgroud)
  2. 另一种选择是使用 Azure AD Graph Explorer 并对PATCH应用程序对象发出两个请求。第一个PATCH请求应将应用程序角色的isEnabled属性设置为false。然后,第二个PATCH请求可以删除应用程序角色(即包括除已禁用的应用程序角色之外的所有现有应用程序角色)。