azure - AzureAD 应用程序如何撤销自己的同意? (删除委托(delegate)或应用程序权限)

标签 azure office365 azure-active-directory azure-ad-b2c

为了透明起见,我希望向管理员和最终用户提供从他们的 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/

相关文章:

c# - 通过 Windows 窗体应用程序从 exchange online (Office 365) 读取电子邮件

firebase - Office 365 高级威胁防护正在标记我的 Firebase 身份验证电子邮件

azure - 如何在客户端授权的情况下使用 Microsoft.Graph 并且不会收到 401

Azure 中的 ASP.NET session 状态提供程序

javascript - 如何在 Azure 存储表中插入数字列?

python - Azure python sdk - 获取机器状态

Azure AD 组 - Authorization_RequestDenied - 权限不足,无法完成操作

apache - 如何通过外部托管站点强制执行 Azure AD 登录?

azure-active-directory - 公司账户和MSA账户与msal的区别

c# - Azure Functions 中的 Azure AD 身份验证