为了透明起见,我希望向管理员和最终用户提供从他们的 AD 配置文件中删除我的应用程序的能力。
现在,Microsoft 希望管理员使用 AzureAD powershell 命令Remove-MSOLServicePrincipal
或转到 Azure 管理门户。或者最终用户可以访问应用门户。
由于用户可能拥有多个组织或许多应用程序授权,因此我想为我的应用程序子集提供一个简单的删除选项(同时通知用户 MSFT 门户存在)
如何在客户端凭据授予流程或授权代码授予流程中取消配置我的应用程序?
最佳答案
通过同意过程授予应用程序的权限范围存储在目录中:OAuth2PermissionGrants .
如果您的应用程序有权修改这些对象,那么您将能够使用 Graph API 删除一个对象,这实际上会删除该应用程序的同意记录。
请注意,这些对象与特定的 clientId 绑定(bind),该 clientId 代表租户中客户端应用程序的服务主体。这就是为什么我们要求您从租户中删除服务主体,作为删除同意的快速方法,因为这也会删除所有绑定(bind)的 OAuth2Permissions。
您还可以使用 Graph API 删除您自己的服务主体(我过去已经测试过这一点)。根据上述详细信息,这还将删除您的应用程序应获得的所有同意。
但是,据我所知,我们的 Public Graph API 范围本身并不支持此类权限。我通过将我的应用程序添加到租户中的公司管理员角色来获得这种访问权限,这将提升它所拥有的图形访问权限,超出我们公共(public)范围中可用的范围。但是,您必须使用 PowerShell 或其他工具来执行此操作,此时,不妨使用相同的工具来删除服务主体......
请告诉我这是否有帮助!
关于azure - AzureAD 应用程序如何撤销自己的同意? (删除委托(delegate)或应用程序权限),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41770084/